CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!
文档中心 > GR5xx固件升级开发指南/ 使用GRToolbox升级/ 加密加签固件升级 Copy URL

加密加签固件升级

将系统设置成加密模式,需要设置eFuse,eFuse中存放着产品配置信息、安全模式控制信息以及用于加密加签的各种密钥信息,因此如果尚未下载过设置信息至eFuse中,需要先进行eFuse设置,然后将设置信息下载至eFuse。用户可点击GProgrammer工具左侧工具栏中的Encrypt & Sign进入芯片加密操作界面,如下图所示。

图 33 Encrypt & Sign界面
说明:

GR5405、GR533x系列芯片支持加签,但不支持加密加签。

eFuse设置

用户可通过GProgrammer中的Encrypt & Sign指定产品的Name、ID和Firmware Key,并配置Security Mode和SWD接口,生成存储在eFuse中的相关文件。

图 34 eFuse设置栏界面

eFuse是芯片内部的一个具有随机访问接口的一次性可编程存储器。图 34中参数说明如下:

  • Firmware Key:可使用软件自动生成的随机Key,也可使用用户自行添加的Key文件。
  • Security Mode:选择Open将启用芯片安全模式,该模式开启后不能被关闭。
  • SWD:选择Close将关闭SWD功能,开发者依然可以通过DFU对固件进行升级。
  • Batch eFuse:可指定生成相应数量的数据密钥文件,以支持一机一密的使用场景。若不勾选则只会生成一个数据密钥文件。

生成的文件包括:

图 35 生成的文件
  • efuse.json:临时文件。
  • Encrypt_key_info.bin、2_Encrypt_key_info.bin、3_Encrypt_key_info.bin:eFuse下载文件,包含产品及加密加签信息。此文件需下载至eFuse。
  • firmware.key:用于加密固件的私钥。
  • Mode_control.bin:eFuse下载文件,包含Security Mode和SWD信息。此文件需下载至eFuse。
  • product.json:产品信息文件。当固件加密加签时,需导入此文件。
  • sign.key:用于生成签名的私钥。
  • sign_pub.key:用于验证签名的公钥。
  • Public_key_hash.txt:用于验证签名的公钥Hash。

为了方便用户下载文件至eFuse或加密加签固件,生成的Encrypt_key_info.binMode_control.bin文件的路径将被默认添加至Download区域,产品信息文件product.json的路径被默认添加至Encrypt and SignProduct Info中。

图 36 GProgrammer加密加签界面

eFuse下载

若用户已执行eFuse设置操作,可直接点击Download to eFuse将文件下载至eFuse中。否则,需先手动选择添加Encrypt_key_info.binMode_control.bin文件,然后才能下载。

图 37 下载文件至eFuse

固件配置

对于加密加签固件的升级,需要配置app_bootloader和ble_app_template_dfu工程相关参数,才能在跳转应用固件之前对应用固件进行正确校验。

提示:
  • app_bootloader工程的bootloader_config.h文件路径:SDK_Folder\projects\ble\dfu\app_bootloader\Src\config
  • ble_app_template_dfu工程的custom_config.h文件路径:SDK_Folder\projects\ble\ble_peripheral\ble_app_template_dfu\Src\config
表 17 app_bootloader工程配置(加密加签)
文件名

bootloader_config.h

BOOTLOADER_SIGN_ENABLE

1:打开验签

BOOTLOADER_PUBLIC_KEY_HASH

Public_key_hash.txt文件内的值

BOOTLOADER_PUBLIC_KEY_HASH是一组值,该值存放在图 35所示的Public_key_hash.txt文件中,将该文件中的数值复制到bootloader_config.h文件中的BOOTLOADER_PUBLIC_KEY_HASH宏定义中。

表 18 ble_app_template_dfu配置(加密加签)
文件名
custom_config.h SECURITY_CFG_VAL
安全配置
  • 0:RSA算法
  • 1:ECDSA算法
各芯片支持的配置如下:
  • GR551x:0
  • GR5526:0
  • GR5525: 0或1

生成加密加签固件

在芯片加密模式下,固件需要加密加签后才可下载至Flash中运行。GProgrammer允许用户使用同一套产品信息和同一个Random Number加密加签多个固件文件。在 Encrypt & Sign > Encrypt and Sign > Firmware中添加多个固件时,各固件的路径之间用分号隔开,如图 38所示:

图 38 添加多个固件

在加密芯片中,需要对app_bootloader和ble_app_template_dfu固件同时进行加密,程序才能正确运行,加密加签后生成的文件如下图所示:

图 39 加密加签生成的文件

固件升级

加密加签固件在GRToolbox的升级操作与非加密非加签固件的操作基本一致,区别仅在于存放入手机的固件是加密加签固件,其他操作可参考固件升级

扫描关注

打开微信,使用“扫一扫”即可关注。