android之GMS认证

GMS综述

GMS认证,一般要求我们提供CTS, XTS, Verify三份测试报告,如下图:

Bin: 认证的软件

CTS: CTS的测试报告

GTS: XTS的测试报告

ctsVerifierReports: Verify测试报告

  • CTS:

    CTS(全称“Compatibility Test Suite”,即“兼容性测试包”)的认证,这是一组用以测试的.apk程序之类的集合,它能够在官网(http://source.android.com/compatibility/downloads.html)上面免费下载。CTS的目的就是让Android设备(如:手机)开发商能够开发出兼容性更好的Android设备。

  • GTS:

    GMS全称为Google Mobile Service,即谷歌移动服务。GMS是Google开发并推动Android的动力,也是Android系统的灵魂所在。

  • Verify:

    CTS都是指令自动测试,但是还有一些测试是必须手动完成的,这个是verify测试就是手动测试。

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\repository\testcases)目录下

  • 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\repository\logs)

一般情况,CTS测试一次不能全部通过,那么如何只测试Fail项了?

  1. 手动修改testResult.xml,使用gedit打开该文件(gedit testResult.xml)。
  2. 选择查找搜索failed项,替换为notExecuted,然后保存,如图:
  3. 重新输入./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文件夹中的历史报表(直接删除报表文件夹即可)

常见问题:

  1. 有时,复制会导致一些权限问题,这时,我们可以运行sudo chmod 0777 filename来提高权限。
  2. 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.0\CTS4.0.3_r2\apk4.0.3_r2\CtsVerifier_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的项。
  • -

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 16:51:17

android之GMS认证的相关文章

GMS认证测试FQA

GMS认证测试FQA ---摘要 本文档用于收录GMS认证测试的异常问题,提供一般性指导.对于本文档中未提供解答的问题请咨询@开发经理或@领域技术专家 测试工具Q&A · cts测试工具如何获取? A:见Google官网 https://source.android.com/compatibility/cts/downloads ,按照自己的需求下载测试套件.例:测试ATV9系统的arm设备,我选择 Android 9.0 R7 Compatibility Test Suite (CTS) -

Android Https双向认证 + GRPC

keywords:android https 双向认证android GRPC https 双向认证 ManagedChannel channel = OkHttpChannelBuilder.forAddress("xxx",yyy) .overrideAuthority("zzz") .sslSocketFactory(sslFactory) .build(); 1.千万不要像官网案例那样设置setPlaintext(true),这个是设置明文,我们用的是密文

android指纹识别认证实现

Android从6.0系统支持指纹认证功能 启动页面简单实现 package com.loaderman.samplecollect.zhiwen; import android.annotation.TargetApi; import android.app.FragmentManager; import android.app.KeyguardManager; import android.content.Intent; import android.hardware.fingerprint

百度定位SDK:弥补Android基站WIFI定位缺失

http://tech.qq.com/a/20120524/000347.htm 如今,基于位置信息的移动应用越来越多,从餐饮.购物等本地生活服务,到定向广告的匹配.移动社交网络的构建,LBS类应用的开发离不开定位功能.国内大多数的地图SDK工具,都提供了免费.精准的定位功能,方便开发者以定位功能为基础,延伸出丰富.交互体验更佳的移动应用. 不过,仅仅是地图定位功能,不少SDK工具也都支持存在着较大差别.最近,一些地图应用的开发者都碰到了这样一个难题,一个由高校学生组织的开发团队,推出了一款LB

Android CTS Test

什么是CTS测试?了解这个问题前,我们先来搜索了解一遍"Google GMS 认证".GMS全称为GoogleMobile Service,即谷歌移动服务.说白了GMS其实就是一系列谷歌的应用集合.谷歌GMS认证(Google Mobile Services Test Certification )是谷歌公司为了确保全世界的硬件厂商设计和生产安卓为基础的各种智能硬件产品的兼容性.稳定性,以及这些硬件与安卓各种自带的各种软件APP产品和服务的兼容性.稳定性方面的测试和认证. Google

Google GMS介绍

Google GMS介绍GMS全称为GoogleMobile Service.GMS目前提供有Search.Search by Voice.Gmail.Contact Sync.Calendar Sync.Talk.Maps.Street View.YouTube.Play store等apk和服务. google为了确保全世界的硬件厂商设计和生产的安卓为基础的各种智能硬件产品的兼容性.稳定性,以及这些硬件与安卓各种自带的软件 APP 产品和服务的兼容性.稳定性,从7.0开始强制所有产品要进行G

Android 学习笔记之Volley开源框架解析(五)

学习内容: 1.PoolingByteArrayOutputStream 2.ByteArrayPool 3.HttpStack 4.HurlStack 5.HttpHeaderParser   前面整体的解释了网络请求——响应的整个过程,只是其中还是涉及到了一些其他的类,因此在这里都说一说,最后几篇会是Volley正式做一些请求,这篇仍然是进行源码解析... 1.PoolingByteArrayOutputStream.java   PoolingByteArrayOutputStream继承

[android] post请求接口demo测试代码

MainActivity.java package com.tsh.test; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import android.app.Activity; import android.content.Intent; import an

Android 的Recovery机制【转】

本文转载自:http://blog.csdn.net/fengying765/article/details/38301895 Android 的Recovery机制 目录 1. 系统的启动模式 1 1.1 Android系统的启动模式 1 1.2 系统的启动模式 2 2. Recovery模式中的三个部分 3 3. Recovery模式中的两个通信接口 3 3.1 主系统和Recovery通过/cache下的文件通信 3 3.2 Bootloader与Recovery通过BCB(Bootloa