Langkau ke kandungan utama

Pengesahan Perisian Tegar OneKey Pro dengan Kod Sumber Terbuka

Dikemas kini semalam

Artikel ini akan membimbing anda melalui proses mengesahkan bahawa perisian tegar yang dipasang pada dompet perkakasan OneKey Pro anda sepadan dengan perisian tegar sumber terbuka yang dikeluarkan di repositori GitHub rasmi OneKey. Dengan membandingkan Ringkasan SHA-256, anda boleh memastikan perisian tegar berasal dari sumber yang boleh dipercayai dan menjamin keselamatan peranti anda.


Apakah itu Ringkasan?

Ringkasan ialah kaedah untuk mengesahkan integriti data. Ia mengira urutan alfanumerik panjang tetap daripada fail, yang kemudiannya boleh digunakan untuk mengesahkan sama ada fail telah diubah.


⚠️ Nota Penting

  • Cip elemen selamat di dalam setiap dompet perkakasan OneKey diprapasang di kilang dengan pengesahan multi-tandatangan rasmi.

  • Jika peranti di-flash dengan perisian tegar yang tidak rasmi, peranti akan memaparkan "Perisian Tegar Tidak Rasmi" semasa permulaan.

  • Artikel ini menyediakan langkah tambahan untuk mengesahkan sama ada perisian tegar semasa sepadan dengan tepat dengan versi yang dikeluarkan di GitHub.


Proses Pengesahan

Langkah 1: Muat Turun dan Pasang Perisian Tegar Rasmi Terkini

  1. Sambungkan dompet perkakasan OneKey anda ke komputer anda menggunakan kabel USB.

  2. Laman web akan mengesan maklumat peranti anda secara automatik. Anda kemudian boleh memilih dan memasang perisian tegar terkini.

  3. Ikut arahan pada skrin dan sahkan pemasangan pada dompet perkakasan anda.


Langkah 2: Dapatkan Ringkasan Perisian Tegar Peranti

  1. Pada dompet perkakasan anda, navigasi ke Tetapan Sistem → Perihal Peranti.

  2. Dalam bahagian maklumat perisian tegar, anda akan melihat versi perisian tegar dan Ringkasannya.

    • Contoh: 4.9.0[fccbac8-5ff2c88]

      • fccbac8 → ID versi perisian tegar

      • 5ff2c88 → Tujuh aksara pertama Ringkasan perisian tegar


Langkah 3: Kira Ringkasan Perisian Tegar dari GitHub

  1. Cari versi perisian tegar yang sepadan dengan peranti anda, dan muat turun fail .bin di bawah Aset.

⚠️ Nota: Fail .bin mengandungi beberapa bahagian:

  • MCU (perisian tegar pengawal utama)

  • Satu atau lebih perisian tegar Elemen Selamat (SE)

  • Maklumat tandatangan

Untuk pengesahan, anda perlu mengekstrak perisian tegar MCU sahaja.


Mengekstrak Perisian Tegar

Simpan skrip berikut sebagai split_firmware.sh (untuk 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

Jalankan skrip:

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

Selepas pelaksanaan, anda akan mendapat firmware.bin (badan perisian tegar MCU).


Kira Ringkasan

Jalankan arahan berikut dalam terminal anda:

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

Ini akan mengeluarkan hash SHA-256 yang panjang, contohnya:

abcdef1234567890-

Ambil tujuh aksara pertama, contohnya abcdef1.


Langkah 4: Bandingkan Keputusan

  • Bandingkan tujuh aksara pertama Ringkasan yang dikira dengan Ringkasan yang dipaparkan pada peranti anda.

  • Jika ia sepadan, ia bermakna perisian tegar anda adalah sama dengan kod sumber terbuka yang dikeluarkan di GitHub.


✅ Mengapa Ini Penting

  • Anda boleh memastikan bahawa peranti anda menjalankan perisian tegar yang dibina terus daripada repositori sumber terbuka rasmi OneKey.

  • Bersama-sama dengan pengesahan multi-tandatangan terbina dalam elemen selamat, ini memastikan integriti dan keselamatan perisian tegar dompet perkakasan anda.

Adakah ini menjawab soalan anda?