15bbf6e98Sopenharmony_ci# device_attest部件<a name="ZH-CN_TOPIC_001"></a> 25bbf6e98Sopenharmony_ci 35bbf6e98Sopenharmony_ci## 简介<a id="section100"></a> 45bbf6e98Sopenharmony_ci 55bbf6e98Sopenharmony_cidevice_attest,设备证明部件,是一个系统服务(SystemAbility), 是OpenHarmony compatibility agreement约定需要设备厂商在产品中集成的部件,用于支撑生态伙伴完成产品的兼容性测试。其基本功能是看护OpenHarmony生态设备认证结果,通过端云校验机制,支撑OpenHarmony南北向生态统一,保障用户体验。该部件用于标准系统(standard system)。 65bbf6e98Sopenharmony_ci生态伙伴(即设备厂商)兼容性测试工作流程: 75bbf6e98Sopenharmony_ci1、设备厂商在[OpenHarmony兼容性平台](https://compatibility.openharmony.cn/console/)注册企业账号,完成设备信息登记,将登记的设备信息写入设备,并完成依赖接口适配; 85bbf6e98Sopenharmony_ci2、设备厂商启动认证测试,上传xts测试报告; 95bbf6e98Sopenharmony_ci3、OpenHarmony认证云认证通过设备厂商产品信息,发放token到OpenHarmony兼容性平台; 105bbf6e98Sopenharmony_ci4、设备厂商从OpenHarmony兼容性平台获取token; 115bbf6e98Sopenharmony_ci5、设备厂商经三方产线将token烧录到OpenHarmony设备; 125bbf6e98Sopenharmony_ci6、设备证明部件与OpenHarmony认证云通信,对设备进行激活/认证,设备从OpenHarmony认证云获取认证结果,存储到本地; 135bbf6e98Sopenharmony_ci7、系统服务、系统应用等可通过设备证明部件提供的接口获取认证结果,并基于认证结果进行业务设计。 145bbf6e98Sopenharmony_ci 155bbf6e98Sopenharmony_ci工作流程图: 165bbf6e98Sopenharmony_ci 175bbf6e98Sopenharmony_ci 185bbf6e98Sopenharmony_ci## 目录<a id="section200"></a> 195bbf6e98Sopenharmony_ci 205bbf6e98Sopenharmony_ci``` 215bbf6e98Sopenharmony_ci/test/xts 225bbf6e98Sopenharmony_ci├── device_attest # 设备证明部件代码存放目录 235bbf6e98Sopenharmony_ci│ └── build # 编译配置存放目录 245bbf6e98Sopenharmony_ci│ └── common # 公共基础能力 255bbf6e98Sopenharmony_ci│ └── figures 265bbf6e98Sopenharmony_ci│ └── interfaces # 对外接口 275bbf6e98Sopenharmony_ci│ └── sample # 对外接口示例 285bbf6e98Sopenharmony_ci│ └── services # 服务主体和业务逻辑代码 295bbf6e98Sopenharmony_ci│ └── core # 业务逻辑代码 305bbf6e98Sopenharmony_ci│ └── devattest_ability # 服务框架 315bbf6e98Sopenharmony_ci│ └── etc # 启动配置文件存放目录 325bbf6e98Sopenharmony_ci│ └── oem_adapter # 设备厂商适配接口存放目录 335bbf6e98Sopenharmony_ci│ └── sa_profile # 进程配置文件存放目录 345bbf6e98Sopenharmony_ci``` 355bbf6e98Sopenharmony_ci 365bbf6e98Sopenharmony_ci## 架构图<a id="section300"></a> 375bbf6e98Sopenharmony_ci 385bbf6e98Sopenharmony_ci1、设备启动过程中,设备证明部件被init进程拉起,监控网络状态,设备联网后,读取token和系统参数,发起设备认证端云通信; 395bbf6e98Sopenharmony_ci2、端云通信采用https协议,设备证明部件将token和系统参数上传到OpenHarmony认证云,并获取认证结果和新token; 405bbf6e98Sopenharmony_ci3、设备证明部件将认证结果存储到沙箱目录,并更新token; 415bbf6e98Sopenharmony_ci4、设备证明部件对外提供认证结果查询接口,供其他模块判定设备是否已通过认证,比如系统服务、系统应用等。 425bbf6e98Sopenharmony_ci 435bbf6e98Sopenharmony_ci 445bbf6e98Sopenharmony_ci 455bbf6e98Sopenharmony_ci## 约束<a id="section400"></a> 465bbf6e98Sopenharmony_ci 475bbf6e98Sopenharmony_ci**表 1 设备证明部件集成依赖库** 485bbf6e98Sopenharmony_ci| 库名称 | 版本号 | 功能描述 | 仓库路径 | 495bbf6e98Sopenharmony_ci| --------- | ---------------- | ----------------------------------------------- | ---------------------------------------- | 505bbf6e98Sopenharmony_ci| mbedtls | 2.16.11 | 供嵌入式设备使用的一个 TLS 协议的轻量级实现库。 | third_party\mbedtls | 515bbf6e98Sopenharmony_ci| OpenSSL | 1.1.1 | 传输层安全(TLS)协议(包括SSLv3)以及通用密码库。 | third_party\openssl | 525bbf6e98Sopenharmony_ci| cJSON | 1.7.15 | JSON 文件解析库。 | third_party\cJSON | 535bbf6e98Sopenharmony_ci| libsec | 1.1.10 | 安全函数库。 | bounds_checking_function | 545bbf6e98Sopenharmony_ci| parameter | OpenHarmony 1.0 release及之后版本 | 获取设备信息的系统接口。 | base\startup\init\interfaces\innerkits\include\syspara\parameter.h | 555bbf6e98Sopenharmony_ci 565bbf6e98Sopenharmony_ci## 对外接口<a id="section500"></a> 575bbf6e98Sopenharmony_ci 585bbf6e98Sopenharmony_ci**表 2 设备证明部件对外接口** 595bbf6e98Sopenharmony_ci| **接口名** | **描述** | 605bbf6e98Sopenharmony_ci| ------------------------------------------------------- | ------------ | 615bbf6e98Sopenharmony_ci| int32_t GetAttestStatus(AttestResultInfo* attestResultInfo); | 获取设备认证结果 | 625bbf6e98Sopenharmony_ci 635bbf6e98Sopenharmony_ci设备证明部件开机自启动,网络连接成功后,会进入设备证明部件主流程。通过调用GetAttestStatus接口,获取设备认证结果。 645bbf6e98Sopenharmony_ci调用可查看sample示例 655bbf6e98Sopenharmony_ci 665bbf6e98Sopenharmony_ci## 编译指令<a id="section600"></a> 675bbf6e98Sopenharmony_ci以rk3568为例 685bbf6e98Sopenharmony_ci```sh 695bbf6e98Sopenharmony_ci./build.sh --product-name=rk3568 system_size=standard 705bbf6e98Sopenharmony_ci``` 715bbf6e98Sopenharmony_ci编译成功后会在out/rk3568/packages/phone/system/lib路径下生成libdevattest_core.z.so、libdevattest_sdk.z.so、libdevattest_service.z.so、libdevice_attest_oem_adapter.z.so四个动态库 725bbf6e98Sopenharmony_ci 735bbf6e98Sopenharmony_ci## 相关仓<a id="section700"></a> 745bbf6e98Sopenharmony_ci 755bbf6e98Sopenharmony_ci**xts\_device\_attest** 765bbf6e98Sopenharmony_ci 775bbf6e98Sopenharmony_ci[xts\_device\_attest\_lite](https://gitee.com/openharmony-sig/xts_device_attest_lite/)