GMS认证-Android VTS测试

  Darkt  关注 2018.01.22 21:17*  字数 1021  阅读 649 评论 6

1、VTS简介

VTS的全称是 Vendor Test Suite(供应商测试套件)。

为何引入VTS测试?

目前Android的系统升级是很麻烦的,为了能更快的将设备升级到新的Android版本,Android O 开始新引入了 Project Treble,Project Treble 适用于搭载 Android O 及后续版本的所有新设备。

Android 7.x 及更早版本中没有正式的Vendor层接口,因此每次更新系统都相对耗时和困难:

treble_blog_before.png

Android O 之后,Treble 提供了稳定的Vendor层接口,供设备制造商访问 Android 代码中特定于硬件的部分,这样就可以只更新框架层,减少升级系统带来的成本和困难:

treble_blog_after.png

为了确保Vendor层实现的前向兼容性,新的Vendor层接口会由供应商测试套件 (VTS) 进行验证,该套件类似于兼容性测试套件 (CTS)。

2、VTS测试流程

1)替换谷歌system.img

VTS测试要求刷入谷歌提供AOSP的system.img (GSI)。在user版本中,如果直接使用flash tool单独烧录GSI时,会导致无法开机。

之所以会出现这种问题,是由于在user/userdebug版本中,dm-verity是使能的,替换GSI后导致dm-verity不能通过。 如果要解决这个问题,就需要进行unlock操作,并且要用fastboot来刷入刷入谷歌提供的system.img .

具体操作如下:
    1. 在设置中打开 OEM unlocking 选项
    1. 在设置中打开 USB debugging 选项
    1. 长按音量 + 和电源键进入fastboot模式
    1. 连接到电脑上,分别执行fastboot flashing unlockfastboot oem unlock
      执行命令后需要选择音量 + 来确认unlock。
    1. 执行 fastboot 命令刷入google提供的 system.img (GSI):
      fastboot flash system system.img(需要根据软件版本的信息来选择GSI版本)
    1. 重启: fastboot reboot

2)VTS测试

Running VTS
主机端设置
  • 首先设置基本测试环境 GMS测试环境.

  • VTS测试环境配置:
    安装 Python 开发工具包:sudo apt-get install python-dev
    安装协议缓冲区工具(适用于 Python):sudo apt-get install python-protobuf protobuf-compiler
    安装 Python 虚拟环境相关工具:sudo apt-get install python-virtualenv python-pip

  • 下载并解压VTS测试工具

手机端设置
  • 擦除设备上的用户数据(即运行fastboot -w)。

  • 刷入谷歌提供的system.img (GSI),使用与设备的ABI相对应的GSI,是否支持A / B更新以及设备的security_patch_level:

    ABI A/B Non A/B security_patch_level
    Arm64 aosp_arm64_ab aosp_arm64_a Uses the format: [year][month][date]
    Arm32 aosp_arm_ab aosp_arm_a Uses the format: [year][month][date]
    x86_64 aosp_x86_64_ab aosp_x86_64_a Uses the format: [year][month][date]
    x86_32 aosp_x86_32_ab aosp_x86_32_a Uses the format: [year][month][date]
  • Android 8.x的设备不需要安装SIM卡,但是Android P及更高版本的设备将需要SIM卡进行VTS测试。

  • 确保手机可以连接到IPV6的wifi网络,如果设备具有GPS / Wi-Fi / Cellular功能,则必须重置设备并打开位置设置。

  • 通过usb将手机连接到电脑上,通过 adb shell 来保证可以正确的连接。

运行VTS测试
  • 打开终端命令行

  • 切换到android-vts路径下

    $ cd *installation-path*/android-vts/tools

  • 通过下面的命令来进入到vts的控制台

    $ .vts-tradefed

  • 运行vts的测试命令

    > run vts

VTS常用命令
  • 列出所有跑测结果

    > l r

  • 列出所有检测到或已知的设备

    > l d

  • 单跑某一个模块

    > run vts -m <模块名>

  • 单跑某个测试项

    > run vts -m <模块名> -t <测试项名>

  • 可用选项

    > run vts -s --logcat-on-failure --screenshot-on-failure --shard-count

    '-s ':可指定运行测试的设备
    '--logcat-on-failure':当测试失败时捕获logcat
    '--screenshot-on-failure':当测试失败时截取屏幕截图
    '--shard-count ':用多个设备上同时跑测,可节省时间

  • 更多的命令可通过 help all 来查看:

更多相关文章

  1. 【阿里聚安全·安全周刊】500万台Android设备受感染|YouTube封杀
  2. (转载)Instrumentation 框架简介
  3. simple guide for porting android kernel
  4. 基于Platinum库的DMS实现(android)
  5. Android(安卓)CTS测试
  6. Android点滴(1):获取Android系统的唯一识别码
  7. android 导入工程报错:Unable to resolve target 'android-9'
  8. Android下junit单元测试、logCat的使用
  9. Android(安卓)Studio 单元测试(instrumentation)

随机推荐

  1. android&nbsp;取得屏幕宽度
  2. android 输入法界面显示的开关
  3. Pro Android学习笔记(七二):HTTP服务(6):HttpUR
  4. 封装底部dialog弹窗 adapter T类型的适配
  5. Android棉花糖“不能播放这个视频”错误
  6. android vold.fstab的生成过程
  7. Android开源 - Luban(鲁班)可能是最接近
  8. 如何通过HttpURLConnection得到http 302
  9. 想在android中使用node.js和socket.io发
  10. 在Android主屏幕上删除启动器图标(就像Goo