Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android之GMS認證

android之GMS認證

編輯:關於Android編程

來到了新的公司,才知道做手機是需要做GMS認證的,於是從一個從沒有做過GMS認證的小白到一個月做了8個項目的GMS認證。最後,自己都是吐了,每天晚上都是一個人傻傻在加班,更是知道了高通的支持力度讓人發抖,無奈的發抖。
下面是我做的一點做GMS認證的筆記,大家可以參考。
其實,我做完GMS認證後,在想,如何讓一個人從對一個領域一無所知到能得心應手的處理。想了很久,我想說應該是積累經驗的積累,能力的積累,信心的積累。

GMS綜述

GMS認證,一般要求我們提供CTS, XTS, Verify三份測試報告,如下圖:
這裡寫圖片描述

Bin: 認證的軟件
CTS: CTS的測試報告
GTS: XTS的測試報告
ctsVerifierRepZ喎?/kf/ware/vc/" target="_blank" class="keylink">vcnRzOiBWZXJpZnmy4srUsai45jwvcD4NCkNUUzo8YnIgLz4NCkNUU6OoyKuzxiZsZHF1bztDb21wYXRpYmlsaXR5IFRlc3QgU3VpdGUmcmRxdW87o6y8tCZsZHF1bzu85sjd0NSy4srUsPwmcmRxdW87o6m1xMjP1qSjrNXiysfSu9fp08PS1LLiytS1xC5hcGuzzNDy1q7A4LXEvK+6z6Osy/zE3Lm71Nq52c34o6g8c3Ryb25nPmh0dHA6Ly9zb3VyY2UuYW5kcm9pZC5jb20vY29tcGF0aWJpbGl0eS9kb3dubG9hZHMuaHRtbDwvc3Ryb25nPqOpyc/D5sPit9HPwtTYoaNDVFO1xMS/tcS+zcrHyMNBbmRyb2lkyeixuKOoyOejusrWu/qjqb+qt6LJzMTcubu/qreis/a85sjd0NS4/LrDtcRBbmRyb2lkyeixuKGjIEdUUzo8YnIgLz4NCkdNU8irs8bOqkdvb2dsZSBNb2JpbGUgU2VydmljZaOsvLS5yLjo0sa2r7f+zvGho0dNU8rHR29vZ2xlv6q3orKizca2r0FuZHJvaWS1xLavwaajrNKyysdBbmRyb2lkz7XNs7XEwem76sv51NqhoyBWZXJpZnk6PGJyIC8+DQpDVFO2vMrH1rjB7tfUtq+y4srUo6y1q8rHu7nT0NK70Kmy4srUysex2NDryta2r83qs8m1xKOs1eK49srHdmVyaWZ5suLK1L7NysfK1ravsuLK1KGjDQo8aDEgaWQ9"1准備資料">1.准備資料: GMS認證的視頻文件—android-cts-media-1.0.zip
使用方法一:
新建test文件夾(內有bbb_full,bbb_short,copy_media.sh,make_zip.sh,README.txt ),手機需拷貝android-cts-media-1.0.zip解壓到test目錄中(在不支持存儲空間的情況下,使用T卡替代)
使用方法二:
進入android-cts-media-1.1目錄下,執行:
. /copy_media.sh all,或./copy_media.sh
就可以把視頻復制手機上了,非常的方便和快。 android-cts文件
解壓android-cts-4.4_r1-linux_x86-arm.zip CtsDeviceadmin.apk
此apk位於(android-cts epository estcases)目錄下 android-gts文件
解壓gts-2.1_r1.zip CtsVerifier.apk
( 解壓android-cts-verifier-4.4_r3-linux_x86-arm.zip)

這些資料可以從官網上下載:
http://source.android.com/compatibility/downloads.html(官網)
也可以是客戶提供。

2.手機端准備

Need insert empty SD card Insert valid SIM card 設置手機語言為英語:進入Settings–Language&input–Language設為English(UnitedStates) 輸入法默認使用android輸入法,Settings–Language&input–Default—English(US) 手機軟件需是User版本(請用adb remount命令查看),需寫IMEI(請按*#06#查看)、MAC碼(settings–about phon–statu–wlan mac address) 去掉鎖屏(Settings –Security –Screen lock–none ) 設置屏幕超時為最長時間30分鐘(Settings–Display–Sleep–30minutes) 進入Settings–Date & time–取消Automatic date&time勾選,取消Automatic time zone 勾選, Select time zone,選擇GMT-8:00 Pacific Time (注:當實行夏令時後,Pacific Tim會變成GMT-7:00) 打開developer options,Settings–About phone–快速點擊Build number 7次 Settings–developer options–stay awake and usb debugging allow mock locations 勾選 打開WIFI並連接AP(需要可翻牆的網絡,因為測試過程中需要連接google的服務器) 打開藍牙,Settings–Bluetooth 打開GPS,Settings—Location—開啟 打開數據連接,下拉狀態欄—選中Data on 安裝CtsDeviceadmin.apk
可以復制到sd卡上再安裝,也可以使用命令安裝:adb install ‘/home/android/CTS_hexiaoming/hexiaoming/CtsDeviceAdmin.apk’ 將test文件夾復制到sd卡上,也可以使用命令:
adb push ‘/home/android/CTS_hexiaoming/hexiaoming/test’ /sdcard/test
(或者進入到android-cts-media-1.1目錄下,執行:
. /copy_media.sh all,或./copy_media.sh) Settings—Security–Device administrators–勾選上 device administrators列表前三個選項,最後一個不勾選 運行時讓屏幕是home主界面上 運行過程中不要觸摸屏幕及按鈕

注意:
- While a device is running tests, it must not be used for any other tasks
- Before start CTS, device at the home screen
- Do not press any keys on the device while CTS is running
- Make sure the AP is usability and connectedly.
- Make sure USB cable is stability

3.PC端:(Ubuntu系統)

3.1 CTS測試

android-cts文件(解壓)
1. 用USB線連接Linux PC
2.打開終端,進入android-cts/tools目錄,輸入./cts-tradefed.終端顯示:
這裡寫圖片描述
(如果沒有這行,說明設備沒有和PC連通)
3.輸入run cts–plan CTS,開始測試CTS
4.測試完成後會自動生成xml報表,在anroid-cts/repository/results目錄中(testResult.xml).
5.LOG信息在目錄下:(android-cts epositorylogs)

一般情況,CTS測試一次不能全部通過,那麼如何只測試Fail項了?

手動修改testResult.xml,使用gedit打開該文件(gedit testResult.xml)。

選擇查找搜索failed項,替換為notExecuted,然後保存,如圖:
這裡寫圖片描述

重新輸入./cts-tradefedcts-tf-> run cts–continue-session session_id
PS: session_id可以通過在CTS命令行裡輸入l r查看到。比如輸入l r查看到的session_id為0那就應該在CTS的命令行輸入 run cts –continue-session 0這樣就會只會繼續測試那些之前fail的項而不會去測試那些已經pass的項

我們如何修改報告
對於有的測試項,我們沒有環境,過不了。但是我們可以確定此項可以pass,那麼我們可以直接修改報告:
我們在改報告的時候,參考要修改的測試項的前一個pass項和後一個pass項,對應修改就可以了,非常的簡單。修改後,我們再讓其重新跑一下,生成新的測試報告就可以。

如果,我們單獨跑包或類:
To run a test package:
‘run cts –package ’
run cts -p android.os
To run a test class:
‘run cts –class ’
run cts -c android.app.cts.SystemFeaturesTest -m testSensorFeatures
run cts -c android.os.cts.Asyn

查看更多cts命令信息:
‘run cts –help’
l p————查看有那些功能
l packages——查看有那些包

注意事項:
1.CTS 4.0的命令和CTS 2.3/2.3完全不同,所以在進入CTS後,先輸入help看看命令的格式和意思。
2.正常測試一次CTS4.0,需要6-9小時。所以,測試時請接上電源,並盡量在晚上測試,不會影響設備的使用
3.CTS是自動化測試,測試過程中不需要人的干預。如果在上班時間,每1-2小時觀察下即可
4.CTS4.0在測試過程中斷開、終止都不會生成測試報告,所以,測試前要保證USB連接穩定和平台設置
5.CTS執行run cts–plan CTS時,會搜索android-cts/repository/results中的歷史報表文件夾。如果文件有很多,啟動速度會非常慢。所以,請定期清理results文件夾中的歷史報表(直接刪除報表文件夾即可)

常見問題:

有時,復制會導致一些權限問題,這時,我們可以運行sudo chmod 0777 filename來提高權限。 CTS測試 快速入門—-MTK—非常重要
https://onlinesso.mediatek.com/_layouts/15/mol/topic/ext/Topic.aspx?id=53

3.2 XTS測試:

android-gts文件(解壓gts-2.1_r1.zip)
XTS測試和CTS是一樣的,只是要把命令稍微對應的改一下就可以了:
run xts–plan XTS
run xts–continue-session session_id
run xts -p android.os
run xts -c android.app.cts.SystemFeaturesTest -m testSensorFeatures

3.3 手動測試 CTS-verifier:

CtsVerifier.apk—-( 解壓android-cts-verifier-4.4_r3-linux_x86-arm.zip)
這個是手動測試,我們只需要安裝此apk,然後按照說明一步一步操作就可以了。最後,我們導出報告。
這裡寫圖片描述

注意的事情:

這個測試還是有測試順序的,一般Policy Serialization Test 這個測試項最後一個測試,因為此項會導致後面的Keyguard Password Verification項過不了。我們可以一開始就測試Keyguard Password Verification,最後一個測試Policy Serialization Test。 Camera的測試項,我們要一個一個測試,不能直接按pass直接過,就是因為測試的報告裡有這些測試項的詳細信息。 在測試Accelerometer Measurement Tests項前,我們在settings—Sound—Default notification sound選擇一個默認值,否則有可能因為此沒有設置,apk會crash,此項過不了。 Streaming Video Quality Verifier測試項中,RTSP的三項,有wifi的話可以過,但是HTTP PROGRESSIVE的三項是過不了的。也就是說Streaming Video Quality Verifier測試項是過不了的,這是正常的現象。

USB Accessory Test有時候執行命令,是沒有效果,這個有可能是電腦的原因,換台電腦多試幾次。
USB Accessory Test in CTS Verifier, Please follow up below steps to test this item:
1) Install CTSVerifier.apk to the phone device.
2) Add “18d1:2d01” device to /etc/udev/rules.d/51-android.rules, and restart
About add “18d1:2d01” device to /etc/udev/rules.d/51-android.rules,
Please hlep to refer SOP part of “Setup CTS Environment (3/4)”
Ubuntu 10.4
New a udev configuration file for the usb and change the mode
sudo touch /etc/udev/rules.d/51-android.rules
sudo chmod a+rw /etc/udev/rules.d/51-android.rules
Add the below string in 51-android-rules to setup the USB
SUBSYSTEM==”usb”, ATTRS{idVendor}==”0bb4”, ATTRS{idProduct}==“0c03”, MODE=”0666“
Restart the udev service to update the configuration
sudo restart udev
Restart the Ubuntu
After connecting the Android device to the PC, type lsusb and you should see the below string if the connection is success:
example:
Bus 002 Device 002: ID 0bb4:0c03 High Tech Computer Corp.
3) Connect the phone to a linux pc, with adb enabled
4) Run cts-usb-accessory on linux PC, wait until “Found android device in accessory mode (18d1:2d01)
5) Device will pop a prompt to cts-verifier, start the CTS Verifier and run USB Accessory test.
6) make sure no other devices connnect to the PC.

Bluetooth Test測試項,比較需要時間和耐心,要慢慢來操作。特別是BLE Client Test測試項更是如此。我們測試此項時,可以先記下mac地址(可以寫一些簡單的mac地址,如(11:11:11:11:11:11) mac地址要區分大小寫,這個也要注意),這是因為此項一般要測好多次才能pass,每次都要求從頭開始,每次都要輸入mac地址。根據測試經驗,一般4.BLE Reliable Write 這個才是此測試能否通過的關鍵,我一般是4.BLE Reliable Write在倒數第二步來測試,並且多輸入幾次信息(請不要每次只輸入一個字母),直到另一部手機的Waiting on reliable write from client測試項顯示綠色,才最後執行8.BLE Client Disconnect就可以通過此項測試。

data backup test測試項:
首先在cts verifier中隨便進行一項測試,打開設置中的備份和恢復,點擊 generate test data->ok
  adb shell bmgr enable true
  adb shell bmgr transport android/com.android.internal.backup.LocalTransport
  adb shell bmgr run
  adb uninstall com.android.cts.verifier
  adb install F:CTS4.0CTS4.0.3_r2apk4.0.3_r2CtsVerifier_4.0.3_r1.apk

測試完,我們使用adb push命令將測試報告導出就可以了。
adb pull /sdcard/ctsVerifierReports /home/android/tmp

3.4 測試結果的一些注意:

測試結果表頭的問題,在文檔中要求CTS和GTS中的設備信息的Build Fingerprint中的簽名文件類型是release-key,也就是說,我們測試的軟件版本的簽名要使用release-key,如下圖所示:
這裡寫圖片描述

在文檔中要求GTS項的測試結果中的Properties屬性應該包括ro.com.google.gmsversion、ro.com.google.clientidbase,並且有的客戶對ro.com.google.clientidbase的名字是有要求的。如下圖,就缺少ro.com.google.clientidbase的項。

這裡寫圖片描述

4 Fail項的處理

給高通提case,給MTK提eservice,因為這個一般自己能解的比較少,主要還是要靠高通和MTK來解。 慢慢積累自己的fail項庫 慢慢積累自己處理fail項的能力

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved