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