本文用于指导芯片厂商、模组厂商或设备厂商在产线环境将ID²安全的烧录到设备中。
前提条件
- 使用阿里云IoT ID²安全SDK进行了设备对接。
- 使用Soft-KM(Key Management)作为安全载体。
- 使用产线烧录方式进行了ID²预制。
步骤一:获取ID²烧录数据
烧录ID²流程如下图。
ID²数据拉取流程如下图。
- 申请ID²烧录许可证。详细操作方法,请参考申请ID²烧录许可证。如果您已经申请了ID²的烧录许可证,请忽略此步骤。
- 根据示例代码sample进行ID²烧录SDK集成。
- 配置烧录端口数和许可证文件路径ds_sample.c->ds_init。
- 烧录端口数:ID²烧录数据并发拉取的数目。
- 许可证文件路径
licenseConfig.ini
相对库文件的路径。
- 创建工程,编译生成烧录测试工具。
ID²烧录数据默认生成在当前bin目录,且同线程下生成的文件名称相同。
- 配置许可证文件licenseConfig.ini。
请参考下表,配置许可证文件。
配置项 描述 serverType 设置为固定值1:factory mode。 ID2SyncPolicy 获取ID²数据的策略。 - 0:对应异步(速度较快,但会有一定的浪费)。
- 1:对应同步(按需获取数据,不会产生浪费,使用于网络良好的场景)。
license 已经申请到的许可证编号。如果没有,请参考申请ID²烧录许可证。 factPriKey 产线私钥,用于解密服务端下发的ID²密钥,对应的公钥用于许可证申请。 - 在与库相同的目录,配置日志文件log.conf。生成的日志以日期命名,如2017-10-23.log。
配置项说明:
配置项 描述 path 日志输出路径。 level 日志输出的级别。 - NONE_O:不输出日志。
- INFO_O: 输出INFO类型的日志。
- DEBUG_O:输出DEBUG类型的日志。
- ERROR_O:输出ERROR类型的日志。
- ALL:输出所有类型的日志。
步骤二:导入ID²烧录数据
导入ID²烧录数据的用于将拉取的ID²烧录数据从PC端写入到设备端(动态内存或静态存储区)。
PC端至设备端ID²烧录数据的传输方式由厂商自定义。每个设备只传入和写入一个ID²烧录数据,且保证传输过程中数据的正确性和完整性。
步骤三:测试ID²数据烧录
ID²数据烧录指通过设备端Prov模块进行数据解析、保护和存储ID²数据。
ID²烧录测试在产线上对ID²烧录结果进行验证。
ID²数据烧录和测试触发方式由厂商确定。具体流程,可参考下图。
- 调用prov_get_prov_res函数,获取模组上的烧录结果。
返回值 说明 0 烧录成功。 非0 烧录失败,需要重新烧录。 - 调用prov_item函数烧录数据。
其中item_name设置为ITEM_NAME_ID2,data表示ID²烧录数据在内存的地址,data_len表示烧录数据的字节长度。
- 调用prov_get_prov_res函数获取模组上烧录结果。
返回值 说明 0 烧录成功。 非0 烧录失败,需要重新烧录。