OpenHarmony兼容性平台认证接入

2023-11-08

最近在做OpenHarmony兼容性平台认证接入,在此记录一下整个过程遇到的问题和解决办法。

注册账号

进入OpenHarmony兼容是测评主页:https://www.openharmony.cn/certification/document/guid
在这里插入图片描述
点击申请测评, 会跳转到开放原子基金会登录页面。
在这里插入图片描述
如果已经注册账号,直接登录即可。未注册账号,则需点击立即注册。
注意:目前必须注册企业账号,才能直接使用。注册个人账号,需要加入团队,才能进行操作。
在这里插入图片描述

创建产品评测申请

账号登录后,需要在兼容性测评页面点击创建申请。
在这里插入图片描述
按要求填写联系人信息
在这里插入图片描述
填写产品定义信息:
在这里插入图片描述
其中需要重点注意的几个参数,后续用到:

参数项 含义 对应文件路径
企业简称英文(登录后在账户管理->用户管理中可查看) 对应HalGetManufacture函数接口获取的值 //vendor/xxx/xxx/hals/utils/sys_param/hal_sys_param.c
品牌英文名称 对应HalGetBrand函数接口获取的值 //vendor/xxx/xxx/hals/utils/sys_param/hal_sys_param.c
设备型号 对应HalGetProductModel函数接口获取的值 //vendor/xxx/xxx/hals/utils/sys_param/hal_sys_param.c
软件版本号 对应HalGetDisplayVersion函数接口获取的值 //vendor/xxx/xxx/hals/utils/sys_param/hal_sys_param.c
安全补丁标签 对应GetSecurityPatchTag函数接口获取的值 //base/startup/syspara_lite/frameworks/parameter/src/parameter_common.c
版本id 对应BuildVersionId函数接口获取的值 //base/startup/syspara_lite/frameworks/parameter/src/parameter_common.c
版本Hash 对应GetBuildRootHash函数接口获取的值 //base/startup/syspara_lite/frameworks/parameter/src/parameter_common.c

其中,版本id由如下参数组成,以斜杠连接:

static const char *BuildVersionId(void)
{
    char value[VERSION_ID_LEN];
    int len = sprintf_s(value, VERSION_ID_LEN, "%s/%s/%s/%s/%s/%s/%s/%d/%s/%s",
        GetDeviceType(), GetManufacture(), GetBrand(), GetProductSeries(),
        GetOSFullName(), GetProductModel(), GetSoftwareModel(),
        OHOS_SDK_API_VERSION, GetIncrementalVersion(), GetBuildType());
    if (len < 0) {
        return EMPTY_STR;
    }
    const char *versionId = strdup(value);
    return versionId;
}
参数项(按拼接顺序) 含义 对应文件路径
设备类型 对应HalGetDeviceType函数接口获取的值 //vendor/xxx/xxx/hals/utils/sys_param/hal_sys_param.c
企业简称英文 对应HalGetManufacture函数接口获取的值 //vendor/xxx/xxx/hals/utils/sys_param/hal_sys_param.c
品牌英文名称 对应HalGetBrand函数接口获取的值 //vendor/xxx/xxx/hals/utils/sys_param/hal_sys_param.c
产品系列 对应HalGetProductSeries函数接口获取的值 //vendor/xxx/xxx/hals/utils/sys_param/hal_sys_param.c
操作系统版本 对应BuildOSFullName函数接口获取的值(具体值由宏OHOS_OS_NAME, MAJOR_VERSION, SENIOR_VERSION, FEATURE_VERSION, BUILD_VERSION指定) //base/startup/syspara_lite/frameworks/parameter/src/parameter_common.c
产品模型 对应HalGetProductModel函数接口获取的值 //vendor/xxx/xxx/hals/utils/sys_param/hal_sys_param.c
软件模型 对应HalGetSoftwareModel函数接口获取的值 //vendor/xxx/xxx/hals/utils/sys_param/hal_sys_param.c
SDK API版本 对应OHOS_SDK_API_VERSION宏的值 //base/startup/syspara_lite/frameworks/parameter/src/parameter_common.c
增量版本 对应HalGetIncrementalVersion函数接口获取的值 //vendor/xxx/xxx/hals/utils/sys_param/hal_sys_param.c
构建类型 对应HalGetBuildType函数接口获取的值 //vendor/xxx/xxx/hals/utils/sys_param/hal_sys_param.c

软证书获取

下载软证书
在这里插入图片描述
为防止软证书被窃取,软证书(.lic)是加密的,需要将其与之前生成的privatekey.txt文件拷贝到解密工具脚本同级目录:
在这里插入图片描述
由于解密工具依赖java,需要先安装java环境才能运行:
在这里插入图片描述
配置java环境变量:
在系统属性->环境变量中,添加用户变量JAVA_HOME,变量值为刚刚java-jdk的安装路径:
在这里插入图片描述

打开cmd窗口,输入java --version命令,验证java安装是否成功:
在这里插入图片描述
能够打印出版本号即表示安装成功。

java运行环境装好后,直接双击RsaDec.bat脚本即可开始解密,解密成功会生成一个与.lic文件同名的.zip文件,解压后里面有一个.txt文件,文件的每一行(字符长度为151)表示一台设备的软证书,行数应该与之前申请软证书的数量一致。
在这里插入图片描述
申请的所有软证书都在txt文件中,如下图所示:
在这里插入图片描述
需要将这些软证书,写入到产品的安全分区,用于兼容性授权验证。

授权验证组件编译集成与适配

先写到这,后续补充…

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenHarmony兼容性平台认证接入 的相关文章

  • 使用rollapply函数使用R进行VaR计算

    我执行了以下操作来计算 20 个周期滚动窗口的风险价值 VaR require PerformanceAnalytics require zoo data edhec class edhec 1 xts zoo class edhec CT
  • R : 当刻度数据丢失时刻度数据增加值

    我正在处理刻度数据 并希望将我的 xts 不规则间隔的系列聚合成 1 秒均匀的系列 因此 我使用 xts 包函数 to period price 1m lt to period price period seconds k 1 OHLC F
  • R - 当我绘制 xts 和 Zoo 对象时如何更改日期格式?

    我想知道如何更改日期格式 我正在处理的代码如下 library quantmod getSymbols AAPL price AAPL lt AAPL 6 plot price AAPL main The price of AAPL 这个结
  • XTS 将函数应用于一天中的时间子集?

    如何将汇总函数应用于一天中的时间子集 例如 r T16 00 T17 00 Value 我怎样才能应用类似的东西function x quantile x c 90 每天样本小时的价值 您可以使用apply daily在完成一天中的时间子集
  • 将因子类上的 yyyymm 转换为与 ChartSeries() 一起使用的字符类

    我使用读取 CSV 文件read csv 命令 我想转换成 xts 和图表chartSeries 我通过以下方式更改为矩阵 MyData lt as matrix MyData 当我使用转换为 xts 时 MyData xts lt xts
  • 在 R 中将每日水平数据聚合到每周水平

    我有一个巨大的数据集 类似于以下可重现的示例数据 Interval value 1 2012 06 10 552 2 2012 06 11 4850 3 2012 06 12 4642 4 2012 06 13 4132 5 2012 06
  • 分解xts每小时时间序列

    我想分解每小时时间序列decompose ets or stl或任何功能 这是示例代码及其输出 require xts require forecast time index1 lt seq from as POSIXct 2012 05
  • 为什么 apply() 返回转置的 xts 矩阵?

    我想在 xts 矩阵的所有周期上运行一个函数 apply 非常快 但返回的矩阵与原始对象相比具有转置维度 gt dim myxts 1 7429 48 gt myxts 2 apply myxts 1 function x return x
  • “tz”值无效,时区问题

    我正在处理纳斯达克的分钟数据 它有索引 2015 07 13 12 05 00 EST 我调整了系统时间Sys setenv TZ EST 我想编写一个简单的买入 持有 卖出策略 因此我创建了一个持平头寸向量作为基础 pos flat lt
  • 根据局部最小值/最大值计算累积增长/下降

    我正在学习 R 及其通过 quantmod lib 在交易任务中的应用 并定期浏览社区 从这里获得很多新知识和技巧 我对 R 的总体印象 特别是 quantmod lib 它非常棒 此时我需要经验丰富的 R 用户的帮助 我正在使用通过 ge
  • 仅在时间序列中填充有限数量的 NA

    有什么办法可以让我们填补NAs in a zoo or xts数量有限的对象NA向前 换句话说就像填充NA最多连续 3 个NAs 然后保留NA从第 4 个值开始直到有效数字 像这样的东西 library zoo x lt zoo 1 20
  • POSIXct/POSIXlt 和亚秒级精度的奇怪行为

    在 POSIXct 中使用亚秒时 我很难按顺序发生序列 options digits secs 6 x lt xts 1 10 as POSIXct 2011 01 21 c 1 10 1e3 产生以下输出 为什么时间不按顺序排列 1 20
  • 读取包含日期和时间的 csv

    我正在 R 中工作并阅读 csv 其第一列中有日期和时间 我想先在R中导入这个csv文件 然后将其转换为zoo对象 我正在使用 R 中的代码 EURUSD lt as xts read zoo myfile csv sep tz heade
  • R Quantmod::getFinancials

    我正在使用quantmod包裹 我有一个这样的股票向量 c AAPL GOOG IBM GS AMZN GE 我想创建一个函数来计算股票的息税前利润 营业收入 总收入 因此 对于给定的股票 我使用以下仅适用于 GE 的代码 前提是在股票代码
  • XTS 应用系列和多列 XTS?

    例如 我如何使用 apply 函数系列apply daily到多元 XTS 例如 Time a b 2012 02 11 16 21 24 4 7258 7 7258 2012 02 11 16 26 25 4 9096 12 3796 2
  • XTS 中滚动列表的时间不等

    我有报价级别的股票数据 并且想创建前 10 秒所有报价的滚动列表 下面的代码可以工作 但对于大量数据需要很长时间 我想矢量化这个过程或以其他方式使其更快 但我没有想出任何办法 任何正确方向的建议或推动将不胜感激 library quantm
  • 从不规则时间序列创建规则 15 分钟时间序列

    我的 csv 文件中有一个不规则的时间序列 包含 DateTime 和 RainfallValue C SampleData csv DateTime RainInches 1 6 2000 11 59 0 1 6 2000 23 59 0
  • 改进R中从google获取股票新闻数据的功能

    我已经编写了一个函数来从 Google 获取和解析给定股票代码的新闻数据 但我确信有一些方法可以改进它 对于初学者来说 我的函数返回一个 GMT 时区的对象 而不是用户当前的时区 如果传递的数字大于 299 它就会失败 可能是因为 goog
  • 更改绘图区域背景颜色

    我想使用我们公司的颜色在 R 中制作一个图表 这意味着所有图表的背景应为浅蓝色 但绘图区域应为白色 我正在寻找答案 发现绘制一个矩形就可以完成这项工作 几乎 然而 绘图区域现在是白色的 并且图形不再可见 这可能吗 getSymbols SP
  • R 中计算滚动实现波动率的更快方法

    我想计算一组指数的滚动 20 天已实现波动率 这是我用来下载指数价格 计算每日收益和 20 天已实现波动率的代码 library quantmod library PerformanceAnalytics tickers c RUT STO

随机推荐

  • java在mysql中查询内容无法塞入实体类中,报错 all elements are null

    目录 一 问题描述 二 解决方案 一 问题描述 java项目中整体配置了mysql的驼峰式字段匹配规则 mybatis configuration map underscore to camel case true 由于项目需求 需要返回字
  • Android:checkbox多选样式怎么操作

    这个问题折磨了好几天 一直拖着没搞 最后收尾了 逃不掉了 没办法 下面是实现的效果 方便大家了解一下这个是啥东西 就是点击全部的checkbox的时候下面的都会选中 下面的三个item是动态创建的 当动态创建的item点满的时候 全部 会触
  • C++ - "std" has no member "string"

    C 中使用 string 类型 需要两个步骤 包含头文件 include string h 使用std命名空间 include string h using namespace std int main int argc char argv
  • 图解算法学习笔记(八):贪婪算法

    目录 1 背包问题 2 集合覆盖问题 3 NP完全问题 4 小结 本章内容 学习如何处理没有快速算法的问题 NP完全问题 学习近似算法 使用它们找到NP问题的近似解 学习贪婪策略 1 背包问题 假设你是个贪婪的小偷 背着可装35磅重东西的背
  • Vue2学习第九篇:条件渲染

    一 条件渲染 1 v if 写法 1 v if 表达式 2 v else if 表达式 3 v else 表达式 适用于 切换频率较低的场景 特点 不展示的DOM元素直接被移除 注意 v if可以和 v else if v else一起使用
  • matlab 神经网络ann用于分类方法

    matlab关于ann的分类方法讲解了一个例子 Fishr集上鸢尾花 Iris 的分类 学习了这个方法可以套用在个人项目上使用 万变不离其宗 1 Fishr集上鸢尾花Iris数据集的分类 iris数据集简介 iris数据集的中文名是安德森鸢
  • Unity制作一个简单的登入注册页面

    1 创建Canvas组件 首先我们创建一个Canvas画布 我们再在Canvas画布底下创建一个空物体 取名为Resgister 把空物体的锚点设置为全屏撑开 2 我们在Resgister空物体底下创建一个Image组件 改名为bg 我们也
  • 实例:

    语句 2 通常语句 2 用于评估初始变量的条件 语句 2 同样是可选的 如果语句 2 返回 true 则循环再次开始 如果返回 false 则循环将结束 提示 如果您省略了语句 2 那么必须在循环内提供 break 否则循环就无法停下来 这
  • 若依v3.2问题解决:菜单路由不匹配 / 跳转路由页面空白

    问题1 解决方法 问题2 解决方法 问题1 菜单路由不匹配 在菜单管理中匹配代码中的相应组件 可是在页面上总是报匹配错误 下面是报错情况和相关数据库 解决方法 因为店铺管理是一个目录 而店铺详情和店铺列表是菜单 路由规则中目录要有一个菜单匹
  • 台式机跳过连网

    第一次激活电脑 台式 本人是联想 没有内置无线网卡 就非让连接以太网 有线 又没有 查了好久 终于解决了 方法一 taskmgr 1 Shift F10 台式机 2 输入taskmgr 3 去任务管理器找到OOBENetworkConnec
  • Unity ToLua 之 Lua调用C#(二)

    Unity ToLua 之 Lua调用C 二 一 ToLua调用C 中的List和Dictionary 注意List和dictionary对应的泛型需要先填写到CustomSetting中 然后生成 XLua 中遍历Dictionary可以
  • 进IT名企大厂,95%应届生不知道的最短路径

    据央视新闻报道 2022年高校毕业生将达到1076万人 据称是史上最难就业季 毕业生就业压力暴增 加之随着今年疫情的不确定爆发 不少企业减少了校园招聘 留学生扎堆回国 可以说是将 就业难 进行到底了 但在此情况下 互联网大厂 IT名企却在逆
  • 【React + Ant Design】表单如何在前置项未填写时禁止后置项交互并提示

    在 react antd 中 对表单做在前置项未填写时禁用后置项交互并提示的效果 情景 最近有这么个需求 某个业务中 要填写一张表单 其中有这样两项 选择数据连接和选择数据表 数据表是数据连接下所拥有的表 通常 没选数据连接 数据表就拿不到
  • C++(day5)

    思维导图 小练习 实现一个图形类 Shape 包含受保护成员属性 周长 面积 公共成员函数 特殊成员函数书写 定义一个圆形类 Circle 继承自图形类 包含私有属性 半径 公共成员函数 特殊成员函数 以及获取周长 获取面积函数 定义一个矩
  • 无线水标数值如何上传服务器,一种精准上传数据的智能水表及用水量记录上传方法...

    1 一种精准上传数据的智能水表 包括计数上传模组电路板 1 齿轮组件 2 计数组件 3 叶轮组件 4 所述叶轮组件 4 位于水表内部的流道内 叶轮组件 4 向上连接驱动齿轮系组件 2 齿轮系组件 2 连接计数器组件 3 计数器组件 3 连接
  • kali控制安卓(拍照、通讯录、GPS等)

    只是感觉挺有趣的就学了一下并分享出来 仅供学习使用 1 生成apk 目标手机安装 msfvenom p android meterpreter reverse tcp LHOST 192 168 1 176 LPORT 8888 R gt
  • python 添加父目录到工作路径中,解决import无法找到路径的问题

    解决方法 在运行的程序中添加 import os import sys sys path append sys path append os pardir
  • C# abstract抽象类的定义,作用(使用场景)

    关于C 中抽象类的一些感想 写代码已经有很长一段时间 但感觉成长很少 基本是为了功能开发而开发 我相信80 的程序员都一样 基本都是拿网上的开源项目改改改后实现功能就行 很少会去深入 去思考为什么要这么来实现 所以有了今天的文章 我作为程序
  • Qt 迭代器(的两种风格,及方法简介)

    目录 Qt 迭代器 的两种风格 及方法简介 qt qlist简单迭代器的使用 Qt学习 qt中的迭代器举例 一 java风格迭代器 容器类 只读迭代器类 读写迭代器类 QList lt T gt QQueue lt T gt QListIt
  • OpenHarmony兼容性平台认证接入

    最近在做OpenHarmony兼容性平台认证接入 在此记录一下整个过程遇到的问题和解决办法 注册账号 进入OpenHarmony兼容是测评主页 https www openharmony cn certification document