原標題:谷歌GMS認證-Android VTS測試
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 .
具體操作如下:
- 在設置中打開 OEM unlocking 選項
- 在設置中打開 USB debugging 選項
- 長按音量 + 和電源鍵進入fastboot模式
- 連接到電腦上,分別執行fastboot flashing unlock和fastboot oem unlock,
- 執行命令後需要選擇音量 + 來確認unlock。
- 執行 fastboot 命令刷入google提供的 system.img (GSI):
- fastboot flash system system.img(需要根據軟體版本的信息來選擇GSI版本)
- 6 .(Android P版本需要執行)fastboot flash vbmeta vbmeta.img
- 重啟: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:
- ABIA/BNon A/Bsecurity_patch_levelArm64aosp_arm64_abaosp_arm64_aUses the format:[year][month][date]Arm32aosp_arm_abaosp_arm_aUses the format:[year][month][date]x86_64aosp_x86_64_abaosp_x86_64_aUses the format:[year][month][date]x86_32aosp_x86_32_abaosp_x86_32_aUses 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來查看: