一、通过nrfutil工具生成密钥
shift+右键 ,选择windows powershell,在命令框中输入以下指令
生成私钥指令:nrfutil keys generate priv.pem (priv.pem就是私钥)
生成公钥指令:nrfutil keys display --key pk --format code priv.pem --out_file dfu_public_key.c (dfu_public_key.c就是公钥)
nrf5_sdk_17.1.0_ddde560\nRF5_SDK_17.1.0_ddde560\examples\dfu
路径下把新生成的dfu_public_key.c替换
二、生成bootloader.hex和app.hex
以KEIL工程为例打开路径\nrf5_sdk_17.1.0_ddde560\nRF5_SDK_17.1.0_ddde560\examples\dfu\secure_bootloader\pca10056_s140_ble\arm5_no_packs,重新编译,把secure_bootloader_ble_s140_pca10056.hex文件改名为bootloader.hex;
打开路径\nrf5_sdk_17.1.0_ddde560\nRF5_SDK_17.1.0_ddde560\examples\ble_peripheral\ble_app_buttonless_dfu\pca10056\s140\arm5_no_packs
,重新编译,把ble_app_buttonless_dfu_pca10056_s140.hex文件改名为app.hex
三、合并文件并烧写
新建dfu_file文件夹,把上述的priv.pem、bootloader.hex、app.hex、s140_nrf52_7.2.0_softdevice.hex(此工程对应的蓝牙协议栈文件)文件全部添入其中,如下图1
,在此文件夹窗口打开windows Powershell窗口
1、生成settings文件
nrfutil settings generate --family NRF52840 --application app.hex --application-version 1 --bootloader-version 1 --bl-settings-version 1 settings.hex
nrfutil settings generate --family NRF52840 --application app.hex
–application-version 1 --bootloader-version 1 --bl-settings-version 1
settings.hex
nrfutil settings generate指令可在后面添加 --help查看具体介绍
2、合并应用程序
mergehex指令格式:mergehex -m xxx1.hex xxx2.hex xxx3.hex -o
xxxout.hex,mergehex指令一次性只能合并3个文件,所以需要分两次合并
mergehex -m s140_nrf52_7.2.0_softdevice.hex bootloader.hex app.hex -o out3t1.hex
mergehex -m out3t1.hex settings.hex -o out4t1.hex
mergehex -m s140_nrf52_7.2.0_softdevice.hex bootloader.hex app.hex -o
out3t1.hex
mergehex -m out3t1.hex settings.hex -o out4t1.hex
如图2所示
mergehex指令可通过mergehex --help查看具体介绍
3、烧写应用程序(以nrfjprog工具为例)
nrfjprog --eraseall -f NRF52
nrfjprog --program out4t1.hex --verify -f NRF52
nrfjprog --reset -f NRF52
nrfjprog --eraseall -f NRF52
nrfjprog --program out4t1.hex --verify -f NRF52
nrfjprog --reset -f NRF52
4、生成新固件zip升级包
将蓝牙广播名称修改为my_nordic_new,将编译生成的新固件命名为app_new.hex,并生成固件zip升级包
nrfutil pkg generate --application app_new.hex --application-version 2 --hw-version 52 --sd-req 0x0100 --key-file priv.pem only_app_OTA.zip
nrfutil pkg generate --application app_new.hex --application-version 2 --hw-
version 52 --sd-req 0x0100 --key-file priv.pem only_app_OTA.zip
如图3所示:
nrfutil pkg generate指令格式可通过 nrfutil pkg generate --help查看具体介绍
指令中0x0100是对应的softdevice的ID信息,可通过 nrfutil pkg generate --help 查看具体介绍
5、DFU升级
- 在Android版nRF Connect 中连接广播中待升级的设备,该设备名称为nordic_buttonless;
- 点击右上角DFU图标,选择zip升级,在弹框中找到存储在手机中的only_app_OTA.zip(步骤4之后传输到手机中);
- 等待DFU升级成功,DFU完成后,升级新固件,可以设备的广播名称为my_nordic_new
网络安全工程师(白帽子)企业级学习路线
第一阶段:安全基础(入门)
第二阶段:Web渗透(初级网安工程师)
第三阶段:进阶部分(中级网络安全工程师)
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!