杰理开发基础知识(3)
一、什么是 Key 文件Key 文件简单理解就是杰理为其蓝牙芯片专门设计的一个密码文件用于对程序进行加密。可以把它想象成一把“软件锁”或“芯片的身份证”。它是杰理芯片特有的一种安全机制已经延续了很久很久。本质一个后缀名为.key或.lkey、.ckey的文件由杰理独家分配。二、Key 文件的作用是什么Key 文件的核心作用是保护程序不被非法读取和破解。程序加密在编译生成最终固件.fw文件时开发环境会使用这个 Key 文件对用户的程序.bin文件进行加密。防止破解杰理芯片采用SOC 架构控制器 外挂 SPI Flash 合封。程序存放在外挂的 SPI Flash 中。如果没有加密攻击者可以直接读出 Flash 里的程序进行破解。引入 Key 后的安全性通过专用烧写器将 Key 写入芯片内部的控制器。再将使用该 Key 加密后的程序烧录到外挂的 SPI Flash 中。此时即使攻击者读出了 Flash 的内容得到的也是加密后的乱码无法直接使用。即使知道了 Key 文件也无法从加密的bin文件反推出原始程序安全等级很高。一句话总结Key 文件是杰理低成本 SOC 架构下保护开发者知识产权固件程序不被盗用的核心安全机制。三、Key 文件在哪里可以用到Key 文件主要应用于两个环节开发阶段在工程师编译程序并下载到芯片时使用。需要将.key文件添加到编译/下载脚本中生成加密的固件再烧录。量产阶段在工厂使用批量烧写器如一拖二、一拖八烧写器将 Key 文件预先写入芯片的控制器中然后再烧录使用该 Key 加密后的固件程序。四、是不是所有的编译下载的时候必须用到不一定这取决于你的目标芯片是否已经烧录了 Key 文件。情况1目标芯片已烧录过 Key如购买的开发板、量产芯片必须使用 Key 文件。你编译的程序必须使用与芯片内 Key 匹配的.key文件进行加密才能成功下载和运行。否则会报错“KEY不匹配”。情况2目标芯片是空片未烧录过 Key不能使用 Key 文件。编译时不能添加-key参数生成不加密的程序进行下载。如果加了 Key 文件也会报错“KEY不匹配”。核心原则芯片内的 Key 与 编译时使用的 Key 文件必须严格一致否则无法正常运行。五、编译下载时出现 Key 文件不匹配报错如何解决出现“KEY不匹配”的报错核心是芯片内的 Key 状态与你的编译脚本参数不匹配。解决方法很简单根据报错信息判断是哪种情况错误场景典型报错信息原因分析解决方法1. 芯片未烧录Key但程序使用了Key错误KEY不匹配!!! 芯片没有被烧写过KEY请删除“-key keyfile”参数目标芯片是空片但你的脚本指定了-key参数生成了加密程序。删除编译脚本中的-key参数生成不加密的程序下载。2. 芯片已烧录Key但程序未指定或指定了错误的Key错误KEY不匹配!!! 芯片被烧写过KEY请使用“-key keyfile”参数指定KEY文件芯片已烧录 Key但你的脚本未指定 Key 文件或指定的 Key 文件与芯片内的不一致。在编译脚本中正确添加-key参数并指向与芯片烧录 Key 一致的.key文件从供应商处获取。3. 芯片已烧录一个Key你用了另一个供应商的Key错误KEY不匹配!!! 芯片被烧写过KEY请使用“-key keyfile”参数指定KEY文件你拿到的 Key 文件是清月电子的 (AC.key)但芯片内部烧录的是另一家供应商的 Key。不能用你的 Key 去匹配别人的芯片。要么从原来的供应商获取正确的 Key要么更换芯片。4. 其他错误错误fw文件中已经存在要添加的文件通常是重复打包固件时目标文件已存在。清理或重命名旧的输出文件重新执行脚本。六、Key 文件如何加入到程序中在哪个位置添加Key 文件是通过在编译/下载脚本中添加一个参数来加入程序的。最常见的脚本是位于 SDK 工具目录下的download.batWindows 批处理文件。具体步骤找到脚本文件在 SDK 目录中找到download.bat文件。典型路径以 AC696N/AC695N 为例...\cpu\br23\tools\download\standard\download.bat修改脚本用记事本打开download.bat找到isd_download.exe命令。添加 Key 参数在isd_download.exe命令的最后加上-key 你的key文件名.key。保存并运行保存修改后的download.bat双击运行它即可。执行该脚本后开发环境会自动使用指定的 Key 对程序进行加密生成最终的加密固件文件.fw文件。

相关新闻

最新新闻

日新闻

周新闻

月新闻