本页面介绍了如何针对 Android 16 QPR2 或更高版本使用 Better Together CTS 验证程序 (CTS-V) 测试。
设置主机端多设备测试
本部分介绍了如何设置多设备测试。
- 验证您的桌面设备是否满足 CTS 的操作系统要求。
按照安装桌面软件中的第 2 步和第 5 步操作,以安装并验证 adb、AAPT2 和 Python 是否已正确安装在您的桌面上。
- 您的 Python 版本应为 3.11 或更高版本。如需确定 Python 版本,请运行
python3 --version。如果版本低于 3.11,请安装最新的官方 Python 版本。 如需了解详情,请参阅python.org的下载部分。 - 某些测试要求主机具有 Python
venv模块。在 Debian 和 Ubuntu 系统上,此模块可能未默认安装。如需确定您的 Python 版本是否包含venv模块,请运行python3 -m venv venv。如果此命令失败,系统会显示一条错误消息。 按照提示安装python3.x-venv软件包。
- 您的 Python 版本应为 3.11 或更高版本。如需确定 Python 版本,请运行
准备两部匹配的被测设备 (DUT),且每部都已设置 CTS-V。
前往相应测试类型的设置部分:
- 对于 NFC 测试,请参阅设置 NFC 测试。
- 如需进行 Wi-Fi AP 连接测试,请参阅设置 Wi-Fi AP 连接测试。
- 如需测试 CDM 模块,请先参阅设置标准的两设备测试,然后参阅设置 CDM 测试。
如果您的测试未在此列表中,请继续执行设置标准的两设备测试
设置 NFC 测试
NFC 测试使用一部 DUT 和一个 PN532 NFC 芯片。
如需设置 NFC 测试,请执行以下操作:
- 购买 PN532 NFC 芯片。我们建议使用 All-In-One PN532。
在 DUT 上,前往设置应用。
启用 NFC。
放置 NFC 芯片:
对于手机,请将 DUT 的 NFC 读取器放置在图 1 所示位置:

图 1. NFC 芯片位置。
对于其他设备类型,请将该芯片放置在设备的 NFC 天线旁边。
使用 USB 线将 PN532 NFC 芯片连接到测试工作站。
可选:设置 Wi-Fi AP 连接测试
Wi-Fi 接入点 (AP) 连接测试 (CtsWifiConnectionTests) 用于测试 DUT 与 AP 之间的连接。我们强烈建议您运行这些测试,但在 CTS-V Android 16 16 QPR2 中,这些测试不是必需的。
这些测试需要 DUT 和 OpenWrt Banana Pi R3 AP。
如需设置 Wi-Fi AP 连接测试,请执行以下操作:
购买此表中列出的 Banana Pi R3 AP 和配件:
项 数量 BPi-R3 板,类似于 Banana Pi BPI-R3 路由器板,采用 MediaTek MT7986 芯片设计,支持 Wi-Fi 6、2G DDR RAM、8G eMMC 闪存板载 1 BPi-R3 铝制表壳,类似于 BPI-R3 Iron 表壳 1 BPi-R3 铝制散热器(冷却风扇),类似于 BPI-R3 带风扇的铝制散热器 1 带线缆的 2 和 5 GHz 天线,类似于 BPI 商店中的 5DB 天线 8 电源适配器,类似于 12V/2A 直流电源 1 如需购买,请参阅 Banana Pi BPI-R3 页面的轻松购买部分。
设置接入点。如需了解如何设置接入点,请参阅设置 Banana Pi BPI-R3 AP。
可选:如果您没有屏蔽箱,我们建议使用 JTP-SR101 屏蔽箱。请使用以下信息购买此盒子:
东莞市正声电子科技有限公司有限公司
中国广东省东莞市寮步镇潘龙路博汇工业园
联系人:Forest Pan
电子邮件地址:forest.pan@jtpmak.cn
电话(中国):+86 18676993556将 DUT 和 AP 连接到主机,并放置在 RF 屏蔽箱中。DUT 和 AP 之间的距离应至少为 10 厘米。图 2 显示了此配置:

图 2. 屏蔽箱中的 DUT 和 AP。
使用 SSH 验证 AP 是否可从主机访问。
设置标准的两设备测试
对于默认的两设备设置:
- 将两台匹配的 Android DUT 放置在相距约 20 厘米的位置。
为确保环境干净,请将这两台设备放入屏蔽盒中。
可选:设置 OTA 嗅探器以进行 Wi-Fi 调试。
设置 CDM 测试
test_permissions_sync() 测试用例的行为因执行测试的设备的 build 类型而异。原始设备制造商 (OEM) 必须测试可调试(userdebug 或 eng)和不可调试 (user) build,并且测试必须通过。
豁免
权限同步 API 实现的 CDD 条款仅要求它能够通过安全渠道在设备之间成功传输数据。由于安全通道实现不是 CDD 合规性要求,因此可以在不可调试(用户) build 上跳过此测试,但前提是您选择不支持 CDM 权限同步功能。
测试必须在可调试 build 上通过,不得出现任何异常。
在不可调试的 build 上进行测试的前提条件
如果您不符合上述任何豁免条款,请验证您是否满足以下前提条件。
安全渠道使用 AVF (AttestationVerificationFramework) 来验证硬件的可信度。双方生成的证明包含有关自身的多条信息,以确保其系统未发生任何未经授权的更改。在验证过程中,AVF 会检查以下状态:
- 设备可以访问互联网
- 设备使用验证启动,并且 build 必须使用发布密钥(而非开发密钥)签名
- 设备已锁定引导加载程序。如需查看详细说明,请参阅锁定引导加载程序
- 操作系统、关键启动和关键供应商补丁程序级别在 12 个月内。请勿使用超过一年的 build
设备认证由经过供应商批准的根证书之一提供支持。在
vendor_required_attestation_certificates.xml资源叠加层中指定您的受信任的根证书。
运行主机端多设备测试(AOSP 16 或更高版本)
CTS 验证程序 16 引入了对主机端多设备测试的支持。这些测试可以在主机上使用自动化脚本执行,而不是在设备上手动执行测试操作。每项测试完成后,结果会自动上传到 DUT 并显示在 CTS 验证程序应用中。
本部分介绍如何运行主机端多设备测试。
运行多设备测试
如需运行多设备测试,请执行以下操作:
在测试工作站上,从解压缩 CTS-V ZIP 软件包的目录中启动
cts-v-host控制台:./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefed在 DUT 上的 CTS 验证程序应用中,点击主机端测试。 图 3 显示了 CTS 验证程序应用中的主机端测试:
图 3. CTS 验证程序应用中的主机端多设备测试。
系统会显示主机端多设备测试模块列表。
确定要运行的测试模块的名称。例如,CompanionDeviceManager 模块列为 CtsCompanionDeviceManagerMultiDeviceTestCases。
在 cts-v-host 控制台中,运行以下命令:
run cts-v-host -m test_module_name例如:
run cts-v-host -m CtsCompanionDeviceManagerMultiDeviceTestCasesxTS 控制台运行完测试后,结果会显示在 CTS 验证程序应用中。标记为绿色的测试已通过。标记为红色的测试已失败。图 4 显示了 CtsCompanionDeviceManager 测试的示例结果:
图 4. CTS 验证程序应用中的主机端多设备测试结果。
可选:运行 Wi-Fi AP 连接测试
请按照以下步骤运行 Wi-Fi AP 连接测试:
修改测试平台配置文件 (
WifiConnectionTestbed.yaml)。此文件位于解压缩 CTS-Verifier 的目录中:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml根据本地 SSH 设置,将
hostname字段的值更改为 AP 的 IP 地址。如需确定 IP 地址,请参阅查找 AP 的 IP 地址。以下示例展示了
WifiConnectionTestbed.yaml文件中hostname字段的位置:TestBeds: - Name: WifiConnectionTestbed Controllers: # Specify settings for the AP. OpenWrtDevice: - hostname: AP-IP skip_init_reboot: True在 cts-v-host 控制台中,运行以下命令:
run everything -m CtsWifiConnectionTests
排查多设备测试问题
本部分提供可能问题的排查帮助。
修复了 NFC 测试期间 GetFirmwareVersion 无响应的问题
如果您在运行多设备测试时收到消息 verify_firmware_version RuntimeError: No response
for GetFirmwareVersion,则表示测试无法访问 PN532 NFC 板。
如需解决此问题,请确定主机上 PN532 NFC 板使用的串行路径(例如 dev/ttyUSB1),然后使用控制台中的 --module-arg 参数手动指定该路径:
run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1
修复了 NFC 测试期间出现的“Transaction failed”错误消息
如果您的所有 NFC 测试用例都收到消息 Transaction failed, check device logs for more
information.,可能是因为 DUT 的 NFC 芯片无法检测到 PN532。
如果您有多部设备连接到主机,并且其中一些设备没有任何放置在顶部的 PN532,则可能选择了错误的 DUT。如需了解详情,请参阅设置 NFC 测试。
如要解决此问题,请执行以下任一操作:
使用
-s标志在主机端测试命令中设置正确的 DUT 序列号。断开所有非 DUT 设备与主机的连接。