本文用于指导芯片厂商、模组厂商或设备厂商在产线环境将ID²安全的烧录到设备中。

前提条件

  • 使用阿里云IoT ID²安全SDK进行了设备对接。
  • 使用Soft-KM(Key Management)作为安全载体。
  • 使用产线烧录方式进行了ID²预制。

步骤一:获取ID²烧录数据

烧录ID²流程如下图。

流程图

ID²数据拉取流程如下图。

ID²数据拉取流程
  1. 申请ID²烧录许可证。详细操作方法,请参考申请ID²烧录许可证。如果您已经申请了ID²的烧录许可证,请忽略此步骤。
  2. 根据示例代码sample进行ID²烧录SDK集成。
  3. 配置烧录端口数和许可证文件路径ds_sample.c->ds_init。
    • 烧录端口数:ID²烧录数据并发拉取的数目。
    • 许可证文件路径licenseConfig.ini相对库文件的路径。
  4. 创建工程,编译生成烧录测试工具。

    ID²烧录数据默认生成在当前bin目录,且同线程下生成的文件名称相同。

  5. 配置许可证文件licenseConfig.ini。烧录至模组

    请参考下表,配置许可证文件。

    配置项 描述
    serverType 设置为固定值1:factory mode。
    ID2SyncPolicy 获取ID²数据的策略。
    • 0:对应异步(速度较快,但会有一定的浪费)。
    • 1:对应同步(按需获取数据,不会产生浪费,使用于网络良好的场景)。
    license 已经申请到的许可证编号。如果没有,请参考申请ID²烧录许可证
    factPriKey 产线私钥,用于解密服务端下发的ID²密钥,对应的公钥用于许可证申请。
  6. 在与库相同的目录,配置日志文件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²数据烧录

ID²数据烧录指通过设备端Prov模块进行数据解析、保护和存储ID²数据。

ID²烧录测试在产线上对ID²烧录结果进行验证。

ID²数据烧录和测试触发方式由厂商确定。具体流程,可参考下图。

ID²数据的烧录和测试
  1. 调用prov_get_prov_res函数,获取模组上的烧录结果。
    返回值 说明
    0 烧录成功。
    非0 烧录失败,需要重新烧录。
  2. 调用prov_item函数烧录数据。

    其中item_name设置为ITEM_NAME_ID2,data表示ID²烧录数据在内存的地址,data_len表示烧录数据的字节长度。

  3. 调用prov_get_prov_res函数获取模组上烧录结果。
    返回值 说明
    0 烧录成功。
    非0 烧录失败,需要重新烧录。