本文适用于使用AliOS Things v3.0和安全SDK v2.0的场景。
步骤一:适配KM HAL层
- 在AliOSThings/board/<设备名称>/aos.mk下确定设备名称和架构名称。其中设备名称为CONFIG_SYSINFO_DEVICE_NAME,架构名称为HOST_ARCH。
以esp32devkitc为例:进入AliOSThings/board/esp32devkitc/aos.mk,CONFIG_SYSINFO_DEVICE_NAME为ESP32,HOST_ARCH名称为xtensa。
- 创建对应的HAL层。
- 创建文件夹security/ls_hal/km/esp32。
- 在security/ls_hal/aos.mk中添加esp32文件编译。
ifeq ($(CONFIG_SYSINFO_DEVICE_NAME), ESP32) $(NAME)_SOURCES += ./km/esp32/ls_hal_km.c endif
- 添加security/ls_hal/km/esp32/ls_km_hal.c文件并实现Soft-KM HAL接口。
需要适配的HAL接口为:
int ls_hal_get_dev_id(uint8_t *dev_id, uint32_t *id_len) int ls_hal_open_rsvd_part(int flag) int ls_hal_write_rsvd_part(int fd, uint32_t offset, void *data, uint32_t data_len) int ls_hal_read_rsvd_part(int fd, uint32_t offset, void *buffer, uint32_t read_len) int ls_hal_read_rsvd_part(int fd, uint32_t offset, void *buffer, uint32_t read_len)
步骤二:添加km库检查平台架构HOST_ARCH
若该架构已存在于security/irot/km/lib中,则忽略该步骤。若不存在,请联系阿里云物联网安全团队提供相应的libkm.a库。
以esp32devkitc平台为例,HOST_ARCH为xtensa。
- 在security/irot/km/lib下新建xtensa文件夹,文件夹名与HOST_ARCH保持一致。
- 拷贝libkm.a至该文件夹中。
步骤三:添加prov库
如果ID²是通过产线烧录到设备端,则需要联系安全团队提供libprov.a库,并添加libprov.a库至security/prov/lib/<HOST_ARCH>中。
以esp32devkitc平台为例:在security/prov/lib/下新建xenta文件夹,拷贝libprov.a到该文件夹中。