什么是GMS认证?
GMS全称为Google Mobile Service,即谷歌移动服务,是当前应用最广泛的移动电话标准。不仅是goole安卓系统的核心,也是Google开发并推动Android的动力。目前提供有Search、Search by Voice、Gmail、Contact Sync、Calendar Sync、Talk、Maps、Street View、YouTube、Android Market等服务。简而言之,GME认证其实就是Google的专利认证,只有通过了GMS认证的产品才有权利正常使用Android系统和Google的APP。下面中联检简单说一下GMS测试环境配置及搭建方法!
1.安装操作系统
安装ubuntu14.04
2.安装JDK和Android SDK
2.1 安装到指定目录
2.2 配置环境变量
在.bashrc文件中增加以下内容:
vim ~/.bashrc
JAVA_HOME=/home/zhangc/tools/jdk1.8.0_151
JRE_HOME=${JAVA_HOME}/jre
ANDROID_HOME=/home/zhangc/tools/android-sdk
CLASSPATH=.:{JAVA_HOME}/lib:${JRE_HOME}/lib:$ANDROID_HOME/tools
PATH=${JAVA_HOME}/bin:${JAVA_HOME}/lib:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/build-tools/26.0.1:$PATH
3.配置adb权限
3.1 lsusb命令查看设备的ID
3.2 在.android/adb_usb.ini文件(没有就新建)添加1行
vim ~/.android/adb_usb.ini
0x2fb8
3.3 在/etc/udev/rules.d/51-android.rules文件(没有就新建)添加1行
vim /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="2fb8", ATTRS{idProduct}=="2116", MODE="0666", OWNER="zhangc"
4.配置GTS key
GTS测试需要配置APE_API_KEY,如果不配置,打开GTS控制台时提示“APE_API_KEY not set, GTS tests may fail without authentication.”
APE_API_KEY需要找3PL提供。
拿到APE_API_KEY文件后,将该文件放在指定目录,然后在.bashrc文件中添加环境变量指向这个文件。
vim ~/.bashrc
export APE_API_KEY=/home/zhangc/tools/gts-key/gts-public.json
export PATH=$APE_API_KEY:$PATH
5.配置VTS环境
5.1 安装Python开发包
写一个脚本python.sh一次性安装
$ source build/envsetup.sh
$ lunch aosp_arm64-eng(lunch 产品没有特别指定)
$ ./test/vts/script/download-pypi-packages.sh
5.2.2 将vtspython.zip包复制到/usr/local/bin目录,并解压
sudo cp vtspython.zip /usr/local/bin/
sudo unzip /usr/local/bin/vtspython.zip
5.2.3 修改权限
sudo chmod -R 777 /usr/local/bin/vtspython
在.bashrc文件末尾添加
vim ~/.bashrc
export VTS_PYPI_PATH=/usr/local/bin/vtspython
export PATH=$VTS_PYPI_PATH:$PATH
5.2.5 重启电脑
6. 更新platform-tools
6.1 将android-sdk中的platform-tools更新到r29
sudo cp platform-tools_r29.0.2-linux.zip ~/tools/android-sdk/
cd ~/tools/android-sdk/
sudo rm -rf platform-tools
sudo unzip platform-tools_r29.0.2-linux.zip
6.2 确认adb版本:
Android Debug Bridge version 1.0.41
6.3 aapt
copy aapt( sdk) 至/usr/bin 并修改其权限为 777
执行如下命令:
$sudo cp aapt /usr/bin
$sudo chmod 777/usr/bin/aapt
1. 准备一台测试机器A,一张可以打电话发短信的sim卡,一张16g的高速tf卡(推荐闪迪class10等级,读写速度95M/s),还需要能够连接youtube网站的网络(推荐使用2M的香港专线)
2. 首先把A恢复出厂设置,然后连接电脑在terminal下进入到media文件夹输入一下命令拷贝文件到A的内存中:
./copy_media.sh
3. 然后安装CtsDelegatingAccessibilityService.apk和CtsDeviceAdmin.apk,
4. 接下来在A中设置如下选项
a) Wi-Fi打开并连接网络
b) Bluetooth打开
c) Display的Sleep选择15minutes
d) Location打开并且Mode选择Highaccuracy
e) Security的Screen lock选择None,Deviceadministrator下把安装的CtsDelegatingAccessibilityService.apk和CtsDeviceAdmin.apk勾选上,取消Unknownsource和Verify apps项
f) Language&input下Language选择English(UnitedStates),取消Google voice typing的勾选
g) Add account下登陆Google账户
h) Date&time下取消Automatictime zone的勾选,在Select time zone下选择Azores(GMT+0:00),勾选User 24-hour format
i) Developer options打开,勾选Stayawake,USB debugging,Allow mock locations
5. 以上设置完成后在terminal输入以下命令开始测试CTS:
Run cts –plan CTS –s 机器id号
如何附CTS测试命令?
run cts --plan + <plan name> 运行某个plan,查看当前支持的plan,运行l p,实际上所有的plan存放在android-cts/repository/plans;
run cts --package/-p 运行某一个测试包;
run cts --class/-c [--method/-m] 运行某一个测试类或测试方法;
run cts --continue-session session_ID 继续运行之前没有完成的CTS测试,要知道它的session_ID;
run cts [options] --serial/s device_ID 在某个串号的设备上进行CTS测试,对应多个机器的时候,通过adb devices能够查看当前连接的所有设备的串号;
run cts [options] --shards number_of_shards在多个设备上同时运行CTS测试,如run cts --plan CTS --shards 2,在两个设备上同时运行;
run cts --help/--help-all 展示更多帮助
查看列表:
查看行为是l/list,接不同的参数显示对应信息。
d/devices 当前连接的设备,效果同adbdevices,不过信息更详细,还有设备电量信息;
packages 当前CTS plan的所有测试包;
p/plan 当前所支持的CTS plan有哪些;
i/invocations 当前CTS的运行状态;
c/commands 展示出用户输入过的命令;
r/results 展示以往的测试结果
Audio Frequency Microphone Test
Audio Frequency Speaker Test
Audio Frequency Unprocessed Test
MTP Host Test 四项OTG支持的需要测试
-m CtsMediaTestCases -t android.media.cts.VisualizerTest http://192.168.80.2:8080/#/c/128187/ 修改开关
-m CtsDevicePolicyManagerTestCases -t com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testAlwaysOnVpn 三方应用报错也会导致此条case不过
-m GtsNetTestCases -t com.google.android.net.gts.policy.DataSaverTest#testRequiredWhitelist 需要插入SIM测试
-m CtsHardwareTestCases -t android.hardware.cts.SensorTest#testSensorOperations Attempt to invoke virtual method 'int android.hardware.Sensor.getType()' on a null object reference
[SOLUTION]
若不支持compass,请移除如下档案中的compass语句:
/frameworks/native/data/etc/android.hardware.sensor.compass.xml
/frameworks/native/data/etc/handheld_core_hardware.xml
CtsGraphicsTestCases
CtsThemeHostTestCases
CtsWidgetTestCases DPI修改测试
以8.0版本测试举例:
1. 打开开发者选项中的 OEM unlocking
2. 打开开发者选项中的 USB debugging
3. 按音量上键+power键进入fastboot模式
4. 连接电脑, 输入“fastboot flashing unlock” 选择是
5. 输入“fastboot oem unlock” 选择是
6. 输入“fastboot flash system system.img”
7. fastboot reboot
这样烧录步骤就完成了,接下来在测试机执行run vts 即可!
使用VTS测试包进行CTS测试,同样需要烧录AOSP的镜像文件,命令为run cts-on-gsi