Android P(9.0)GMS认证新要求

本文档主要初步整理Android P对GMS认证的新要求

一、基本环境

主机要求:
  • Java 8
  • Python 2.7
  • ADB 1.0.39
VTS 环境
$ sudo apt-get install python-dev

$ sudo apt-get install python-protobuf
$ sudo apt-get install protobuf-compiler

$ sudo apt-get install python-virtualenv
$ sudo apt-get install python-pip
注意事项:

1、P版的CTS测试过程中,不要拔手机,否则最终结果无法完整测试出所有模块
2、测试指令发生了变化,具体可在终端使用help查看
3、由于AVB2.0的影响,替换GSI和之前的方法有所不同,需要注意


二、CTS

1、Android 9.0 针对 WLAN RTT 功能增加了一个 API,此 API 允许设备测量自身与接入点之间的距离,从而显著提高室内位置信息精确度。
以下是支持 WLAN RTT 的两款推荐设备:Google Wifi 和 Compulab 的 Filet2 接入点(使用 5GHz 频段,带宽设为 40MHz)。

2、Android 9.0 的初始 API 级别

对于搭载 Android 9.0 的设备,请将属性 ro.product.first_api_level 设置为在代号、标记和细分版本号上找到的有效值。

对于搭载 Android 8.x 或更低版本的设备,请为产品的第一个版本取消设置(移除)属性 ro.product.first_api_level。对于所有后续版本,请将 ro.product.first_api_level 设置为正确的 API 级别值。

3、Android 9.0 引入了 Open Mobile API 测试用例,用于检查安全元件底层实现是否符合标准,需要特殊的SIM卡进行测试。

4、视频播放的存储空间要求
以下是按最大视频播放分辨率列出的存储空间要求:

  • 480x360: 98MB
  • 720x480: 193MB
  • 1280x720: 606MB
  • 1920x1080: 1863MB

5、部分基本要求

  • 屏幕尺寸至少为 2.5 英寸。

  • 必须支持第三方输入法编辑器应用。

  • 必须提供“Home”、“Recents”和“Back ”功能;“Back ”功能的常规按下事件和长按事件都可以发送到前台应用,上述事件不得被系统占用,且可从 Android 设备外部触发。

  • 必须支持触摸屏输入。

  • 如果包含各种sensor,则需要保证sensor的最低性能要求,参考CDD文档。

  • 32位系统和64位系统,在不同的密度和分辨率的情况下,对最小内存都有要求,参考CDD文档。

  • 必须包含麦克风,必须具有音频输出机制,并声明 android.hardware.audio.output。

  • 必须支持多种音频视频编解码,具体参考CDD文档。

Android 9.0 CDD文档:https://source.android.com/compatibility/9/android-9-cdd
百度云盘:https://pan.baidu.com/s/13Cwr5rj9GrC2qhDoM-NCvg 提取:gyth
----待更新----


三、CTS-ON-GSI

----待更新----


四、VTS

1、Android 8.x VTS测试包括98个测试模块,总共约6100项测试;Android 9.0 VTS测试则包括212个模块,总共约 7790 项测试。

2、对于搭载Android 9.0 的设备,有两组可用的 GSI:一组用于搭载 Android 9 的设备,另一组则用于升级到 Android 9 的设备。

搭载 Android 9 的设备可以为 A/B 和非 A/B 设备使用相同的 GSI。

例如,要测试基于 arm64 ABI 且包含与 2018-08-05 Android 安全安全补丁程序的设备,请选择以下 GSI:

system_aosp_arm64_20180805.img

升级到 Android 9 的设备应使用与该设备(是否支持 A/B 更新)的 ABI 对应的 GSI 以及设备的 security_patch_level。这种方式与搭载 Android 8.x 的设备的方式类似。

例如,要测试基于 arm64 ABI、支持 A/B 更新且包含与 2018-08-05 Android安全补丁程序的设备,请选择以下 GSI:

system_aosp_arm64_ab_20170801.img
3、注意:运行 Android 8.x 的设备不需要SIM 卡。运行 Android 9.0 的设备则必须包含一张用于 VTS 测试的 SIM 卡。用于VTS测试的SIM卡与用于CTS中Open Mobile API测试的SIM卡是同一种特殊的SIM卡。

4、确保设备已连接到支持 IPv6 的 WLAN 网络(如果该设备具有GPS/WLAN/移动网络功能,必须将其恢复出厂设置并开启位置信息设置)。


五、GTS

GMS包更新了以下几个feature:

  • Uncompressed DEX in Privileged Apps
  • AndroidPlatformServices
  • GoogleRestore
  • Device Health Services (Turbo)
  • GmsCore APK Variant for Android 9
  • GoogleContacts is Non-privileged
  • Non-SDK API Access Whitelist
  • Google Media Effects Library Deprecation
  • Use of PRODUCT_SYSTEM_DEFAULT_PROPERTIES
  • Updated Wizard Scripts
  • Updated SearchLauncher

1、Android 9.0不再需要com.google.android.media.effects.jar,包括已升级的设备。

2、Android 9.0如果预加载GoogleContacts,则必须为非特权(non-privileged ),版本必须高于2.5。

3、Android 9.0设置向导中的A backup from the cloud选项要出现在Google帐户登录界面之前。

4、Android 9.0的GMS备份功能支持端到端加密备份,需要注意锁屏实现机制。

5、Android 9.0的GMS设备必须保留SettingsBackupAgent。

6、Android 9.0引入了App standby buckets,让平台根据用户限制应用程序。如果启用此功能,Google必须可以更新限制参数,以确保应用开发者的一致性。

具体的内容请参考以下文档:
链接:https://pan.baidu.com/s/1Slz0Y7bXhTEHGWuAVXa6Xg
提取码:39a0

----待更新----


六、BTS

BTS测试直接测试Android系统镜像。通过扫描系统镜像,检查其中是否预安装了恶意软件和其他可能有害的应用 (可能是由 OEM 的供应商和提供商引入的)。BTS 采用了和 Google Play同样的安全扫描和分析的技术。

注意:Google 会不断更新数据库以及用于检测恶意软件和安全威胁的技术。所以可能之前通过的版本也会被检测出来新的问题。

可以通过以下某种方式上传软件版本(我们一般通过3PL提交):

Google云端硬盘:google将共享一个 Google 云端硬盘文件夹,可以将自己的版本复制到该文件夹中。

SFTP保管箱:google将为您设置一个安全文件传输协议 (SFTP) 帐号,以上传编译软件。

通过3PL提交:使用其中一种支持的格式将固件提交给3PL验证者。

在后台,BTS 会自动在 Google 的基础架构上运行,无法离线使用的内部服务。BTS 完成后,相关结果会出现在 APFE 上。
BTS结果处理:

任何疑似预安装了恶意软件或其他问题都将被视为测试失败无法通过认证。Google只能提供恶意软件软件包名称和恶意软件类。无法提供关于可能产生的影响、其行为或如何检测到该行为的详细信息。

如果Google在版本已获批准后发现问题,合作伙伴必须及时处理新问题,并发布已根据合作伙伴协议解决相关问题的更新版本。仍然包含问题的新版本将不会获得批准。

如果认为APK的标记有误,需要上报给google,并提供尽可能详细的关于该应用预期功能的信息。提供有关文件来源的详细信息(尤其是在文件由内部或由供应商制作而成的情况下)。Google会根据具体情况进行调查并处理这些应用。


七、STS

----待更新----


八、Cts Verifier

1、Cts Verifier测试中Android9.0关于camera的测试相对于Android8.x来说更加复杂,测试项也更多,需要重点关注。

----待更新----


九、GMS认证注意事项

1、所有自动化测试套件都会尝试在运行时下载内容,包括CTS媒体文件或业务逻辑文件。很多情况下防火墙会导致测试准备失败。可以尝试尝试将下面的内容添加到.profile(在Ubuntu上)。

export JAVA_TOOL_OPTIONS =' -  Djava.net.useSystemProxies = true'

2、Android 9.0 强烈建议预加载app的最低目标SDK版本为26或者更高。

3、Android 9.0 必须支持DNS over TLS,并且必须提供UI支持,默认的DNS隐私模式设置应该是自动的。

4、Android 9.0 的Widevine 数字版权管理,Android 9: Version 14 for new devices. Version 13 or 14 for upgrading devices。

5、应用程序崩溃对话框,Android 9.0 改变了App Crash Dialog的行为。它不再出现前台和后台应用程序的一次性崩溃。但是,如果应用程序连续崩溃两次或多次,App Crash Dialog仍会显示,让用户可以选择查看应用信息或强制关闭应用,不能修改此行为。

6、Android 9.0引入了在AOSP中发布的运营商ID数据库packages/providers/TelephonyProvider/assets/carrier_list.textpb,不能改变此实现或数据库的内容,必须使用AOSP中发布的最新版本的运营商ID数据库。

7、如果满足某些硬件要求,强烈推荐Android 9.0 支持低延迟,MIDI和专业音频功能。

- Devices having 2GB or more RAM: [`android.hardware.audio.low_latency`] [`android.software.midi`]
- Devices having 4GB or more RAM: [`android.hardware.audio.pro`]

8、Android 9.0中,如果ActivityManager.isLowRamDevice()为false,相机HAL必须使用android.hardware.camera.device@3.2或更高版本。

如果ActivityManager.isLowRamDevice()为true,则摄像头HAL可以提供android.hardware.camera.device@1.0版本。但强烈建议使用3.2版本及以上。

9、Android 9.0的设备必须在以下内核版本上运行:

  • 4.4.107 or higher
  • 4.9.84 or higher
  • 4.14.42 or higher
    在2018年下半年推出的SoC必须运行在4.9.8以及以上的内核版本

10、VNDK library classification and ABI
Android 9.0的设备必须默认打开 VNDK snapshots :BOARD_VNDK_VERSION := current

11、Android 9.0的设备必须在设备的非易失性存储上具有以下分区:

  • system - for the framework-specific portions of the code
  • vendor - for the chipset-specific portions of the code
  • boot - for the Linux kernel image

12、Android 9.0的设备的设备必须使用system-as-root

- BOARD_BUILD_SYSTEM_ROOT_IMAGE := true

13、系统SDK要求
Android 9.0 的设备必须通过设置BOARD_SYSTEMSDK_VERISONS:= 28来启用SystemSDK。

Vendor分区中的所有APK和JAR都不得使用系统分区中定义的隐藏API。

无论API是否来自AOSP,系统分区中定义的隐藏API都不得使用@SystemApi进行注释。

14、Android 9.0的设备必须定义PRODUCT_SHIPPING_API_LEVEL, 其值必须大于等于28。

15、Android 9.0 的Managed profile badging标记有变化,如下图:


unnamed.png

----待更新----

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342