跳到正文
DIY Wallet
ZH

来源

教程安装的每样东西、它从哪里来、遵循什么协议。编译之前可以在这里核对提交编号。

教程用到的代码

内容版本协议
Classic 固件的 DIY 改动固件 3.12.0:OneKey 的 emulator 分支,加一个 DIY 改动提交287341b8338dGPL v3 和 LGPL v3
OneKey Classic 1S 固件DIY 改动所基于的 emulator 分支ee01f0114fd1GPL v3 和 LGPL v3
OneKey Appv6.6.3 正式版,加上 DIY 提交里那一行改动d510ab79e622OneKey Standard Source License 1.1
Trezor 固件OneKey Classic 固件基于它开发GPL v3 和 LGPL v3

OneKey App 的源码按 OneKey 自己的协议发布,不是开源协议。

教程是怎么核对的

2026 年 10 月 25 日,在一台 Linux 电脑(x86-64)上核对:

  • 在一个空文件夹里逐字照着第 4 步的命令操作,可以完成下载和编译。两种固件(全币种、只支持比特币)都能在关闭调试接口的情况下编译成功,屏幕版不需要任何桌面图形库。
  • DIY 版本连续创建两个新钱包,助记词不同。未修改的模拟器两次生成的助记词完全一样。
  • 把硬件随机数发生器换成一个卡死的数据源,健康检测会让钱包停下。发生器不存在,或者用 Linux 的软件随机数冒充它,也都会被拒绝。
  • DIY 版本只接受本机的连接,调试端口没有任何回应。未修改的模拟器接受任何网络的连接。
  • 屏幕和按键代码在模拟的屏幕和按键上完整跑通:菜单显示正确,摇杆可以完成创建钱包的流程。
  • USB 中转程序把 App 协议的请求原样转给钱包,并把回复原样转回。
  • App 的改动可以干净地应用到 OneKey App v6.6.3 正式版上;改动后的 App 按第 6 步的命令在 Linux 上编译成功并能打开。编译时用了超过 7 GB 内存。
  • 屏幕版固件也能用树莓派系统同版本的编译器(ARM64 的 GCC 14)编译通过,编出来的 ARM64 程序在 ARM 模拟器里配合模拟的屏幕和按键运行正常:菜单、摇杆和三个按键都能用。
  • 钱包在使用中途重启后,USB 转发程序仍能继续工作。
  • 随机数检查程序在模拟的树莓派上测试过:接受博通的发生器设置,会把被改过的设置恢复,拒绝其他任何发生器。它的统计测试能让正常的数据源通过,让卡住或有偏差的数据源不通过。

还没有在真实零件上核对:

  • 在树莓派 Zero 2 W 上编译,以及需要多长时间。
  • 画面在微雪屏幕上的朝向。
  • macOS 和 Linux 上 App 通过 USB 找到钱包。
  • 在 macOS 上打包 App。
  • 树莓派的随机数发生器在长期使用中能否一直通过健康检测。检测假定每 8 位里至少有 4 位不可预测;如果发生器达不到,钱包会停下来。
  • 树莓派 Zero 2 W 的启动固件会把发生器设成什么样,以及在当前的 Raspberry Pi OS 上检查程序能否读到这个设置。读不到的话,钱包不会启动,这是安全的结果。

参考资料