本文將為您提供分步指南,協助您驗證 OneKey 硬體錢包設備上安裝的韌體,是否與 GitHub 上相應的開源程式碼一致。
重要提示
OneKey 硬體錢包內建的安全晶片在製造時已使用官方多重簽章進行簽署。如果硬體錢包的韌體遭到駭客惡意篡改,設備啟動時會顯示「偵測到非官方韌體(Unofficial Firmware Detected)」的訊息。
操作流程
系統韌體 藍牙韌體
第 1 步:下載並安裝最新韌體
造訪官方 OneKey 韌體更新網站。
使用 USB 傳輸線將您的 OneKey 硬體錢包連接至電腦。
偵測到硬體錢包設備後,您將能在網站上看到顯示的錢包資訊。
選擇並下載適用於您硬體錢包的最新版本韌體。
依照網站提供的說明安裝韌體,並在您的 OneKey 硬體錢包上進行確認。
第 2 步:取得 OneKey 硬體錢包上的校驗和 (Checksum)
在您的 OneKey 硬體錢包上導航至「關於設備」。
在您的 OneKey 硬體錢包設備上找到韌體詳細資訊。
您可以從韌體資訊中取得設備韌體校驗和的前七位數。
例如:4.9.0[fccbac8-5ff2c88]
「fccbac8」是您設備韌體的版本 ID。
「5ff2c88」是您設備韌體校驗和的前七位數。
第 3 步:計算 GitHub 原始程式碼的校驗和
造訪 OneKey Firmware GitHub 發布網站:https://github.com/OneKeyHQ/firmware/releases
找到您想要計算校驗和的韌體版本。
點擊下載 Assets 下方的 bin 檔案。
開啟您作業系統的終端機(需使用 macOS/Linux)。
根據您的 OneKey 硬體錢包型號,選擇並執行下方相應的指令以計算校驗和。
OneKey Classic & OneKey Mini:
tail -c +1025 /path/to/(file path) | shasum -a 256 -bOneKey Touch:
tail -c +2561 /path/to/(file path) | shasum -a 256 -b
第 4 步:比較校驗和
將第 3 步手動計算出的校驗和前七位數,與第 2 步中取得的設備校驗和進行比對。
如果兩個數值相符,則表示安裝的韌體與 GitHub 上的開源程式碼一致。
第 1 步:下載並安裝最新藍牙韌體
造訪官方 OneKey 韌體更新網站。
使用 USB 傳輸線將您的 OneKey 硬體錢包連接至電腦。
偵測到硬體錢包設備後,您將能在網站上看到顯示的錢包資訊。
選擇並下載適用於您硬體錢包的最新版本藍牙韌體。
依照網站提供的說明安裝韌體,並在您的 OneKey 硬體錢包上進行確認。
第 2 步:取得 OneKey 硬體錢包上的校驗和
在您的 OneKey 硬體錢包上導航至「關於設備」。
在您的 OneKey 硬體錢包設備上找到韌體詳細資訊。
您可以從藍牙資訊中取得設備韌體校驗和的前七位數。
例如:2.3.1[96bb143-5affc8f]
「96bb143」是您設備藍牙韌體的版本 ID。
「5ff2c8f」是您設備韌體校驗和的前七位數。
第 3 步:計算 GitHub 原始程式碼的校驗和
導航至官方 OneKey 藍牙韌體 GitHub 發布頁面:
OneKey Classic & Classic 1S: https://github.com/OneKeyHQ/bluetooth-firmware-classic/releases
找到您想要計算校驗和的韌體版本。
點擊下載 Assets 下方的 bin 檔案。
在存放下載之 bin 檔案的資料夾中開啟終端機。(需使用 macOS/Linux)
使用指令呼叫 Python:
python3。(在此下載 Python)複製下方指令:
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 更改為您下載的 bin 檔案名稱。
執行指令以取得校驗和。
第 4 步:比較校驗和
將第 3 步手動計算出的校驗和前七位數,與第 2 步中取得的設備校驗和進行比對。
如果兩個數值相符,則表示安裝的韌體與 GitHub 上的開源程式碼一致。
如果您希望驗證由 OneKey 團隊在 GitHub Release 上簽署並發布的韌體檔案,是否與 OneKey GitHub 儲存庫中公開存放的相應開源程式碼一致,請參考這篇文章。
