本文提供了详细的流程步骤,帮助您验证您的 OneKey 硬件钱包设备上安装的系统固件应用了和 OneKey GitHub 仓库中一致的开源固件代码。通过使用 SHA-256 计算 Checksum(校验和)的方式比对不同文件的代码一致性,确保您可以安全放心地使用 OneKey 硬件钱包。
Checksum 是一种用于检查数据完整性的方法,它通过对数据进行某种计算,得到一个简短的、固定大小的数字和字母的组合序列。这个序列就是 Checksum,也被称为「校验和」。
重要提示
OneKey 硬件钱包内置的安全芯片在出厂时刻有官方的多签签名。如果设备被写入了非官方签名的固件,在开机时就会显示「非官方固件 (Unofficial Firmware)」的提示。
验证流程
步骤一:下载并安装最新的官方固件
- 访问 OneKey 官方固件更新网站。
- 通过 USB 线将您的 OneKey 硬件钱包连接到您的电脑。
- 一旦您的硬件钱包设备被检测到,您将能在网站上看到您的硬件钱包信息。
- 选择并下载您的硬件钱包对应的固件的最新版本。
- 按照网站上提供的指示安装固件,并在您的 OneKey 硬件钱包上确认安装。
步骤二:在您的 OneKey 硬件钱包上获取 Checksum
- 在您的 OneKey 硬件钱包上找到 「关于设备 (About Device) 」这一栏(通常在系统设置下)。
- 在您的 OneKey 硬件钱包设备上找到详细的固件信息。
- 您可以从固件信息中获取设备固件的 Checksum 的前七位。
- 例如:4.9.0[fccbac8-5ff2c88]
- “fccbac8” 是您的设备固件的版本 ID。
- “5ff2c88” 是您的设备固件的 Checksum 的前七位。
步骤三:计算 GitHub 源代码的 Checksum
- 访问 OneKey 正式固件发布的网站:https://github.com/OneKeyHQ/firmware/releases
- 找到您想要计算 Checksum 的固件版本。
- 点击下载 Assets 下的 bin 文件。
- 在您的操作系统中打开终端 (Terminal)(需要 macOS/Linux 操作系统)。
- 根据您的 OneKey 硬件钱包型号,选择运行下面对应的命令来计算 Checksum。
-
OneKey Mini & OneKey Classic:
-
tail -c +1025 /path/to/(文件路径) | shasum -a 256 -b
-
-
OneKey Touch:
-
tail -c +2561 /path/to/(文件路径) | shasum -a 256 -b
-
-
OneKey Mini & OneKey Classic:
步骤四:比对 Checksum
- 比较步骤三中手动计算的 Checksum 的前七位与步骤二中获取的设备 Checksum。
- 如果两个值匹配,这表明安装的固件与 GitHub 上的开源代码一致。
步骤一:下载并安装最新的官方蓝牙固件
- 访问 OneKey 官方固件更新网站。
- 通过 USB 线将您的 OneKey 硬件钱包连接到您的电脑。
- 一旦您的硬件钱包设备被检测到,您将能在网站上看到您的硬件钱包信息。
- 选择并下载您的硬件钱包对应的蓝牙固件的最新版本。
- 按照网站上提供的指示安装固件,并在您的 OneKey 硬件钱包上确认安装。
步骤二:在您的 OneKey 硬件钱包上获取 Checksum
- 在您的 OneKey 硬件钱包上找到 「关于设备 (About Device) 」这一栏(通常在系统设置下)。
- 在您的 OneKey 硬件钱包设备上找到详细的蓝牙信息。
- 您可以从「蓝牙」处获取设备蓝牙固件的 Checksum 的前七位。
- 例如:2.3.1[96bb143-5affc8f]
- “96bb143” 是您设备的蓝牙固件的版本 ID。
- “5affc8f” 是您设备的蓝牙固件的 Checksum 的前七位。
步骤三:计算 GitHub 源代码的 Checksum
- 访问 OneKey GitHub 的 Release 页面(选择对应的硬件钱包型号):
- OneKey Classic & Classic 1S: https://github.com/OneKeyHQ/bluetooth-firmware-classic/releases
- OneKey Pro: https://github.com/OneKeyHQ/bluetooth-firmware-pro/releases
- OneKey Touch: https://github.com/OneKeyHQ/bluetooth-firmware-touch/releases
- 找到您想要验证的蓝牙固件版本。
- 点击下载「Assets」下的 bin 文件。
- 在您下载的 bin 文件的相同文件夹下,打开一个 Terminal。(需要 macOS/Linux 操作系统)
- 在命令行中输入
python3
命令唤起 Python。(下载 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 文件的文件名。
- 运行命令获得 Checksum 校验和。
步骤四:比对 Checksum
- 比较步骤三中手动计算的 Checksum 的前七位与步骤二中获取的设备的蓝牙固件 Checksum。
- 如果两个值匹配,这表明安装的蓝牙固件与 GitHub 上的开源代码一致。
如果您希望验证 OneKey 团队在 GitHub 发布的签名后的固件文件与 OneKey GitHub 仓库公开存储的对应开源代码的一致性,请参考这篇文章。