Android出海系列-STS测试介绍
2026-07-12 / 龙之叶   

1. 什么是 STS?

STS(Security Test Suite,安全测试工具)用于测试设备安全漏洞,以及是否满足 Google GMS 认证所要求的安全补丁合入情况。从 Android 7.0 开始,不同 Android 版本的 GMS 认证都需要进行 STS 测试。

STS 测试流程


2. DUT(待测设备)准备

在开始 STS 之前,需要先让 DUT 处于可稳定、可测试的状态。

  1. 刷入待测版本,或将 DUT 恢复出厂设置
    • 恢复出厂设置路径:Settings > Backup & reset > Factory data reset
  2. Android 15 特殊处理:刷入待测版本前,需要先进入 bootloader 模式解锁 DUT。
  3. 设置系统语言为英语(United States)
    • 路径:Settings > Language & input > Language
  4. 连接支持无线翻墙的网络
    • 连接 Wi-Fi:Settings > Wi-Fi
  5. 取消屏幕锁 / 密码锁
    • 路径:Settings > Security > Screen lock > None

3. PC 端测试环境配置

STS 需要在 64 位 Linux 或 Mac OS 环境中运行;最新 Android 系统建议在 Ubuntu 14.04 及以上版本完成测试。

3.1 ADB 与 AAPT

STS 测试前,确保 PC 已安装并配置最新的:

  • Android Debug Bridge(ADB)
  • Android Asset Packaging Tool(AAPT)

做法概览:

  • 下载 Android SDK Tools 并解压
  • 运行 tools 目录下的 android
  • 在 Android SDK Manager 中更新:
    • Android SDK Tools
    • Android SDK Platform-tools
    • Android SDK Build-tools
  • 更新完成后,将相关路径(如 tools / platform-tools / build-tools)加入环境变量,并重新执行 source 命令

3.2 AAPT2(Android 14 及以上必需)

Android 14 及以上进行 STS 时,需要配置 AAPT2,否则可能出现部分 APK 解析/安装失败。

3.3 JDK 版本要求

  • Android 11 及以上:安装 OpenJDK 11

3.4 Device detection(udev 规则)

需要创建 Ubuntu 的 udev 规则用于识别设备(示例参数中的 idVendor=1782)。

1
2
3
4
sudo gedit /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="1782", MODE="0666", GROUP="plugdev"
sudo chmod 777 /etc/udev/rules.d/51-android.rules
sudo service udev restart

4. 测试包获取与解密

  • STS 有单独的测试包,并且会逐月更新;测试包会区分 Arm 与 Arm64
    • Android 15 的 STS 测试包只有 Arm64
  • 测试包解密密码为:sts
  • 下载后在 PC 端对测试包进行解压,进入 android-sts 目录开始执行测试

5. 测试执行方法

使用 Dynamic STS

Dynamic STS 选择逻辑

核心规则:

  • IR / LR:需要完整测试
  • MR / SMR:只需进行部分测试即可满足认证要求

步骤:

  1. 进入 android-sts/tools 目录
  2. 输入启动命令:
    1
    /sts-tradefed
  3. 执行测试指令:
    • IR 或 LR(完整测试):
      1
      2
      run sts-dynamic-full
      run sts-dynamic-full -m <Module Name> -t <Test Case Name>
    • MR 或 SMR(部分/增量测试):
      1
      2
      run sts-dynamic-incremental
      run sts-dynamic-incremental -m <Module Name> -t <Test Case Name>
    • 查看更多命令:help all

小提示:如果启动命令执行失败,可以检查工具实际路径与目录结构(不同解压包的相对路径可能略有差异)。


6. 测试结果和 log 如何查看

执行完成后,重点关注 results / logs 目录与 test_result.xml

  • android-sts/results:生成以时间为命名的测试结果目录
  • android-sts/logs:生成以时间为命名的测试日志目录
  • test_result.xml:可在浏览器中打开,包含所有详细测试信息
  • log 中主要包含两类内容:
    • host log:Terminal 打印的过程信息
    • device log:System log 和 Main log

7. 小结

STS 测试的关键在于两件事:
一是 DUT 与系统环境准备到位(语言、锁屏、网络、Android 15 解锁);二是 PC 端工具链配置正确(ADB/AAPT/AAPT2、JDK 版本、udev 识别规则)。准备充分后,再按 Android 版本选择 sts-tradefed 或 Dynamic STS,即可进入稳定的测试与复盘流程。

本文链接:
http://longzhiye.top/2026/07/12/2026-07-12/