Flash 下载工具用户指南

加密烧录

加密烧录流程为:

Flash 下载工具将明文固件烧录进芯片

芯片使用 eFuse 中的密钥对该明文固件进行加密,然后将加密后的固件写入 flash。

若 eFuse 中无 flash 加密密钥,下载工具会自动在 PC 端随机生成密钥并烧录进 eFuse,客户也可以自行准备加密密钥;若 eFuse 中已有 flash 加密密钥,则跳过密钥的生成及密钥烧录过程。

以下为配置加密功能的步骤:

打开配置文件 ./configure/[chip_name]/security.conf,若首次打开时无此文件,可关闭软件后再次打开即可

修改相关配置项

以下为配置项的说明,其中等号后面的内容为配置项的默认值,True 表示使能,False 表示不使能。

[SECURE BOOT] 此配置项为开启 secure boot 时需要配置

secure_boot_en = False (配置是否使能 secure boot)

secure_boot_version = 1 (用于选择安全启动版本)

public_key_digest_path = .securepublic_key_digest.bin (公钥摘要文件路径,生成方式: espsecure digest_sbv2_public_key -k pem.pem -o public_key_digest.bin; .pem 文件是编译时指定的私钥文件)

public_key_digest_block_index = 0 (eFuse 中存储公钥摘要文件的 block 索引,默认 0)

[FLASH ENCRYPTION] 此配置项为开启 flash 加密时需要配置

flash_encryption_en = False (配置是否开启 flash 加密功能)

reserved_burn_times = 3 (配置预留烧录次数)

[SECURE OTHER CONFIG] 其他安全配置项:

flash_encryption_use_customer_key_enable = False (配置是否使能客户指定的加密密钥)

flash_encryption_use_customer_key_path = .secureflash_encrypt_key.bin (若使用客户指定的密钥,这里需要指定密钥路径)

flash_force_write_enable = False (配置烧录时是否跳过加密和安全启动检查。此时若对已经开启 flash 加密或安全启动的产品烧录时会弹窗报错)

[FLASH ENCRYPTION KEYS LOCAL SAVE] 此配置为是否将加密用的密钥文件保存在本地,默认为 False

keys_save_enable = False (配置是否保存密钥)

encrypt_keys_enable = False (配置是否对保存在本地的密钥加密)

encrypt_keys_aeskey_path = (若对本地保存的密钥加密,请在此处填入密钥文件,比如 ./my_aeskey.bin)

[ESP32* EFUSE BIT CONFIG] 此配置为开启 flash 加密时,是否配置加密项,默认为 False。

[ESP32 DISABLE FUNC] 配置项

[ESP32 DISABLE FUNC] 配置项

描述

dl_encrypt_disable = False

配置是否禁用加密

dl_decrypt_disable = False

配置是否禁用解密

dl_cache_disable = False

配置是否关闭 cache

jtag_disable = False

配置是否关闭 JTAG

运行工具时会提示如下内容,需核对是否正确。下图为同时开启 flash 加密和安全启动的提示信息:

以 ESP32 示例开启 flash 加密和安全启动提示信息

固件烧录过程中,会向芯片的 eFuse 中烧录密钥等信息。待固件及 eFuse 烧录完成后,显示 FINISH/完成。

备注

为防止已加密的模组重烧,工具烧录前会默认校验 eFuse flash 加密及安全启动信息,防止报废。