本文档主要初步整理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文档。

三、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必须可以更新限制参数,以确保应用开发者的一致性。

----待更新----

六、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

----待更新----

gms认证流程_Android P(9.0)GMS认证新要求相关推荐

  1. 基于Spring Security的认证方式_Spring Security 的认证流程_Spring Security OAuth2.0认证授权---springcloud工作笔记123

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 >>>>下面是个总结 让我们仔细分析认证过程: 1. 用户提交用户名.密码 ...

  2. mysql ocp 认证 题库_Mysql 8.0 OCP认证考试原题题库整理(CUUG内部资料)-第1题

    Mysql 8.0 OCP认证考试原题题库整理(CUUG内部资料)-第1题 1.Choose the best answer. Examine these statements and output: ...

  3. mysql ocp 认证 题库_Mysql 8.0 OCP认证考试原题整理(CUUG内部题库)-第4题

    Mysql 8.0 OCP认证考试原题整理(CUUG内部题库)-第4题 时间:2020-12-01 来源: Mysql 8.0 OCP认证考试原题整理(CUUG内部题库)-第4题 4.Choose t ...

  4. 基于Session的认证方式_认证流程_Spring Security OAuth2.0认证授权---springcloud工作笔记114

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 开通了个人技术微信公众号:credream,有需要的朋友可以添加相互学习

  5. 看清spring security 认证流程,自定义认证方式

    一.文献参考 Spring Security认证与授权的原理(源码分析,超详细)_Zystem-CSDN博客_springsecurity认证原理 spring security为什么这么复杂? - ...

  6. 【实战】从零搭建SSO单点登录服务器 - CAS认证流程

    前言 因系统逐渐增多,各个业务系统间无法共享用户状态,每个系统都需要用户登录.这对于用户来说很不友好,于是需要搭建一个SSO单点登录服务器,来做统一的登录.注销. 写这个系列的文章有两个目的: 记录自 ...

  7. SpringSecurity登录认证流程

    SpringSecurity登录认证流程 目录 SpringSecurity简介 springSecurity登录认证流程 一.Springsecurity简介 ​ Spring Security是一 ...

  8. gms认证流程_Google GMS认证要求与申请流程

    继联发科在2017年11月宣布正式进入谷歌的GMS Express项目后,日前紫光展锐也宣布了同样的计划,成为本土第一个加入该计划的基带芯片厂商. GMS Express用于向安卓设备制造商分发软件包 ...

  9. gms认证流程_【热点资讯】详解Google GMS认证流程可大大缩短终端手机上市时间...

    原标题:[热点资讯]详解Google GMS认证流程可大大缩短终端手机上市时间 继联发科在2017年11月宣布正式进入谷歌的GMS Express项目后,日前紫光展锐也宣布了同样的计划,成为本土第一个 ...

  10. gms认证流程_GMS认证流程及周期 智能手机和平板GMS授权

    欢迎来我们实验室实地考察! 联系: (戴小姐) 地址:深圳市龙华新区大浪街道豪迈高新技术园 GMS:全称为Google Mobile Service谷歌移动服务,GMS是Google安卓系统的核心,是 ...

最新文章

  1. 数据通信技术(八:OSPF单区域配置实验)
  2. 一個简单的okhttp访问网络的例子
  3. Raspberry Pi 软件源
  4. python需要变量命名规则_和孩子一起学习python之变量命名规则
  5. [WCF权限控制]利用WCF自定义授权模式提供当前Principal[实例篇]
  6. leetcode 300. Longest Increasing Subsequence | 300. 最长递增子序列(动态规划)
  7. NoSQL之Redis非关系数据库(redis概述,持久化,RDB持久化,AOF持久,内存碎片)
  8. getvalue参数计数不匹配_OpenCV开发笔记(六十八):红胖子8分钟带你使用特征点Flann最邻近差值匹配识别...
  9. 【渝粤教育】电大中专新媒体营销实务 (7)作业 题库
  10. TVM:使用 Schedule 模板和 AutoTVM 来优化算子
  11. figure服务器无法显示,求大神帮帮忙,看一下为什么第二个figure出不来,只能显示第一个...
  12. React Native组件的结构和生命周期
  13. css属性之box-shadow
  14. Ubuntu下实现双屏独立切换
  15. oracle表空间使用情况查看
  16. 软考——IP计算问题那点事
  17. three.js 05-05 之 SphereGeometry 几何体
  18. 【C】C语言判断文件后缀名
  19. vue 给某个div设置回到顶部
  20. 关于程序员秃顶和预防的小知识

热门文章

  1. 开源 syslog 日志系统 scribe
  2. dell 2u服务器型号,IBM、HP、Dell比拼主流2U双路服务器
  3. Web程序设计(第三版)课后习题答案
  4. java web程序设计任务教程——源码(全)
  5. idea中html导入背景图片,Intellij IDEA代码框使用自定义背景图片
  6. 腾讯推出移动端动画组件PAG,释放设计生产力!
  7. 带您了解虚拟换衣系统
  8. Visual Studio 2012下载安装方法
  9. VB开发OCX控件的属性之自定义列表项
  10. 关于微软拼音输入法被管家和卫士弄丢的解决办法