[经验分享] 兼容性测评经验分享(三):授权验证开发 原创

lzu-njy 显示全部楼层 发表于 2024-6-28 21:26:00

本系列前一篇帖子介绍了填写兼容性测评申请(即兼容性测评的步骤2、步骤3)的流程。本帖子将对第三部分——软件定义进行更详细的阐述。

参考文档/链接

  1. 《设备证明集成开发指南+标准设备》pdf: 从“兼容性测评”界面的”授权验证开发指南“(下图红框)可获取,解压后得到标准设备、小型设备、轻量设备三个文件,参考相应系统设备的开发指南即可。
  2. 《软证书申请指导》pdf:在”授权验证管理“-”管理软证书“界面可获取,详见下文的”授权验证管理“章节。
  3. harmony 鸿蒙DeviceInfo适配说明 :提供了系统参数接口名的对应关系。这两种信息的作用将在下文介绍。

兼容性平台申请-3.png

软件定义信息填写

版本id

版本id由共计10个字段拼接而成:devicetype/manufacture/brand/productSeries/OSFullName/productModel/SoftwareModel/OHOS_SDK_API_VERSION/incrementalVersion/buildType

这部分工作的难点在于:

  1. 需要知道各字段如何填写;
  2. 需要修改系统源码特定文件对应字段的值,与兼容性平台填写的信息保持一致,才能完成”授权验证“工作。

此处只讨论各字段的填写内容,第2点”修改文件字段“详见下文”授权验证管理“部分。

  1. devicetype:根据实际设备选择,可选“default”、“phone”、“tablet”、“tv”等选项,可查看鸿蒙OS应用开发3.1部分。

  2. manufacture:填写厂商英文名。注意:需要与兼容性平台-用户管理-账户管理中的“企业简称(英文)“(下图红框内容)保持一致。

    企业信息.png

  3. brand:填写设备品牌。注意:需要与兼容性测评-软件定义中的”品牌英文名“保持一致。

  4. productSeries:填写产品系列名称,无特殊要求。

  5. OSFullName:使用USB连接OH开发板与PC,在hdc shell输入begetctl dump api指令,查看OSFullName的值即可。例如:OpenHarmony-4.0.10.13

  6. productModel:填写设备品牌。注意:需要与兼容性测评-软件定义中的”品牌英文名“保持一致。

  7. SoftwareModel:用户可见的软件版本号,无特殊要求。

  8. OHOS_SDK_API_VERSION:系统软件API Version,根据使用OpenHarmony系统的版本查询对应的API版本。例如:OpenHarmonyV4.0对应API 10,则此处填写”10“。

  9. incrementalVersion:差异版本号,无特殊要求。

  10. buildType:构建类型。可选debug、release,log、nolog等。

版本hash

填写“default”即可。

授权验证管理

软证书

授权验证界面.png

从上图红框中可获取到解密工具压缩包,解压后得到《软证书申请指导》pdf文件、RsaDec.bat文件、RsaDec-2.1.0.jar文件。

《软证书申请指导》文档较完善,参考此文档即可完成这部分工作。

管理调测设备

主要参考《设备证明集成开发指南+标准设备》pdf文件。

1.修改device_attest_oem_adapter.c文件

device_attest_oem_adapter.c文件路径
../test/xts/device_attest/services/oem_adapter/src
更改int32_tOEMGetManufacturekey()

将manufacturekeyBuf[]中的内容(三行16进制数)修改为manu.key的内容。

manu.key文件需在”管理软证书“界面的”厂商密钥“链接获取(上图绿框所示)。

更改int32_t OEMGetProductId()

修改OEMGetProductId函数中productIdBuf[]的值,更改为”兼容性测评”界面中ProdId一列的值(平台生成,形如OH0000xx)。

2.修改设备OS信息与设备产品信息

设备OS信息路径
base/startup/init/services/etc/param/ohos_const/ohos.para
设备产品信息配置文件路径
base/startup/init/services/etc/param/ohos.para

需要修改的信息,可在PCS自检表xlsx文件(通过PCS文档获取)中查看,该文件的sheet1工作簿(如下图所示)中给出了表1-1:设备信息接口列表,给出了各API的接口定义与示例值。注意:表1-1中的所有字段都需要修改。

设备信息接口表.png

3.获取可执行二进制文件

编译开关路径
../test/xts/device_attest/build/devattestconfig.gni  

修改enable_attest_test_sample = true

打开第3步的编译开关后,后续编译产物中会生成attesttestclient (\xts\device_attest目录下)可执行二进制文件,完成软证书的导入后,在OH设备端执行该文件查看授权验证结果。

4.编译

./build.sh --product-name rk3568 --ccache  #以rk3568开发板为例

镜像文件生成目录:out/rk3568/packages/phone/images

5.导入软证书与调测

参考《设备证明集成开发指南+标准设备》文档的6.3、6.4章节。需要了解hdc工具的使用。

注意:将软证书导入OH设备后调测验证(执行attesttestclient二进制文件)时,需要将设备联网

若在“管理调测设备”界面,查看到添加设备的“授权验证状态”一栏显示“验证通过”,则此工作已完成。否则会显示“验证不通过”。

调测设备界面.png

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论3

charleeyang

沙发 发表于 2024-7-19 17:06:56
咨询下,设备授权认证过程中,是否遇到过30004故障码问题?
我们公司采用的是hi3519dv500,ohos v4.0, arm64,红外设备。

设备授权认证时,按照认证要求填写了信息,并多次对比了设备和平台侧的信息、token信息,均一致。但总是报30004故障。
我本人也论坛发帖求助:https://forums.openharmony.cn/fo ... thread&tid=3256

lzu-njy

发表于 2024-7-22 21:40  IP属地: 甘肃省

回复 charleeyang: 你好,这个问题没遇到过哈。

我看了下你帖子中的两条回复,可以再补充一下他们的解决思路:需要比对设备信息与平台填写信息是否一致。

可以通过这个对比程序查看,将hdc shell中通过begetctl dump api获取到的设备信息存为txt,将平台填写信息的json文件导出,与此程序放到同级目录下,执行查看程序结果即可。对比程序链接:链接:https://pan.baidu.com/s/17G3Zm8pyMIjCmj64uj7UQw?pwd=3568
提取码:3568

lzu-njy

发表于 2024-7-22 21:45  IP属地: 甘肃省

回复 charleeyang: 程序使用可以参考链接图片:https://github.com/yunwuyue7/Ope ... n/reply/reply_1.png

【2 条回复】

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部