跳转到主要内容

验证 OneKey 硬件钱包设备所安装固件的开源代码

更新于今天

本文为您提供了一步步的操作指南,帮助您验证 OneKey 硬件钱包设备上安装的固件是否与 GitHub 上的相应开源代码一致。

重要提示

嵌入在 OneKey 硬件钱包中的安全芯片在制造时已使用官方多重签名进行签名。如果硬件钱包的固件被黑客恶意篡改,启动时将显示“检测到非官方固件”(Unofficial Firmware Detected)的提示信息。

操作流程

系统固件 蓝牙固件

第 1 步:下载并安装最新固件

  • 通过 USB 数据线将您的 OneKey 硬件钱包连接到计算机。

  • 一旦检测到您的硬件钱包设备,您将能够在网页上看到显示的钱包信息。

  • 选择并下载您硬件钱包的最新版本固件。

  • 按照网站上提供的说明进行固件安装,并在您的 OneKey 硬件钱包上点击确认。

第 2 步:获取 OneKey 硬件钱包上的校验和 (Checksum)

  • 在您的 OneKey 硬件钱包上导航至“关于设备”。

  • 在您的 OneKey 硬件钱包设备上找到详细的固件信息。

  • 您可以从固件信息中获取设备固件校验和的前七位数字。

    • 例如,4.9.0[fccbac8-5ff2c88]

    • fccbac8”是您设备固件的版本 ID。

    • 5ff2c88”是您设备固件校验和的前七位数字。

第 3 步:计算 GitHub 源码的校验和

github release bin.png
  • 在您的操作系统中打开终端(需要 macOS/Linux)。

  • 根据您的 OneKey 硬件钱包型号,选择并运行以下相应的命令来计算校验和。

    • OneKey Classic 和 OneKey Mini:

    • tail -c +1025 /path/to/(file path) | shasum -a 256 -b

    • OneKey Touch:

    • tail -c +2561 /path/to/(file path) | shasum -a 256 -b

第 4 步:对比校验和

  • 将第 3 步中手动计算出的校验和前七位数字与第 2 步中获取的设备校验和进行比较。

  • 如果两个值匹配,则说明已安装的固件与 GitHub 上的开源代码一致。

第 1 步:下载并安装最新的蓝牙固件

  • 通过 USB 数据线将您的 OneKey 硬件钱包连接到计算机。

  • 一旦检测到您的硬件钱包设备,您将能够在网页上看到显示的钱包信息。

  • 选择并下载您硬件钱包的最新版本蓝牙固件。

  • 按照网站上提供的说明进行固件安装,并在您的 OneKey 硬件钱包上点击确认。

第 2 步:获取 OneKey 硬件钱包上的校验和

  • 在您的 OneKey 硬件钱包上导航至“关于设备”。

  • 在您的 OneKey 硬件钱包设备上找到详细的固件信息。

  • 您可以从蓝牙信息中获取设备固件校验和的前七位数字。

    • 例如,2.3.1[96bb143-5affc8f]

    • 96bb143”是您设备蓝牙固件的版本 ID。

    • 5ff2c8f”是您设备固件校验和的前七位数字。

第 3 步:计算 GitHub 源码的校验和

pro-bluetooth-firmware-github-release-signed.png
  • 在包含下载的 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 文件名称。

  • 运行该命令以获取校验和。

checksum-github-release.png

第 4 步:对比校验和

  • 将第 3 步中手动计算出的校验和前七位数字与第 2 步中获取的设备校验和进行比较。

  • 如果两个值匹配,则说明已安装的固件与 GitHub 上的开源代码一致。

如果您希望验证 OneKey 团队在 GitHub Release 上签名发布的固件文件与 OneKey GitHub 代码仓库中公开存储的相应开源代码的一致性,请参阅此文章

这是否解答了您的问题?