文档

载体为软件沙箱的设备接入自建设备管理系统

更新时间:
一键部署
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文介绍了ID²设备端SDK的集成方法。

本文介绍了ID²设备端SDK的集成方法,适用于以下场景:

  1. 没有使用阿里云物联网平台。

  2. 载体类型为软件沙箱。

  3. 烧录方式为动态下发。

注意

设备端必须预留50K ROM、4K RAM、4K存储分区(用于ID²的安全存储,需保证系统升级时该分区数据不被破坏)。

设备端SDK介绍

ID² SDK打包集成了阿里云IoT在设备端的安全框架和安全组件,下载并解压后,在id2目录中您将得到以下文件:

目录

说明

libs

根据您在控制台选择的参数,编译好的库文件,包括debug和release两个版本,调试阶段请使用debug版本,正式产品请使用release版本。

src

包括3部分代码:

port:适配层相关代码,需要根据实际情况做适配修改。

sample:API调用的参考代码。

test:测试代码,用于集成调试。

inc

头文件。

demo

一个完整的示例项目,可以直接编译运行。

Makefile

编译脚本。

README

使用说明。

设备端SDK集成

  1. 实现ID²适配层代码

针对不同的操作系统和硬件平台,ID²抽象出统一的OSA层接口和HAL层接口,这些接口需要您根据使用的具体操作系统和硬件平台来实现,ID² SDK中的其他模块会调用这些接口。

(1)OSA层

OSA层是操作系统适配层,需要适配的代码在inc/ls_osa.h中定义,并非所有接口都需要实现,具体参考下表,您可以直接在src/port/ls_osa.c中实现。

接口

说明

是否必须

ls_osa_print

格式化打印

ls_osa_snprintf

字符串格式化

ls_osa_malloc

内存分配

ls_osa_calloc

内存分配

ls_osa_free

内存释放

ls_osa_net_connect

创建网络连接

ls_osa_net_disconnect

断开网络连接

ls_osa_net_send

发送数据

ls_osa_net_recv

接收数据

ls_osa_get_time_ms

获取系统当前时间戳

ls_osa_msleep

睡眠函数

ls_osa_mutex_create

创建互斥锁

ls_osa_mutex_destroy

销毁互斥锁

ls_osa_mutex_lock

互斥锁上锁

ls_osa_mutex_unlock

互斥锁解锁

(2)HAL层

HAL层是软件沙箱使用的与具体硬件相关的接口,需要根据实际情况适配,具体参考下表。接口定义在inc/ls_hal_km.h,实现代码请放在src/port/ls_hal_km.c。

接口

说明

是否必须

ls_hal_get_dev_id

获取设备唯一ID

ls_hal_open_rsvd_part

打开存储分区,如不支持文件系统,直接返回0即可

ls_hal_write_rsvd_part

向指定的分区中写入数据

ls_hal_read_rsvd_part

从指定的分区中读出数据

ls_hal_close_rsvd_part

关闭打开的存储分区,如不支持文件系统,直接返回0即可

OSA层和HAL层的详细接口定义参见:

https://help.aliyun.com/document_detail/117166.html

  1. 动态下发和烧录

参考src/sample/otp.c,完成ID²动态下发逻辑的集成,动态下发的详细流程如下:

(1)设备端调用id2_client_get_otp_auth_code接口生成动态下发认证码;

(2)服务端调用otpGetId2接口请求动态下发ID²数据;

(3)设备端调用id2_client_load_otp_data接口解析、验证和烧录ID²数据到设备中。

警告

第(1)(3)步操作必须在同一进程中执行,否则无法正常烧录。动态下发需要服务端配合完成,请先完成ID²服务端的对接,参考文档:

https://help.aliyun.com/document_detail/142883.html

  1. 调试验证

调试验证前,需要确保设备中已经正常烧录ID²,之后按如下流程调试:

(1)将src/test目录下源码和头文件加入项目工程中,编译运行;

(2)运行结果如下图所示:

(3)按照IoT安全中心-资产管理-直连设备- ID²接入指引-集成安全SDK-设备端集成验证的指引,将运行结果复制到设备端适配验证工具中,进行验证。

  1. 业务代码集成

参考src/sample/runtime.c,完成ID²设备认证、数据解密相关逻辑的集成。

  • 本页导读 (0)
文档反馈