文档分析与注释
1. 设备兼容性测试命令
# 运行GTS测试套件中的特定模块
run gts -m GtsEdiHostTestCases
# 运行CTS测试套件中的API签名测试
run cts -m CtsCurrentApiSignatureTestCases -t android.signature.cts.api.SignatureTest#testSignature
# 运行CTS安全测试套件
run cts -m CtsSecurityTestCases -s
# 运行GTS设备管理测试(SMR = System Management Release)
run gts-smr -s
# 运行STS增量安全测试
run sts-dynamic-incremental -s
- 用途:这些命令用于执行Android兼容性测试套件(CTS)、Google测试套件(GTS)和安全测试套件(STS),验证设备是否符合Android兼容性和安全标准。
2. 设备属性查询命令
# 获取设备指纹(标识系统版本和厂商信息)
adb shell getprop ro.build.fingerprint
# 获取Google移动服务版本
adb shell getprop ro.com.google.gmsversion
# 获取安全补丁版本
adb shell getprop ro.build.version.security_patch
# 查找所有clientidbase属性(用于应用身份验证)
adb shell "getprop | grep clientidbase"
# 获取设备首次支持的API级别
adb shell getprop ro.product.first_api_level
# 获取基础操作系统版本
adb shell getprop ro.build.version.base_os
- 用途:收集设备关键信息,用于验证系统合规性、安全更新状态和身份标识。
3. GSI版本标识
git_tm-gsi-release # Treble Mainline GSI版本
git_sc-v2-gsi-release # Security Controller v2 GSI版本
git_sc-gsi-release # Security Controller GSI版本
git_rvc-gsi-release # RISC-V兼容GSI版本
git_qt-gsi-release # Qualcomm特定GSI版本
- 用途:标识不同场景下的Generic System Image (GSI) 版本,用于测试通用系统镜像兼容性。
4. CTS Verifier数据操作
# 备份CTS Verifier应用数据
adb backup -f F.bak com.android.cts.verifier
# 恢复CTS Verifier应用数据
adb restore F.bak
- 用途:在CTS验证过程中保存/恢复测试进度和数据。
5. 系统工具安装
# 安装exFAT文件系统支持工具
sudo apt-get install exfat-fuse
- 用途:解决Linux系统无法识别exFAT格式硬盘的问题。
6. 测试配置参数
--abi armeabi-v7a # 指定ARM 32位架构测试
--abi arm64-v8a # 指定ARM 64位架构测试
# 失败重试策略(最多100次)
--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count 100
- 用途:控制测试的CPU架构和失败重试行为。
7. CTS Verifier安装配置
# 允许访问隐藏API
adb shell settings put global hidden_api_policy 1
# 绕过低版本SDK安装限制
adb install --bypass-low-target-sdk-block
# 授权读取设备标识符
adb shell appops set com.android.cts.verifier android:read_device_identifiers allow
# 授予外部存储权限
adb shell appops set com.android.cts.verifier MANAGE_EXTERNAL_STORAGE 0
# 启用测试API访问
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier
- 用途:解决CTS Verifier安装和权限问题,确保测试工具正常运行。
8. 摄像头测试
# 使用Python脚本进行摄像头测试
python run_webcam_test.py -c config.yml
- 用途:自动化摄像头硬件功能验证。
9. 设备管理命令
# 设置设备管理员
adb shell dpm set-device-owner --user 0 com.android.cts.emptydeviceowner/.EmptyDeviceAdmin
# 关闭屏幕自适应亮度
adb shell settings put system screen_brightness_mode 0
# 设置传感器UID状态
adb shell cmd sensorservice set-uid-state com.android.cts.verifier idle
- 用途:配置设备策略、电源管理和传感器测试环境。
10. GTS交互测试流程
run gts-interactive
# 操作步骤:
# 1. 开启无线调试 → 2. 记录IP和端口 → 3. adb connect IP:端口 → 4. adb devices确认
# 5. 测试时用IP替换SN号
- 用途:通过ADB无线调试进行交互式GTS测试。
11. STS测试策略
# 完整/增量安全测试
run sts-dynamic-full
run sts-dynamic-full-user
run sts-dynamic-incremental
run sts-dynamic-incremental-user
# 跳过预检条件
--skip-preconditions
- 用途:执行不同模式的安全测试,
--skip-preconditions
忽略环境检查。
12. 测试过滤控制
# 包含特定测试模块
run gts --include-filter GtsScreenshotHostTestCases --include-filter GtsHomeHostTestCases -s
# 排除特定模块
--exclude-filter
# 重试未执行的测试
--retry-type NOT_EXECUTED
- 用途:精确控制测试范围,排除耗时或不相关模块。
13. 验证启动(VBA)
# 检查Verified Boot元数据摘要
ro.boot.vbmeta.digest
- 用途:验证系统启动完整性。
14. 问题诊断工具
# 生成设备错误报告
adb -s 269862533050012811 bugreport
# 测试失败时自动抓取bugreport
--bugreport-on-failure
- 用途:收集设备日志用于分析测试失败原因。
15. 高级测试计划管理
# 创建自定义测试计划
add subplan --session 19 --name xx --result-type failed
# 在GSI上运行指定模块
run cts-on-gsi --subplan CtsMediaTestCases
- 用途:定制化测试策略,针对失败用例或特定模块。
16. 大型测试优化策略
# 首次测试跳过耗时模块
run cts --shard-count 5 ... --exclude-filter CtsDeqpTestCases --exclude-filter CtsDevicePolicyTestCases...
# 后续专项补测媒体模块
run cts --shard-count 2 ... --include-filter CtsMediaAudioTestCases...
# 专项补测设备策略模块
run cts --shard-count 2 ... -m CtsDevicePolicyTestCases
- 用途:分阶段执行大规模测试,先排除耗时模块提高效率,后续针对性补测。
17. APTS性能测试
# 查看设备指纹
adb -s 9c001611610288d1f85 shell getprop | grep fingerprint
# 执行APTS认证测试
run test/approval-go -s 8c000c4d64450921fda --fingerprint-swap Okin/Tablet_FP/FP290101:13/...
# 冷启动性能测试
run test/approval-go -s 7c00145c06c10991f10 --test-case app-start-cold-3p
- 用途:进行设备性能认证测试,
--fingerprint-swap
覆盖设备指纹,--test-case
指定性能场景。
文档核心用途总结
此文档是Android设备兼容性测试工程师的速查手册,涵盖:
- 标准测试命令(CTS/GTS/STS)
- 设备配置与调试技巧
- 测试策略优化方法
- 常见问题解决方案
- 自动化测试脚本
- 性能与认证测试流程
适用于设备厂商、ROM开发者或测试团队,用于确保设备通过Google兼容性认证(如GMS认证)。