详细的开发环境配置可以查看Ledger's documentation的官方文档。 这里只是简要说明一下
必须是Linux操作系统, Windows就不要想了。
安装gcc交叉编译工具和C语言。 并配置BOLOS_ENV环境变量, 这个环境变量非常重要, makefile在执行编译操作时是依赖此变量才找到对应的编译工具
注意这个地方有很大的坑, 一定要检查自己的硬件钱包当前的固件版本号, 去其github官方下载SDK时, 注意版本号一定要和固件号一致。 否则会出现很多问题,比如莫名的安装不成功, 或者自动退出。 这些问题在github上总是有人问, 但却没有人告诉原因。我也是自己摸索才发现是这个原因。
Ledger是使用Python的一个驱动库将编译的二进制文件写到硬件钱包中。 而且使用这个库可以直接和钱包进行通信。 我们在进行测试的时候也是使用这个库。 所有这个Python loader必须安装成功。 由于依赖的是Python2.7版本 建议使用沙盒环境。
首先需要安装一下几个包(ubuntu 直接apt install 即可安装)
libudev-dev
libusb-1.0.0-dev
python-dev
创建沙盒环境
virtualenv -p python2.7 ledger
source ledger/bin/active
当上述步骤都成功之后,即可进行编译。
编译只需要在当前目录下的执行make
即可。
安装和删除只需要执行下面操作:
- Ledger nanaos 连接电脑 并输入PIN码解锁
- 执行
make delete
确保之前的应用已经被删除 - 执行
make load
开始进行源码编译并下载二进制执行文件到钱包中
如何想了解LedgerHQ的工作原理可以查看文档 Ledger's documentation
定义的APDU通信协议可以查看此文档