项目简介
本项目是基于Python的固件开发框架,用于生成和管理TREZOR硬件钱包的固件代码。TREZOR是安全硬件钱包,可存储比特币、以太坊等加密货币的私钥。项目包含多个Python脚本与C语言源文件,能处理加密货币交易、USB通信、PIN码验证、助记词恢复、设备初始化等功能。
项目的主要特性和功能
- 支持比特币、以太坊、Stellar、NEM等多种加密货币的签名、验证、交易等处理。
- 通过USB接口与计算机通信,实现设备初始化、数据读写、命令执行。
- 支持PIN码输入与验证,保障设备安全。
- 可通过输入助记词恢复设备,保护用户资产安全。
- 设备首次使用时,可进行初始化设置,包括选择语言、设置标签、选择加密货币等。
- 提供调试模式,便于开发者调试固件代码。
安装使用步骤
前提条件
确保系统已安装Python解释器。
构建固件
- 安装Docker:参考安装文档。
- 进入项目目录:
cd trezor-mcu
- 构建:
./build.sh BOOTLOADER_TAG FIRMWARE_TAG
(例如BOOTLOADER_TAG为bl1.5.0,FIRMWARE_TAG为v1.7.0;若留空则构建master分支的最新提交),构建完成后会生成build/bootloader-BOOTLOADER_TAG.bin
和build/trezor-FIRMWARE_TAG.bin
文件,并在构建日志末尾打印其指纹和大小。
构建Linux模拟器
- 安装Docker:参考安装文档。
- 进入项目目录:
cd trezor-mcu
- 构建:
./build-emulator.sh TAG
(例如TAG为v1.5.0;若留空则构建master分支的最新提交),会生成二进制文件build/trezor-emulator-TAG
,可作为TREZOR模拟器运行(使用TREZOR_OLED_SCALE
环境变量可放大屏幕)。
获取固件指纹
- 从 https://wallet.trezor.io/data/firmware/1/releases.json 中选择固件二进制版本。
- 下载:
wget -O trezor.signed.bin https://wallet.trezor.io/data/firmware/1/trezor-1.6.1.bin
- 计算指纹:
tail -c +257 trezor.signed.bin | sha256sum
安装自定义构建的固件
警告:这将擦除设备上存储的恢复种子,切勿在存有加密货币的TREZOR上操作!
执行更新:trezorctl firmware_update -f build/trezor-TAG.bin
开发构建
若要构建设备固件,需安装 GNU ARM Embedded toolchain。
- 若要构建模拟器而非固件,运行 export EMULATOR=1 TREZOR_TRANSPORT_V1=1
- 若要使用调试链接构建,运行 export DEBUG_LINK=1
(用于运行设备测试)
- 更改上述变量后,使用 script/setup
清理仓库
1. 初始化仓库:script/setup
2. 构建固件或模拟器:script/cibuild
若构建设备固件,固件将位于 firmware/trezor.bin
。可使用 firmware/trezor.elf
启动模拟器,使用 trezorctl -t udp
与模拟器交互(如 trezorctl -t udp get_features
)。若 trezorctl -t udp
挂起,确保已运行 export TREZOR_TRANSPORT_V1=1
。
常规步骤
- 运行Python脚本:在命令行中运行Python脚本,如
generate.py
、handlers.py
等,生成固件代码。 - 编译C代码:使用C编译器(如GCC)编译C语言源文件。
- 烧录固件:将生成的固件代码烧录到TREZOR硬件钱包中。
- 测试:使用TREZOR硬件钱包进行测试,验证固件功能。
注意:使用此项目时,需了解加密货币和硬件钱包的安全风险,在安全环境下操作。同时,注意备份加密货币钱包并谨慎使用。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】