Android出海系列-VTS测试介绍
发布时间:2026/9/8 19:16:57 锦皓数字建站

一、什么是 VTS为什么它对出海至关重要从 Android 8.0 开始Google 引入Project Treble将系统框架层与厂商实现层Vendor解耦。Treble 之前每次系统升级都需要厂商同步修改底层实现Treble 之后Google 提供了稳定的 Vendor 接口厂商只需更新框架层即可大幅缩短升级周期。对应到认证体系中Google 通过两套测试套件保障兼容性测试套件测试对象主要覆盖CTSFramework 层应用兼容性、系统 APIVTSVendor 层Kernel、HAL、Lib 等底层接口从 Android 8.0 起所有新设备不仅需要通过 CTS还必须通过 VTS且VTS 测试必须在 CTS 之前完成。对于出海项目而言VTS 是 GMS 认证流程中不可跳过的关键环节。二、VTS 测试前的环境准备决定首轮通过率VTS 的通过率通常不是由“命令会不会跑”决定而是由“测试环境是否严谨”决定。建议按以下三层准备1) PC 端环境操作系统Ubuntu 14.04 及以上JDK1.8 及以上Android 11 建议 JDK 9PythonAndroid 10 及之前使用 Python 2.7Android 11 使用 Python 3工具链安装并配置adb、fastboot、aapt/aapt2环境变量将上述工具路径加入PATH本地化 vtspython 源避免从 PyPI 在线拉取依赖导致网络不稳定而测试失败Python 环境变量配置示例# 编辑 /etc/profile添加本地 vtspython 源路径exportVTS_PYPI_PATH/usr/local/bin/vtspythonsource/etc/profileecho$VTS_PYPI_PATH# 验证配置生效注意Android 14 及以上版本 VTS 测试需要配置 AAPT2 环境否则部分 APK 解析安装会失败。2) 设备端环境设备端配置是 VTS 通过率的“隐形门槛”需要按步骤逐一完成设备校准建议通过 GNSS OTA 校准硬件模组安装指纹模组、NFC 模组和 Camera 模组Unlock 操作下载 Userdebug 版本开启 OEM unlocking 和 USB debugging执行fastboot flashing unlock产线部署Android 12 必需写入 RPMB Key一台设备只需部署一次Device Attestation ID 部署Android 13 必需keybox 部署Android 15 及之前需要Android 16 首发设备改用 RKP刷 GSI 版本使用带 GSI 的 User 工程 pac 包CSR 提取上传Android 13 必需用于 RKP 远程密钥配置3) 网络与外场条件Wi-Fi 必须稳定且能正常访问 Google 服务器Android 9 需要稳定 GPS 信号室外空旷环境或室内使用 GPS 信号转发器双卡机型需插入双实网 SIM 卡并设置主卡支持 SecureElement HAL 的项目需准备 Android Test Card支持 SE 的白卡三、VTS 实测流程从启动到结果判定1) 基本执行流程# 1. 解压 VTS 测试包到本地# 2. 进入 tools 目录cdinstallation-path/android-vts/tools# 3. 启动 VTS 控制台./vts-tradefed# 4. 执行整包测试run vts常用命令速查命令含义 l r列出所有跑测结果 l d列出所有检测到的设备 run vts -m 模块名单跑某个模块 run vts -m 模块名 -t 测试项名单跑指定测试项 run vts -s device_id --logcat-on-failure失败时捕获 logcat run retry --retry session_id重跑失败项Android 10更多命令可通过控制台执行help all查看。2) 结果怎么看测试结束后控制台会显示执行完成提示同时在测试包路径下生成logs和results文件夹。打开results/日期/test_result.xml即可查看详细测试结果。判定要点控制台出现执行结束提示 → 当前轮次完成test_result.xml中fail项需逐一分析建议结合logcat-on-failure日志做首轮归因环境类 Fail 建议复测一次后再提交研发四、高频失败点与出海项目实战建议1) 先区分“环境失败”与“代码失败”很多首轮 Fail 来自环境波动Wi-Fi、GPS、SIM、部署前置步骤缺失并非代码缺陷。建议先复测一次再决定是否进入研发改码流程。2) 已知特殊情况速查特殊要求影响模块适用版本设备 UnlockAllAll产线部署PerInstance/GenerateKeyTests 等Android 12Device Attestation IDVtsHalRemotelyProvisionedComponentTargetTestAndroid 13keybox 部署VtsAidlKeyMintTargetTest 等Android 15 及之前指纹模组VtsHalBiometricsFingerprint 系列All双实网 SIM 卡VtsHalRadio、CtsVcnTestCasesAndroid 9稳定 Wi-FiVtsHalDrm 系列All稳定 GPSVtsHalGnssV1_1TargetAndroid 9Android Test CardVtsHalSecureElementV1_0TargetAndroid 93) Android 版本越新安全与认证前置条件越重Android 12产线部署对部分模块已是硬性前提Android 13VtsHalRemotelyProvisionedComponentTargetTest与 Device Attestation/CSR 强相关Android 15 及之前若未完成 keyboxKeyMint 相关用例容易集中失败Android 16 首发first_api_level 36不再部署 keybox仅支持 RKP 方案4) Ylog 策略要“按需开启”VTS 问题定位通常先看 VTS 自身日志仅在需要跨层排查时再补抓 AP/Modem/WCN/GNSS 日志避免无效日志导致分析成本上升。各 Android 版本的 Ylog 命令差异较大建议按目标平台查阅对应配置。5) Google 原生问题与豁免策略部分 Fail 属于 Google VTS 用例本身的 Bug需提交 Google Issue 跟踪。Google 对豁免用例的处理策略是必须在 dev 包Google 提供的修改版 VTS 测试包测试通过后才能申请豁免否则不予同意。五、推荐的团队落地打法可直接复用建立版本化测试基线按 Android 主版本维护独立 VTS 命令模板与环境清单固化预检脚本在正式跑测前自动检查 adb/fastboot/aapt2、网络连通、主卡状态、GPS 条件失败分层归类环境类、配置类、平台类、Google 原生问题分别入库追踪豁免流程前置对疑似 Google 原生问题尽早提交 issue保留复现证据和对比版本记录六、结语VTS 不是“跑一遍命令”这么简单而是一套覆盖环境、设备、安全认证与版本策略的系统工程。在 Android 出海项目中越早把 VTS 流程标准化、自动化越能降低认证周期与返工成本。如果你正在推进 Android 13/14/15/16 的海外认证建议优先把RKP/CSR、产线部署、网络/GPS 稳定性三件事做成可重复执行的检查清单这会直接提升首轮通过率。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。