Ana içeriğe geç

OneKey Pro Ürün Yazılımını Açık Kaynak Kod ile Doğrulama

Bugün güncellendi

Bu makale, OneKey Pro donanım cüzdanınızda yüklü olan ürün yazılımının, resmi OneKey GitHub deposunda yayınlanan açık kaynaklı ürün yazılımıyla eşleşip eşleşmediğini doğrulama sürecinde size rehberlik edecektir. SHA-256 Kontrol Toplamını karşılaştırarak, ürün yazılımının güvenilir bir kaynaktan geldiğinden emin olabilir ve cihazınızın güvenliğini garanti altına alabilirsiniz.


Kontrol Toplamı Nedir?

Kontrol toplamı, veri bütünlüğünü doğrulayan bir yöntemdir. Bir dosyadan sabit uzunlukta bir alfanümerik dizi hesaplar ve bu dizi daha sonra dosyanın değiştirilip değiştirilmediğini doğrulamak için kullanılabilir.


⚠️ Önemli Notlar

  • Her OneKey donanım cüzdanının içindeki güvenli eleman çipi, fabrikada resmi çoklu imza doğrulaması ile önceden yüklenmiştir.

  • Cihaza resmi olmayan ürün yazılımı yüklenirse, cihaz başlatıldığında "Resmi Olmayan Ürün Yazılımı" görüntüler.

  • Bu makale, mevcut ürün yazılımının GitHub'da yayınlanan sürümle tam olarak eşleşip eşleşmediğini doğrulamak için ek adımlar sağlar.


Doğrulama Süreci

Adım 1: En Son Resmi Ürün Yazılımını İndirin ve Kurun

  1. OneKey donanım cüzdanınızı bir USB kablosu kullanarak bilgisayarınıza bağlayın.

  2. Web sitesi cihaz bilgileriniz otomatik olarak algılayacaktır. Ardından en son ürün yazılımını seçebilir ve kurabilirsiniz.

  3. Ekrandaki talimatları izleyin ve donanım cüzdanınızda kurulumu onaylayın.


Adım 2: Cihaz Ürün Yazılımı Kontrol Toplamını Alın

  1. Donanım cüzdanınızda Sistem Ayarları → Cihaz Hakkında yolunu izleyin.

  2. Ürün yazılımı bilgilerini içeren bölümde, ürün yazılımı sürümünü ve Kontrol Toplamı'nı göreceksiniz.

    • Örnek: 4.9.0[fccbac8-5ff2c88]

      • fccbac8 → Ürün yazılımı sürüm kimliği

      • 5ff2c88 → Ürün yazılımı Kontrol Toplamı'nın ilk yedi karakteri


Adım 3: Ürün Yazılımı Kontrol Toplamını GitHub'dan Hesaplayın

  1. Cihazınızla eşleşen ürün yazılımı sürümünü bulun ve Assets altındaki .bin dosyasını indirin.

⚠️ Not: .bin dosyası birden fazla bölüm içerir:

  • MCU (ana denetleyici ürün yazılımı)

  • Bir veya daha fazla Güvenli Eleman (SE) ürün yazılımı

  • İmza bilgileri

Doğrulama için yalnızca MCU ürün yazılımını ayıklamanız gerekir.


Ürün Yazılımını Ayıklama

Aşağıdaki betiği şu şekilde kaydedin: split_firmware.sh (macOS/Linux için):

#!/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

Betiği çalıştırın:

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

Çalıştırmadan sonra firmware.bin (MCU ürün yazılımı gövdesi) elde edeceksiniz.


Kontrol Toplamını Hesaplama

Terminalinizde aşağıdaki komutu çalıştırın:

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

Bu, şöyle uzun bir SHA-256 karması çıktı verecektir:

abcdef1234567890-

İlk yedi karakteri alın, örneğin abcdef1.


Adım 4: Sonuçları Karşılaştırın

  • Hesaplanan Kontrol Toplamının ilk yedi karakterini, cihazınızda görüntülenen Kontrol Toplamı ile karşılaştırın.

  • Eşleşirse, ürün yazılımınızın GitHub'da yayınlanan açık kaynak kodla aynı olduğu anlamına gelir.


✅ Neden Önemli?

  • Cihazınızın doğrudan OneKey'in resmi açık kaynak deposundan derlenmiş ürün yazılımı çalıştırdığından emin olabilirsiniz.

  • Güvenli elemanın yerleşik çoklu imza doğrulaması ile birlikte, bu donanım cüzdan ürün yazılımının bütünlüğünü ve güvenliğini sağlar.

Bu cevap sorunuzu yanıtladı mı?