Android8.1(O1)CTS失败项纪录

1、CtsLibcoreTestCases libcore.java.net.SocketTest#testSocketTestAllAddresses

  • 网络问题,需要在IPV6的环境下进行测试

2、CtsLocationTestCases android.location.cts.GnssPseudorangeVerificationTest#testPseudoPosition

  • 在测试之前确保工模下有搜到卫星信号,可以在笔记本上设定cts 环境,然后在户外测试。或者使用室内GPS信号放大器

3、CtsKeystoreTestCases android.keystore.cts.KeyAttestationTest#testEcAttestation

  • 该项测试需要申请google key

4、CtsCarrierApiTestCases
android.carrierapi.cts.CarrierApiTest#testGetIccAuthentication
android.carrierapi.cts.CarrierApiTest#testHasCarrierPrivileges
android.carrierapi.cts.CarrierApiTest#testSendDialerSpecialCode

  • 需要使用特殊sim卡

5、CtsAutoFillServiceTestCases
android.autofillservice.cts.WebViewActivityTest#testAutofillAndSave
android.autofillservice.cts.WebViewActivityTest#testAutofillNoDatasets
android.autofillservice.cts.WebViewActivityTest#testAutofillOneDataset
android.autofillservice.cts.WebViewActivityTest#testSaveOnly

  • 可申请豁免,Google bug id :70815921

6、CtsDeqpTestCases
GLES31.functional.debug.negative_coverage.get_error.vertex_array#draw_elements_base_vertex_invalid_map
GLES31.functional.debug.negative_coverage.get_error.vertex_array#draw_elements_instanced_base_vertex_invalid_map
GLES31.functional.debug.negative_coverage.get_error.vertex_array#draw_range_elements_base_vertex_invalid_map

  • 可申请豁免,Google bug id : 37942569

7、CtsIncidentHostTestCases(cts-on-gsi)
com.android.server.cts.BatteryStatsValidationTest#testWifiDownload
com.android.server.cts.BatteryStatsValidationTest#testWifiUpload

  • 可申请豁免,Google bug id : 69386624

8、CtsAppSecurityHostTestCases(cts-on-gsi)
android.appsecurity.cts.IsolatedSplitsTests#testInstallAllFeatureSplits
android.appsecurity.cts.IsolatedSplitsTests#testInstallAllFeatureSplitsAndConfigSplits
android.appsecurity.cts.IsolatedSplitsTests#testInstallDependentFeatureSplits
android.appsecurity.cts.IsolatedSplitsTests#testInstallDependentFeatureSplitsAndConfigSplits
android.appsecurity.cts.IsolatedSplitsTests#testInstallOneFeatureSplit
android.appsecurity.cts.IsolatedSplitsTests#testInstallOneFeatureSplitAndConfigSplits

  • 可申请豁免,Google bug id : 70697855

android.appsecurity.cts.OverlayHostTest#testInstallingOverlayHasNoEffect

  • 可申请豁免,Google bug id : 71958344

android.appsecurity.cts.UsesLibraryHostTest#testMissingLibrary
android.appsecurity.cts.UsesLibraryHostTest#testUsesLibrary

  • 可申请豁免,Google bug id : 71958671

9、CtsAutoFillServiceTestCases(cts-on-gsi)
android.autofillservice.cts.AttachedContextActivityTest#testAutofill

  • 可申请豁免,Google bug id : 71960322

10、CtsSpeechTestCases(cts-on-gsi)
android.speech.tts.cts.TextToSpeechTest#testSpeak
android.speech.tts.cts.TextToSpeechTest#testSpeakStop
android.speech.tts.cts.TextToSpeechTest#testSynthesizeToFile

  • 可申请豁免,Google bug id : 64204643

11、CtsDeqpTestCases(cts-on-gsi)
EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status#compute
EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status#fragment
EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status#vertex
EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status#vertex_and_fragment

12、CtsDumpsysHostTestCases(cts-on-gsi)
android.dumpsys.cts.ProcessStatsDumpsysTest#testProcstatsOutput

  • 可申请豁免,Google bug id : 72540761

13、CtsPermission2TestCases android.permission2.cts.PrivappPermissionsTest#testPrivappPermissionsEnforcement

 

Android8.1认证新特性与要求

本文主要说明Android8.1过GMS认证的一些新特性和新要求。

新增测试

Android7.x以及之前的版本,如果要过GMS认证,只需要完成CTS测试、GTS测试和CTS Verifier,如果全部通过,将软件送给google授权的实验室即可。

Android8.0以后,除了要完成默认版本的CTS测试、GTS测试和CTS Verifier之外,新增加了两个新的测试。

这两个新的测试需要在替换谷歌提供AOSP的system.img (GSI)的版本上进行,分别是:

新特性与新要求

认证要求

google Key

从Android O开始,必须实现一个硬件支持的密钥库,google要求使用Google key来进行认证。

Google key将以keybox.ml文件的方式提供给OEM厂商,包含以下内容:

  • 请求keybox.ml时由OEM分配的设备唯一设备ID。
  • 一个ECDSA认证密钥,采用PEM格式。
  • 一个RSA认证密钥,采用PEM格式。
 
image.png

如何申请google key

官方说明如下:

OEMs will upload a set of device IDs and download an XML keybox file containing keys for those device IDs

实际操作中可能需要提交相关信息给google授权的GMS实验室,从还实验室获取相关的 google key 文件。

测试相关

CTS测试

1、Cts Media Files

  • 版本要求 CTS Media 1.4 及以上版本
  • Media文件存放位置要求:在Android8.1的测试中,media文件要放在电脑中的/tmp/android-cts-media路径下,测试前不需要将Media文件拷贝到手机中,测试时会自动拷贝。如果/tmp/android-cts-media路径下没有media文件,将会从网上下载,由于文件比较大,比较耗时

 

Android GMS认证-CTS/GTS/CTSV

 

GMS认证包括三个部分:CTS、GTS、CTS Verifier;Android8.0以后,增加了两个新的测试,分别是:

VTS 测试 和 cts-on-gsi

CTS是兼容性测试,CTS Verifier是对CTS的补充,主要是通过手动测试来完成。

GTS的全称是Google Mobile Services Test Suite

1、测试工具和测试环境

1)测试工具

      测试工具分为三个部分,CTS工具、GTS工具和CTS Verifier工具

      CTS和CTS Verifier的官方获取路径为:CTS工具下载地址

      GTS的工具要google或者google授权的实验室获取。

2)测试环境搭建

      电脑的配置要求(电脑为ubuntu14.04、以CTS7.0_R16和GTS5.1_R2为例):

      1、从cts-tradefed脚本中可以看出,运行前首先会检查java、aapt、adb是否可用

          对于cts来说java版本的要求是:1.6, 1.7 or 1.8 is required

      2、从gts-tradefed脚本中可以看出,运行前首先会检查java、adb是否可用

          对于gts来说java版本的要求是:1.8 is required

      3、 保证手机可以连接到测试的ubuntu电脑 

          可以通过’adb devices’来查看手机是否正确连接电脑     

      手机的配置要求

      1、确保wifi可访问google服务且稳定,设置VPN,确保IPV6可用。

      2、确保测试设备附近有可用的蓝牙设备。

      3、如果不是刚刷机或者恢复出厂设置的的手机,需要设置Settings > Backup & reset > Factory data reset

      4、语言要设置为英语,Settings > Language & input > Language

      5、要打开位置,Settings > Location > On

      6、Settings > Security > Screen lock > None

      7、Settings > Developer options > USB debugging

      8、Settings > Date & time > Use 24-hour format > Off

      9、Settings > Developer options > Stay Awake > On

    10、下载最新的CTS Media Files,拷贝到手机里面,可以单独拷贝某个分辨率的。

        chmod u+x copy_media.sh

      ./copy_media.sh

    11、保证手机IMEI号正确

2、测试命令以及结果查看

1)CTS测试

1、运行CTS脚本

      a、进入cts目录/android-cts/tools

      b、执行sudo ./cts-tradefed

      c、进入后可以执行help或者run cts –help-all查看帮助命令

2、执行CTS测试

      a、执行整个CTS的测试:

            run cts –plan CTS

            如果多台手机一起跑测,可使用下面命令:

          run cts –plan CTS –shards 2 -o -d –skip-system-status-check        com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker

            注:-o = –skip-preconditions ,-d =–skip-device-info, –skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker

则可以跳过网络连接检测,这样可以节省不少时间。

      b、CTS第一遍结束之后,会有很多没有执行的项,需要执行如下命令:

            run cts –retry session-id –retry-type NOT_EXECUTED

 
 

            假如第一次的session-id是0,则命令为

            run cts –retry 0 –retry-type NOT_EXECUTED

  c、继续未完成的cts测试

            执行l r 命令,锁定需要继续跑的session_id : run cts –retry session_id

 
 

            假如要重跑session-id为0的失败项,则执行:  run cts –retry 0

3、执行单独模块或者单独测试项

 
 

        a、测试单个模块

            run cts -m <模块名>

        b、测试单个测试项

            run cts -m <模块名> -t <test_name>

4、CTS测试报告及log

        1、测试报告

            路径:文件位于android-cts/results下面

            命名规则:以测试开始执行的日期和时间命名

            查看报告文件:test_result.xml(建议使用火狐浏览器打开)

        2、CTS log

            路径:文件位于android-cts/logs

            命名规则:以测试开始执行的日期和时间命名

2)GTS测试

1、GTS测试手机端配置

        GTS测试的配置和CTS基本上是一致的,但是不需要安装CTS media媒体包。

2、运行GTS脚本

        a、进入cts目录/android-gts/tools

        b、执行sudo ./gts-tradefed

        c、进入后可以执行help或者run gts –help-all查看帮助命令

3、执行GTS测试

        a、执行整个GTS的测试:

              run gts –plan GTS

        b、GTS第一遍结束之后,如没有执行的项,需要执行如下命令:

              run gts –retry session-id –retry-type NOT_EXECUTED

              假如第一次的session-id是0,则命令为:

              run gts –retry 0 –retry-type NOT_EXECUTED

        c、继续未完成的gts测试

            执行l r 命令,锁定需要继续跑的session_id:

            run gts –retry session_id

            假如要重跑session-id为0的失败项,则执行:

            run gts –retry 0

4、执行单独模块或者单独测试项

        a、测试单个模块 : run gts -m <模块名>

        b、测试单个测试项:run gts -m  <模块名> -t <test_name>

5、GTS测试报告及log

        1、测试报告

            路径:文件位于android-gts/results下面   

            命名规则:以测试开始执行的日期和时间命名

            查看报告文件:test_result.xml(建议使用火狐浏览器打开)

        2、GTS log

            路径:文件位于android-gts/logs

            命名规则:以测试开始执行的日期和时间命名

3)CTS Verifier测试相关

1、测试准备

        1、根目录下安装CtsVerifier.apk、NotificationBot.apk

            adb install -r CtsVerifier.apk         

            adb install -r  NotificationBot.apk

        2、设置里security-Device administrators开启cts verifier

        3、打开手机上的CTS Verifier应用,根据提示测试每一项

2、保存查看结果

        所有测试完成后,点击CTS Verifier测试工具右上角的保存按钮,会提示结果保存位置,连接电脑,将结果拷贝到电脑即可查看。

 

Android Go简述与其GMS认证

什么是 Android Go?

Android Go 是 google 基于 Android8.x之后的系统,提出的一个轻量级操作系统解决方案,可以在低内存的设备上以较好的体验运行Android系统。

Android Go 对手机的配置要求较低,最低为512M的内存,通常会在不超过1GB 内存的设备上运行。Android Go 是谷歌在新兴市场进一步扩展 Android 系统计划的一部分,其较低的价格能够涵盖大部分低端用户。

Android Go版本的一些特性:

  • Android Go不支持平板设备
  • 支持Android Go的芯片厂商有:MTK、展讯、高通
  • Android Go版本优化了速度、内存使用率;减少了apk的大小
  • Android Go版本和普通版本相比,在安全性上面并没有作出妥协
  • 部分功能,如画中画,多窗口等将不再在Android Go版本中提供
  • N版本无法通过OTA升级到Android Go

Android Go的官方网站:https://www.android.com/versions/oreo-8-0/go-edition/


Android Go 的特点

Android Go 包含三个方面的优化 :操作系统,谷歌Play商店,谷歌应用程序,将能更好地运行在入门设备上。

1、更大的可用空间

体积更小的应用程序,更多的可用存储空间,以及多样的内容的存储方式

  • 减少预装应用的数量,安装轻量级的app(占用更少的存储空间),将获取更多的剩余存储空间
  • 创建下载和更新更少的全新应用,不仅可以减少占用的空间,同时显著提高应用的性能
  • google的新应用Files Go,可以帮助快速查找文件,并且过滤不需要的内容
2、更好的性能

通过使用增强型应用程序和一些新应用程序,构建快速流畅的手机体验,可以比以往更快地发送邮件,获取答案,查找路线和玩游戏。

  • Google Go 应用Google Go 可以通过简单的输入轻松快速地找到热门的搜索、网站和应用程序,趋势图像和GIF动画。
  • Google Assistant Go 应用Google Assistant 可以在低于1G的设备上使用,给用户带来轻量化的语音交互体验
  • Gboard 应用自动更正错误、语音输入、多语言打字帮你更轻松的沟通,还提供了GIF动画、表情符号。目前有220语言,是支持语言最多的输入法
3、节省流量

通过一个内置的数据管理器和更多的选项来对流量进行检测和管理,而不仅仅是控制流量的使用。

  • Data Saver默认是打开的,可即时节省流量。 用来控制哪些应用程序可以使用您的流量,何时可以使用
  • Peer-to-Peer Sharing
    随时随地分享您最喜爱的内容。 通过Files Go去分享视频,不会消耗流量。
  • Chrome 浏览器
    Chrome浏览器配备了自己的流量节省程序,默认是打开的,它限制后台数据,并帮助您节省多达60%的移动数据。

4、系统安全

Android Go在用户安全方面也没有妥协,具有和Android Oreo相同的关键安全服务,带有Google Play Protect内置的移动安全功能,可保护应用程序和数据的安全

  • 每天有超过20亿台设备受到保护,扫描程序针对移动数据使用进行了优化,因此不会浪费您的流量。
  • 内置查找我的设备功能如果设备丢失或被盗,只需从其他设备登录到您的Google帐户,即可追踪,设置密码或清除密码。
  • 扫描所有安装的应用
    可以扫描所有应用的安装,无论从何处下载,无论是否连接到网络。
5、其他
  • 专门为 Android Go推出的 Google Play 应用商店,该版本的应用商店可以收到 Google 专门为Android Go设备推荐的轻量化应用,尤其是那些不吃内存、不抢空间、节省流量的应用。
    play-store-apps_1x.png
  • 为了配合 Android Go,Google 推出了一系列新应用:<Google Go>、 <Google Assistant Go>、<Gboard>、<Google Play>、<Chrome>、<YouTube Go>、<Google Maps Go>、<Gmail Go>、<Files Go>

这些应用的特征都是占用空间小,速度流畅,就是所谓的轻量化。以Google Go为例,与之前版本相比它最多消耗 40% 的流量,安装包大小不超过 5MB,使用体验更快也更加简单。


Android Go的GMS认证

这里暂时只列出Android Go版本以GMS Express plus方式过认证的部分要求:

  • Google Search 搜索:要预装Google search Go的版本,默认在default Home screen 且为唯一的搜索apk。
  • Google Assistant 语音助手:要预装Assistant Go的版本,要成为设备上唯一的语音助手。
  • Mail 信件:要预装Gmail Go的版本,Gmail是设备上唯一的信件app。
  • Calendar 日历:要预装Google Calendar的一般版本,是设备上唯一的日历应用
  • keyboard 输入键盘:要预装Gboard Go的版本,是设备上唯一的输入键盘app。
  • Gallery 相册:预装 Google Photos一般版本,没有特殊要求。
  • SMS Messaging: 预装Android Messages一般版本,要求为设备上唯一的短信app,且位置要在Hotseat上
  • Browser浏览器 : 预装Chrome Browser一般版本,作为默认浏览器,且摆放在Hotseat位置。
  • Video Conferencing:预装Google Duo的一般版本,没有要求。
  • Google Feed: 预装google Feed,没有特殊要求。
  • Youtube: 预装一般版本或者Go版本,依据Go的Geo-table表格来判断,放在首页上。
  • Google Map :预装Google Maps go版本,只能在大于512M的设备上加入。
  • Files Go: 要求预装 Files Go,要求为设备上唯一的文件管理应用。

注意点:
1、Youtube&Youtube Go 依据Geo-table放置在主页面上

2、Messaging和Chrome需要放置在hotseat,其中Chrome要设置为默认浏览器

3、其他的按照一般GMS配置

4、Android Go不能出俄罗斯市场。

 

谷歌认证的Android设备制造商ODM-20180326

已通过谷歌认证的ODM厂商,以下数据来自谷歌网站:

https://www.android.com/intl/zh-CN_cn/certified/partners/

谷歌3月19日禁止使用谷歌应用的分析

以下是小编为大家整理的关于“谷歌3月19日禁止使用谷歌应用的理解”,有需要的亲们可以看如下解释:

1.android 7.x及以下版本项目,已经出货且有最终用户激活的项目,在不变更android版本及品牌型号的前提下,不受影响。

2.android 7.x及以下版本项目,没有出货或已出货但没有终端用户激活的情况下,谷歌会弹出提示框告知非法设备,无法使用谷歌应用。

3.android 7.0及以上版本的项目,未过GMS的项目,会弹出提示框告知非法设备,无法使用谷歌应用,需按照8.0版本做GMS认证。

4.已经激活的项目,变更品牌或型号或版本均被判定为新项目。