本文为您提供了一步步的操作指南,帮助您验证 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 固件 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)
使用命令:
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 文件名称。
运行该命令以获取校验和。
第 4 步:对比校验和
将第 3 步中手动计算出的校验和前七位数字与第 2 步中获取的设备校验和进行比较。
如果两个值匹配,则说明已安装的固件与 GitHub 上的开源代码一致。
如果您希望验证 OneKey 团队在 GitHub Release 上签名发布的固件文件与 OneKey GitHub 代码仓库中公开存储的相应开源代码的一致性,请参阅此文章。
