سيرشدك هذا المقال خلال عملية التحقق من أن البرامج الثابتة المثبتة على محفظة الأجهزة OneKey Pro الخاصة بك تتطابق مع البرامج الثابتة مفتوحة المصدر التي تم إصدارها على مستودع OneKey GitHub الرسمي. من خلال مقارنة مجموع فحص SHA-256، يمكنك التأكد من أن البرامج الثابتة تأتي من مصدر موثوق وضمان أمان جهازك.
ما هو مجموع الفحص؟
مجموع الفحص هو طريقة للتحقق من سلامة البيانات. يقوم بحساب تسلسل أبجدي رقمي ثابت الطول من ملف، والذي يمكن استخدامه بعد ذلك للتأكد مما إذا كان الملف قد تم تعديله.
⚠️ ملاحظات هامة
شريحة العنصر الآمن داخل كل محفظة أجهزة OneKey محملة مسبقًا في المصنع مع التحقق الرسمي متعدد التوقيعات.
إذا تم تحميل البرامج الثابتة غير الرسمية على الجهاز، فسيعرض الجهاز "برامج ثابتة غير رسمية" عند بدء التشغيل.
يقدم هذا المقال خطوات إضافية للتأكد مما إذا كانت البرامج الثابتة الحالية تتطابق تمامًا مع الإصدار الذي تم إصداره على GitHub.
عملية التحقق
الخطوة 1: تنزيل وتثبيت أحدث البرامج الثابتة الرسمية
قم بزيارة موقع تحديث البرامج الثابتة الرسمي لـ OneKey.
قم بتوصيل محفظة الأجهزة OneKey بجهاز الكمبيوتر الخاص بك باستخدام كابل USB.
سيقوم الموقع تلقائيًا باكتشاف معلومات جهازك. يمكنك بعد ذلك تحديد وتثبيت أحدث البرامج الثابتة.
اتبع التعليمات التي تظهر على الشاشة وقم بتأكيد التثبيت على محفظة الأجهزة الخاصة بك.
الخطوة 2: استرداد مجموع فحص برامج الجهاز الثابتة
على محفظة الأجهزة الخاصة بك، انتقل إلى إعدادات النظام → حول الجهاز.
في قسم معلومات البرامج الثابتة، سترى إصدار البرامج الثابتة ومجموع الفحص الخاص به.
مثال:
4.9.0[fccbac8-5ff2c88]fccbac8→ معرف إصدار البرامج الثابتة5ff2c88→ الأحرف السبعة الأولى من مجموع فحص البرامج الثابتة
الخطوة 3: حساب مجموع فحص البرامج الثابتة من GitHub
حدد موقع إصدار البرامج الثابتة الذي يتطابق مع جهازك، وقم بتنزيل ملف
.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.
بالإضافة إلى التحقق المدمج متعدد التوقيعات للعنصر الآمن، يضمن ذلك سلامة وأمان برامج محفظة الأجهزة الخاصة بك.
