تخط وانتقل إلى المحتوى الرئيسي

التحقق من البرامج الثابتة لـ OneKey Pro باستخدام الكود مفتوح المصدر

تم إجراء التحديث اليوم

سيقوم هذا المقال بإرشادك خلال عملية التحقق من أن البرامج الثابتة المثبتة على محفظة الأجهزة OneKey Pro الخاصة بك تتطابق مع البرامج الثابتة مفتوحة المصدر التي تم إصدارها في مستودع GitHub الرسمي لـ OneKey. من خلال مقارنة مجموع فحص SHA-256، يمكنك التأكد من أن البرامج الثابتة تأتي من مصدر موثوق به وضمان أمان جهازك.


ما هو مجموع الفحص؟

مجموع الفحص هو طريقة للتحقق من سلامة البيانات. يقوم بحساب تسلسل أبجدي رقمي ثابت الطول من ملف، والذي يمكن استخدامه بعد ذلك للتأكد مما إذا كان الملف قد تم تغييره.


⚠️ ملاحظات هامة

  • شريحة العنصر الآمن داخل كل محفظة أجهزة OneKey محملة مسبقًا في المصنع مع التحقق الرسمي من التوقيع المتعدد.

  • إذا تم وميض الجهاز ببرامج ثابتة غير رسمية، فسيعرض الجهاز "برامج ثابتة غير رسمية" عند بدء التشغيل.

  • يقدم هذا المقال خطوات إضافية للتأكد مما إذا كانت البرامج الثابتة الحالية تتطابق تمامًا مع الإصدار الذي تم إصداره على GitHub.


عملية التحقق

الخطوة 1: تنزيل وتثبيت أحدث البرامج الثابتة الرسمية

  1. قم بتوصيل محفظة الأجهزة OneKey بجهاز الكمبيوتر الخاص بك باستخدام كابل USB.

  2. سيقوم الموقع تلقائيًا باكتشاف معلومات جهازك. يمكنك بعد ذلك تحديد وتثبيت أحدث البرامج الثابتة.

  3. اتبع التعليمات التي تظهر على الشاشة وقم بتأكيد التثبيت على محفظة الأجهزة الخاصة بك.


الخطوة 2: استرداد مجموع فحص البرامج الثابتة للجهاز

  1. على محفظة الأجهزة الخاصة بك، انتقل إلى إعدادات النظام → حول الجهاز.

  2. في قسم معلومات البرامج الثابتة، سترى إصدار البرامج الثابتة ومجموع الفحص الخاص به.

    • مثال: 4.9.0[fccbac8-5ff2c88]

      • fccbac8 → معرف إصدار البرامج الثابتة

      • 5ff2c88 → الأحرف السبعة الأولى من مجموع فحص البرامج الثابتة


الخطوة 3: حساب مجموع فحص البرامج الثابتة من GitHub

  1. حدد موقع إصدار البرامج الثابتة الذي يتطابق مع جهازك، وقم بتنزيل ملف .bin ضمن Assets.

⚠️ ملاحظة: يحتوي ملف .bin على أجزاء متعددة:

  • MCU (برامج التحكم الرئيسية)

  • برامج ثابتة واحدة أو أكثر للعنصر الآمن (SE)

  • معلومات التوقيع

للتحقق، تحتاج إلى استخراج برامج MCU الثابتة فقط.


استخراج البرامج الثابتة

احفظ البرنامج النصي التالي باسم split_firmware.sh (لنظام macOS/Linux):

#!/bin/bash

if [ $# -ne 1 ]; then
echo "Usage: $0 <binary_file>"
exit 1
fi

INPUT_FILE="$1"


TOTAL_FILE_SIZE=$(stat -f %z "$INPUT_FILE")

MAGIC=$(dd if="$INPUT_FILE" bs=1 count=4 2>/dev/null)

calculate_total_size() {
local offset=$1
local size_bytes=$(dd if="$INPUT_FILE" bs=1 skip="$offset" count=4 2>/dev/null | od -An -tu4)
echo $((size_bytes + 1024))
}

if [[ "$MAGIC" == "TRZF" ]]; then
TOTAL_SIZE=$(calculate_total_size 12)
elif [[ "$MAGIC" == "OKTV" ]]; then
HEAD1_SIZE=$(dd if="$INPUT_FILE" bs=1 skip=4 count=4 2>/dev/null | od -An -tu4)
HEAD1_SIZE=$(echo $HEAD1_SIZE)
FILE_SIZE_BYTES=$(dd if="$INPUT_FILE" bs=1 skip=$((HEAD1_SIZE + 12)) count=4 2>/dev/null | od -An -tu4)
TOTAL_SIZE=$((HEAD1_SIZE + 1024 + FILE_SIZE_BYTES))
else
echo "Unknown file format"
exit 1
fi

dd if="$INPUT_FILE" bs=1 count="$TOTAL_SIZE" of=firmware.bin 2>/dev/null

REMAINING_SIZE=$((TOTAL_FILE_SIZE - TOTAL_SIZE))
if [ $REMAINING_SIZE -gt 0 ]; then
SECOND_HEADER=$(dd if="$INPUT_FILE" bs=1 skip="$TOTAL_SIZE" count=4 2>/dev/null)
if [[ "$SECOND_HEADER" == "TF89" ]]; then
dd if="$INPUT_FILE" bs=1 skip="$TOTAL_SIZE" of=se.bin 2>/dev/null
echo "Split successfully: firmware.bin and se.bin extracted."
else
echo "Extra data exists but second file header is not 'TF89'. Only firmware.bin is extracted."
fi
else
echo "No extra data, only firmware.bin extracted."
fi

قم بتشغيل البرنامج النصي:

chmod +x split_firmware.sh ./split_firmware.sh onekey-firmware.bin

بعد التنفيذ، ستحصل على firmware.bin (جسم البرامج الثابتة MCU).


حساب مجموع الفحص

قم بتشغيل الأمر التالي في الطرفية الخاصة بك:

tail -c +2561 firmware.bin | shasum -a 256 -b

سيؤدي هذا إلى إخراج تجزئة SHA-256 طويلة، على سبيل المثال:

abcdef1234567890-

خذ الأحرف السبعة الأولى، على سبيل المثال abcdef1.


الخطوة 4: مقارنة النتائج

  • قارن الأحرف السبعة الأولى من مجموع الفحص المحسوب مع مجموع الفحص المعروض على جهازك.

  • إذا تطابقا، فهذا يعني أن البرامج الثابتة الخاصة بك مطابقة للكود مفتوح المصدر الذي تم إصداره على GitHub.


✅ لماذا هذا مهم

  • يمكنك التأكد من أن جهازك يقوم بتشغيل البرامج الثابتة المبنية مباشرة من مستودع المصادر المفتوحة الرسمي لـ OneKey.

  • جنبًا إلى جنب مع التحقق المدمج من التوقيعات المتعددة للعنصر الآمن، يضمن ذلك سلامة وأمان البرامج الثابتة لمحفظة الأجهزة الخاصة بك.

هل أجاب هذا عن سؤالك؟