OpenHarmony XTS 认证开发指南
XTS认证版本二次开发注意事项
最大访问文件数
由于不同产品文件数访问存在差异,已和OpenHarmony实验室沟通允许修改XTS(X Test Suite,应用兼容性测试套)用例最大值。请按具体设备开机后实际剩余可用文件数量修改XTS可用最大文件数。
-
计算规则
XTS可用最大文件数=系统最大访问文件数-开机已打开文件数。
例如:系统最大访问文件数是100,开机业务已占用2,则XTS可用最大文件数是98。
-
查看系统最大访问文件数
-
Nand单板:yaffs最大访问文件数
源码:yaffscfg.h
宏定义:#define YAFFSFS_N_HANDLES 100
-
eMMC单板:fatfs最大访问文件数
宏定义:#define FF_FS_LOCK 100
-
-
调整XTS可用最大文件数,修改位置如下
修改宏定义:#define MAX_NUM_OF_OPENED_FILES 98
如果不确定业务开机后访问的文件总数,可以使用以下方式验证:
方式一:通过文件系统接口void lsfd(void)查询。
方式二:通过XTS用例实测,修改XTS可用最大文件数后,编译执行XTS用例。如果MAX_NUM_OF_OPENED_FILES配置偏大,则会在testMoveFileAfterMaxFilesOpened循环中失败,如图1所示。

最大线程数
如果开发时创建线程失败,可能原因是设置的最大线程数不够。
修改源码:3322_xts.config
修改最大线程数位置:LOSCFG_BASE_CORE_TSK_LIMIT=64
KV使用数量
海思公版XTS版本默认关闭与认证测试无关的KV读写,避免影响kv_store、file等文件系统用例执行。
-
当使用UtilsSetEnv()或UtilsSetValue()对KV进行操作时,应采用XTS_SUPPORT宏隔离,防止与XTS认证无关的KV操作占用最大文件访问数。
例如“/src/application/wearable/nativeapp/nativeui”路径示例代码如下:
-
当使用UtilsGetValue()获取value时,应采用XTS_SUPPORT宏隔离,并为业务变量初始化提供缺省值。防止XTS版本关闭业务UtilsGetValue()后变量赋值错误。
支持PNG图片解码
XTS版本为了支持acts_validator用例,需要支持PNG图片解码。海思公版默认使能PNG解码,客户二次开发时请勿裁剪XTS版本PNG能力。
修改源码:3322_graphic_lite_config.h
修改位置:

如果认证测试出现JPEG解码不兼容的问题,请尝试切换JPEG软解。
修改源码:graphic_hardware_config_wearable.h
修改位置:CAPABILITY_HW_JPEG_DECODE 0

BMS测试套应用预置
OHOS 5.0 XTS引入BundleMgrTest测试套,主要用于测试应用安装与卸载,需预置应用在板端“/user”下。
以下为预置应用的详情:
-
应用名称:testdemo1.bin
包名:com.example.testdemo1
预置到板端路径及名称:/user/testdemo1.bin
-
应用名称:testdemo2.bin
包名:com.example.testdemo2
预置到板端路径及名称:/user/testdemo2.bin
说明:
- 本章节提及到的应用皆为DevEco Studio 5.0 Release IDE编译出的应用,编译方式请参考《OpenHarmony JS应用开发用户指南》中的“IDE”章节。
- 板端上传应用请参考《DebugKits工具使用指南》中的“串口连接”章节和“数据上传与下载”章节。
XTS acts测试指导
本章节介绍XTS镜像编译、烧写和acts测试运行方法,ACTS(Application Compatibility Test Suite)即应用兼容性测试套。
编译
使用一站式 CLI 构建 XTS 完整固件包:
构建生成 diting-community-xts.fwpkg;DSP 和 BT 配套镜像由目标的打包配置统一处理,不需要改用底层 build.py 命令。
烧写
-
使用一站式 CLI 烧写
diting-community-xts.fwpkg。以下为 Windows USB DFU 示例;其他平台和串口烧写参数参见一站式 CLI 开发环境使用指南。 -
使用DebugKits工具将“dsp_main.bin”、“dsp_overlay.bin”、“bt_signed.bin”上传到板端对应路径。
dsp_main.bin镜像上传板端路径:/boot/dsp/dsp_main.bin
dsp_overlay.bin镜像上传板端路径:/boot/dsp/dsp_overlay.bin
bt_signed.bin镜像上传板端路径:/boot/bt/bt_signed.bin
须知:
- 如烧写了包含“file.bin”的“diting-community-xts.fwpkg”镜像则忽略2。 板端上传bt_signed.bin、dsp_overlay.bin、dsp_main.bin请参考《DebugKits工具使用指南》中的“串口连接”章节和“数据上传与下载”章节。
- BurnTool工具烧写请参考《BurnTool工具使用指南》中的“图形/命令行”章节。
运行
完成烧写后,可执行 fbb monitor --port COM3 --baud 750000 打开 UART2 日志串口(将 COM3 替换为实际端口)并重启单板。XTS用例自动运行标志:[HCtest Service] HCTest Framework inited.

当串口日志打印“All the test suites finished!”证明用例已跑完,如图2所示。

对应测试套结果如图3所示。

以UtilsFileReliTestSuite为例:UtilsFileReliTestSuite 8条用例 ,失败0条,忽略0条。
XTS acts validator测试指导
XTS 5.0引入JS应用测试套acts_validator认证,使用镜像为“diting-community-xts.fwpkg”。
获取validator测试套
-
获取与固件版本匹配的 validator 测试应用
XTS 源码、版本分支和使用说明以 OpenHarmony 官方 GitCode 仓库 openharmony/xts_acts 为准。下载或自行构建测试套件时,应选择与当前固件相同的 OpenHarmony Release 和轻量系统类型;不要混用不同版本的测试应用与设备镜像。

-
SDK中validator测试应用安装包备份
说明:海思版本发布后OH官网用例可能更新,正式认证测试应从官网下载最新用例。
SDK 包文件:validator-xts.bin
安装validator测试套
-
在OH认证镜像开机XTS用例结束后,上传validator用例安装包“entry-default-signed.bin”到单板user目录下。
例如:/user/js/XTS/entry-default-signed.bin
-
使用AT安装命令安装应用
例如:AT+OHOS=OHOSFWK_BM_INSTALL,/user/js/XTS/entry-default-signed.bin
须知:
- 安装应用前,请保证单板系统时间正确,避免验签失败。
- 上传“entry-default-signed.bin”到板端,请参考《DebugKits工具使用指南》中的“串口连接”章节和“数据上传与下载”章节。
使用validator测试套
安装完成后点亮表盘,点击validator应用图标进入应用按照应用指引完成测试。

-
点击组件测试按照测试指引完成测试。

-
点击API测试按照测试指引完成测试。

-
回到主页面点击生成报告。
- 退出应用完成测试。
- 报告生成路径:/user/app/user/ace/data/com.examplemini.actsvalidator/summary_report.json
须知:
- 开机等待XTS自动化用例测试完毕后,再测试validator手工用例,避免用例互相影响导致失败。
- validator所有测试项都需要选择“pass”或“fail”结果,即测试项全部执行,才会生成validator测试报告。
XTS认证版本二次开发注意事项
最大访问文件数
由于不同产品文件数访问存在差异,已和OpenHarmony实验室沟通允许修改XTS(X Test Suite,应用兼容性测试套)用例最大值。请按具体设备开机后实际剩余可用文件数量修改XTS可用最大文件数。
-
计算规则
XTS可用最大文件数=系统最大访问文件数-开机已打开文件数。
例如:系统最大访问文件数是100,开机业务已占用2,则XTS可用最大文件数是98。
-
查看系统最大访问文件数
-
Nand单板:yaffs最大访问文件数
源码:yaffscfg.h
宏定义:#define YAFFSFS_N_HANDLES 100
-
eMMC单板:fatfs最大访问文件数
宏定义:#define FF_FS_LOCK 100
-
-
调整XTS可用最大文件数,修改位置如下
修改宏定义:#define MAX_NUM_OF_OPENED_FILES 98
如果不确定业务开机后访问的文件总数,可以使用以下方式验证:
方式一:通过文件系统接口void lsfd(void)查询。
方式二:通过XTS用例实测,修改XTS可用最大文件数后,编译执行XTS用例。如果MAX_NUM_OF_OPENED_FILES配置偏大,则会在testMoveFileAfterMaxFilesOpened循环中失败,如图1所示。

最大线程数
如果开发时创建线程失败,可能原因是设置的最大线程数不够。
修改源码:3322_xts.config
修改最大线程数位置:LOSCFG_BASE_CORE_TSK_LIMIT=64
KV使用数量
海思公版XTS版本默认关闭与认证测试无关的KV读写,避免影响kv_store、file等文件系统用例执行。
-
当使用UtilsSetEnv()或UtilsSetValue()对KV进行操作时,应采用XTS_SUPPORT宏隔离,防止与XTS认证无关的KV操作占用最大文件访问数。
例如“/src/application/wearable/nativeapp/nativeui”路径示例代码如下:
-
当使用UtilsGetValue()获取value时,应采用XTS_SUPPORT宏隔离,并为业务变量初始化提供缺省值。防止XTS版本关闭业务UtilsGetValue()后变量赋值错误。
支持PNG图片解码
XTS版本为了支持acts_validator用例,需要支持PNG图片解码。海思公版默认使能PNG解码,客户二次开发时请勿裁剪XTS版本PNG能力。
修改源码:3322_graphic_lite_config.h
修改位置:

如果认证测试出现JPEG解码不兼容的问题,请尝试切换JPEG软解。
修改源码:graphic_hardware_config_wearable.h
修改位置:CAPABILITY_HW_JPEG_DECODE 0

BMS测试套应用预置
OHOS 5.0 XTS引入BundleMgrTest测试套,主要用于测试应用安装与卸载,需预置应用在板端“/user”下。
以下为预置应用的详情:
-
应用名称:testdemo1.bin
包名:com.example.testdemo1
预置到板端路径及名称:/user/testdemo1.bin
-
应用名称:testdemo2.bin
包名:com.example.testdemo2
预置到板端路径及名称:/user/testdemo2.bin
说明:
- 本章节提及到的应用皆为DevEco Studio 5.0 Release IDE编译出的应用,编译方式请参考《OpenHarmony JS应用开发用户指南》中的“IDE”章节。
- 板端上传应用请参考《DebugKits工具使用指南》中的“串口连接”章节和“数据上传与下载”章节。
重置HUKS工作密钥
OpenHarmony认证包含HUKS测试,工作密钥经加密后默认保存在“/user/app/user/maindata”中。烧写新XTS版本前确认删除旧密钥,避免新镜像HUKS使用错误的工作密钥导致XTS用例失败。操作步骤如下:
- 烧写XTS镜像前,检查文件系统中是否有“/user/app/user/maindata”目录。如果已经存在该目录,则手动删除或格式化擦除FS。
- 烧写OpenHarmony XTS镜像。
- 开机执行XTS用例,检查HUKS用例结果是否全部通过。