本文适用于使用AliOS Things v3.0和安全SDK v2.0的场景。

步骤一:适配KM HAL层

  1. 在AliOSThings/board/<设备名称>/aos.mk下确定设备名称和架构名称。其中设备名称为CONFIG_SYSINFO_DEVICE_NAME,架构名称为HOST_ARCH。

    以esp32devkitc为例:进入AliOSThings/board/esp32devkitc/aos.mk,CONFIG_SYSINFO_DEVICE_NAME为ESP32,HOST_ARCH名称为xtensa。

  2. 创建对应的HAL层。
    1. 创建文件夹security/ls_hal/km/esp32。
    2. 在security/ls_hal/aos.mk中添加esp32文件编译。
      ifeq ($(CONFIG_SYSINFO_DEVICE_NAME), ESP32)
      $(NAME)_SOURCES  += ./km/esp32/ls_hal_km.c
      endif
    3. 添加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。

  1. 在security/irot/km/lib下新建xtensa文件夹,文件夹名与HOST_ARCH保持一致。
  2. 拷贝libkm.a至该文件夹中。

步骤三:添加prov库

如果ID²是通过产线烧录到设备端,则需要联系安全团队提供libprov.a库,并添加libprov.a库至security/prov/lib/<HOST_ARCH>中。

以esp32devkitc平台为例:在security/prov/lib/下新建xenta文件夹,拷贝libprov.a到该文件夹中。