OneKey donanım cüzdanı, tamamen açık kaynaklı bir aygıt yazılımına sahiptir. İlgili ürünler için açık kaynaklı aygıt yazılımı kodunu OneKey'in GitHub deposunda görüntüleyebilirsiniz. Toplu üretim için amaçlanan aygıt yazılımı dosyaları resmi olarak yayınlanmadan önce, OneKey ekibi ilgili aygıt yazılımı depolarındaki aygıt yazılımı kaynak kodunu derlemek ve oluşturmak için GitHub'ın Otomasyon Araçları'nı (GitHub CI) kullanır. Dosyalar daha sonra OneKey ekibi tarafından resmi olarak yayınlanmadan önce imzalanır.
Bu makale, aygıt yazılımı dosyaları ile açık kaynak kod arasındaki tutarlılığı doğrulamak için, resmi ekibin çoklu imzalarından önce ve sonra dosyaların sağlama toplamlarını karşılaştırarak kendi doğrulama yöntemini sunmaktadır.
SHA-256 kriptografik hash fonksiyonunu (Sağlama Toplamlarını Karşılaştırma) kullanarak farklı dosyaların kaynak verilerinin tutarlılığını nasıl doğrulayacağınıza dair yöntemler için bu makaleye bakın.
Open Source Firmware Repositories
⚙ Sistem Aygıt Yazılımı: github.com/OneKeyHQ/firmware-pro
Bluetooth Aygıt Yazılımı: github.com/OneKeyHQ/bluetooth-firmware-pro
Bluetooth Firmware: github.com/OneKeyHQ/bluetooth-firmware-pro
⚙ Sistem Aygıt Yazılımı: github.com/OneKeyHQ/firmware-classic1s
Bluetooth Aygıt Yazılımı: github.com/OneKeyHQ/bluetooth-firmware-classic
Bluetooth Firmware: github.com/OneKeyHQ/bluetooth-firmware-classic
⚙ Sistem Aygıt Yazılımı: github.com/OneKeyHQ/firmware/tree/bixin_dev
Bluetooth Aygıt Yazılımı: github.com/OneKeyHQ/bluetooth-firmware-classic
Bluetooth Firmware: github.com/OneKeyHQ/bluetooth-firmware-classic
⚙ Sistem Aygıt Yazılımı: github.com/OneKeyHQ/firmware (branch: touch)
Bluetooth Aygıt Yazılımı: github.com/OneKeyHQ/bluetooth-firmware-touch
Bluetooth Firmware: github.com/OneKeyHQ/bluetooth-firmware-touch
⚙ Sistem Aygıt Yazılımı: github.com/OneKeyHQ/firmware/tree/mini
⚙ System Firmware: github.com/OneKeyHQ/firmware/tree/mini
Resmi standart aygıt yazılımı veya Bluetooth aygıt yazılımı yayınlanmaya hazır olduğunda, OneKey ekibi açık kaynak kodunu derlemek için ilgili deponun Actions'ını çalıştıracaktır. Başarılı derlemenin ardından, dosyalar ekibin dahili çoklu imzasını tamamlamasını bekleyen GitHub Artifacts deposuna yüklenir ve ardından OneKey'in CDN'sine yerleştirilir. config.json dosyasını güncelledikten sonra, OneKey Uygulaması ve OneKey aygıt yazılımı güncelleme web sitesi aracılığıyla güncelleme bildirimleri gönderilir ve kullanıcılara aygıt yazılımlarını yükseltmeleri istenir. Belirli süreç için aşağıdaki şemaya bakın.
Firmware Release Process
"OneKey Ekibi Tarafından İmzalanmış Aygıt Yazılımı Dosyası" ile "OneKey Resmi CDN'de Saklanan Aygıt Yazılımı Dosyası" arasındaki tutarlılığı doğrulayın.
Targets
✔ GitHub CI Önceden İmzalanmış Aygıt Yazılımı Dosyasını İndirin (İmzalanmamış)
Resmi OneKey donanım aygıt yazılımı GitHub Sürümü'ne gidin: https://github.com/OneKeyHQ/firmware/releases
Doğrulamak istediğiniz aygıt yazılımı sürümünü bulun ve GitHub Action bağlantısına tıklayın.
Prerequisites
Doğrulamak istediğiniz aygıt yazılımı sürümünü bulun.
Assets altındaki bin dosyasına indirmek için tıklayın.
OneKey CDN dosyasına gidin: https://data.onekey.so/config.json
Doğrulamak istediğiniz aygıt yazılımı sürümünü bulun.
Find the firmware version you want to verify.
Click to download the bin file under Assets.
Sistem Aygıt Yazılımı Bluetooth Aygıt Yazılımı
Navigate to the OneKey CDN file: https://data.onekey.so/config.json
Find the firmware version you want to verify.
Copy the link under the "ble" - "webUpdate" field.
Open in a new browser window for automatic download of the bin file.
✔ Download and Install Python
Navigate to: https://www.python.org/downloads/
Sistem aygıt yazılımı için, aygıt başlatıldığında önyükleyici tarafından doğrulanan CI sürümüne 1024 baytlık bir imza sonucu eklenir.
OneKey Resmi CDN'de Saklanan Aygıt Yazılımı Dosyası ile Doğrulama Süreci (Sistem)
Steps
Terminali açın.
Below are the verification steps for the two targets set previously:
Aşağıdaki komutu çalıştırın (OneKey Ekibi Tarafından İmzalanmış Aygıt Yazılımı Dosyası):
Verification Process with GitHub CI pre-signed firmware (System)
Open the Terminal.
Run the command below (OneKey Team Signed Firmware File):
tail -c +1024 /path/to/(file path) | shasum -a 256
GitHub CI Önceden İmzalanmış Aygıt Yazılımı ile Doğrulama Süreci (Bluetooth)
GitHub CI Önceden İmzalanmış Bluetooth aygıt yazılımı klasörünüzde ota.bin dosyasını bulun.
ota.bin ile aynı klasörde bir terminal açın.
Python'u şu komutla çağırın: python3
Verification Process with OneKey Official CDN Stored Firmware File (System)
Open the Terminal.
Run the command below (OneKey Team Signed Firmware File):
shasum -a 256 (file path)
Run the command below (OneKey Official CDN Stored Firmware File):
OneKey Resmi CDN'de Saklanan Aygıt Yazılımı Dosyası ile Doğrulama Süreci (Bluetooth)
OneKey Ekibi Tarafından İmzalanmış Bluetooth Aygıt Yazılımı Dosyası ile aynı klasörde bir terminal açın.
Python'u şu komutla çağırın: python3
Aşağıdaki komutu kopyalayın:exec("""\nimport struct, hashlib\nwith open("ota.bin", mode="br") as f:\n f.seek(0x0C)\n codelen = struct.unpack("i", f.read(4))[0] - 512\n f.seek(0x600)\n print("".join(format(x, "02x") for x in hashlib.sha256(f.read(codelen)).digest()))\n""")
exec("""\nimport struct, hashlib\nwith open("ota.bin", mode="br") as f:\n f.seek(0x0C)\n codelen = struct.unpack("i", f.read(4))[0] - 512\n f.seek(0x600)\n print("".join(format(x, "02x") for x in hashlib.sha256(f.read(codelen)).digest()))\n""")
ota.bin'i indirdiğiniz OneKey Ekibi Tarafından İmzalanmış Bluetooth Aygıt Yazılımı Dosyası'nın adıyla değiştirin.
Sağlama toplamını almak için komutu çalıştırın.
Run the same command with OneKey Team Signed Bluetooth Firmware File.
Note: please change ota.bin in the command to the name of OneKey Team Signed Bluetooth Firmware File.
Compare the Checksums generated by the two commands. If the results match, it can be confirmed that the "OneKey Team Signed Firmware File" is derived from the "GitHub CI Pre-Signed Firmware File" in the OneKey open-source repository.
Verification Process with OneKey Official CDN Stored Firmware File (Bluetooth)
Open a terminal in the same folder with OneKey Team Signed Bluetooth Firmware File.
Invoke Python with the command: python3
Copy the command below:
exec("""\nimport struct, hashlib\nwith open("ota.bin", mode="br") as f:\n f.seek(0x0C)\n codelen = struct.unpack("i", f.read(4))[0] - 512\n f.seek(0x600)\n print("".join(format(x, "02x") for x in hashlib.sha256(f.read(codelen)).digest()))\n""")
Change ota.bin to the name of your downloaded OneKey Team Signed Bluetooth Firmware File.
Run the command to get the checksum.
Repeat the above steps with your downloaded OneKey Official CDN Stored Bluetooth Firmware File.
Compare the Checksums generated by the two commands. If the results match, the code consistency of the two firmware files is confirmed.
