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

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

آخر تحديث كان منذ أكثر من 2 أسبوع

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


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

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


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

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

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

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


عملية التحقق

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

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

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

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


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

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

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

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

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

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


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

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

⚠️ ملاحظة: يحتوي ملف .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.

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

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