2. 测试环境搭建:Android CTS环境要求、高通平台专用配置、adb与fastboot工具链准备

搭建一个符合高通Camera项目兼容性验证要求的CTS测试环境,是后续故障排查的基础。本章从硬件资源、软件版本、高通专用配置以及工具链四个维度,梳理环境搭建的关键步骤与避坑要点。

2.1 Android CTS环境硬件与软件基线

CTS(Compatibility Test Suite)对测试主机与设备有明确的基线要求,偏离基线可能导致测试结果不可复现或误判。

资源类型 最低要求 推荐配置(高通Camera项目)
主机操作系统 Ubuntu 18.04 LTS 64-bit Ubuntu 22.04 LTS 或 20.04 LTS
主机内存 16 GB RAM 32 GB RAM(并行跑多个子模块)
主机磁盘 100 GB 空闲空间 500 GB SSD(存放多个版本的CTS与日志)
JDK版本 OpenJDK 11 OpenJDK 11(CTS 12+ 需 JDK 17)
Python版本 Python 3.6+ Python 3.8 ~ 3.10
设备Android版本 Android 10+ 与CTS版本匹配的Android 12/13/14
设备USB接口 USB 2.0 USB 3.0 Type-A 或 Type-C(直连,避免HUB)
经验提示: 高通Camera项目通常需要同时运行 cts-tradefed 与 camera ITS 测试,建议主机内存不低于32 GB,否则在跑 --shard 并行分片时容易触发OOM。

2.2 高通平台专用配置

高通平台的CTS测试除了标准CTS流程外,还需要额外配置HAL层接口、权限白名单以及特定的系统属性。以下配置项直接影响Camera相关测试用例的通过率。

2.2.1 系统属性配置

在设备端通过 adb shell setprop 或写入 build.prop 的方式,确保以下属性生效:

# 启用Camera HAL3接口(必须)
persist.vendor.camera.HAL3.enabled=1

# 关闭Camera服务降级(避免CTS误判)
persist.vendor.camera.disable_zsl_mode=0

# 设置CTS测试专用权限白名单
persist.vendor.camera.cts_whitelist=1

# 高通平台专用:强制使用原生HAL实现
persist.vendor.camera.force_native_hal=1
常见陷阱: 部分高通平台在user版本中会默认关闭 persist.vendor.camera.HAL3.enabled,导致Camera CTS用例全部以 NotSupported 或 Fail 结束。务必在刷机后通过 adb shell getprop 确认该属性值为 1。

2.2.2 SELinux策略与权限

CTS测试中Camera相关用例需要访问 /dev/video*、/data/misc/camera 以及 /vendor/lib/hw/camera.*.so。高通平台建议在 sepolicy 中预置以下规则:

# 允许CTS测试进程访问Camera设备节点
allow cts_test camera_device:chr_file rw_file_perms;
allow cts_test camera_prop:property_service set;

# 允许读取Camera HAL库
allow cts_test hal_camera:file read;

# 高通专用:允许访问ISP统计节点
allow cts_test msm_isp:file rw_file_perms;

2.3 adb与fastboot工具链准备

adb和fastboot是CTS测试中最频繁使用的工具,版本不匹配或路径混乱会导致设备识别失败、刷机中断、日志抓取不全等问题。

2.3.1 工具版本要求

工具 最低版本 推荐版本 获取方式
adb 1.0.41 1.0.43+(Android SDK Platform-Tools 34+) SDK Manager / 手动下载
fastboot 1.0.0 1.0.0-34+ SDK Manager / 手动下载
aapt2 8.0+ 8.3+ SDK Build-Tools

2.3.2 环境变量配置

将adb和fastboot所在目录添加到 PATH,并确保优先级高于系统自带的旧版本:

# 编辑 ~/.bashrc 或 ~/.zshrc
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/tools/bin:$PATH

# 立即生效
source ~/.bashrc

# 验证版本
adb --version
fastboot --version

2.3.3 设备连接与授权

高通Camera项目在CTS测试前,必须确保设备已正确授权并处于可识别状态:

  1. 使用USB直连主机,避免通过HUB或延长线。
  2. 在设备上开启 开发者选项 和 USB调试。
  3. 执行 adb devices,确认设备状态为 device 而非 unauthorized。
  4. 若设备为user版本,需先执行 adb root 确认是否支持root权限;若不支持,需刷入userdebug或eng版本。
  5. 执行 adb shell getprop ro.build.type 确认构建类型为 userdebug 或 eng。
高通平台特殊检查: 执行 adb shell ls -l /dev/video*,确认Camera设备节点存在且权限为 crw-rw----。若节点缺失或权限错误,Camera HAL无法初始化,CTS测试将直接失败。

2.4 环境验证流程图

以下SVG图展示了从主机准备到设备验证的完整流程,帮助快速定位环境搭建中的断点。

CTS测试环境搭建验证流程 1. 主机准备 2. 工具链安装 3. 高通专用配置 4. 设备连接与授权 5. 环境验证 关键检查点 • Ubuntu 22.04 / 20.04 • JDK 11 / 17 • Python 3.8+ • adb 1.0.43+ • fastboot 34+ • HAL3 enabled=1 • SELinux规则已添加 • USB直连无HUB • adb devices = device • /dev/video* 权限正确 • getprop 属性验证 • 构建类型 userdebug

2.5 常见环境问题速查表

现象 可能原因 解决措施
adb devices 显示 unauthorized 设备未授权USB调试 重新插拔USB,在设备上确认RSA指纹
adb root 返回 adbd cannot run as root in production builds 设备为user版本 刷入userdebug或eng版本镜像
Camera CTS全部返回 NotSupported persist.vendor.camera.HAL3.enabled 未设置 通过 adb shell setprop 设置并重启
CTS运行中设备频繁断开 USB线缆质量差或供电不足 更换原装USB线缆,使用主机背板接口
fastboot devices 无输出 fastboot驱动未安装或版本过旧 更新platform-tools,检查USB驱动
最佳实践: 建议在开始CTS测试前,编写一个简单的环境自检脚本,依次检查JDK版本、adb版本、设备连接状态、关键系统属性以及Camera节点权限。将检查结果输出到日志文件,便于后续故障排查时回溯环境状态。