Android GMS Checklist【Android gms认证自检表】

(一)开始

涉及Android版本:Android 8,Android Go,Android 8.1,Android P

内容包括:工具检查,报告要求,自检项,自检项把go分开讲,因为Go上面有许多额外的要求

(二)软件版本和工具确认

  • 工具版本确认:谷歌工具时限会不确定时间更新,需要向代理确认是否过期向代理确认
  • Android补丁完整性检查:下载安装SnoopSnitch检查,后面也要求跑STS检查补丁完整性,但是谷歌到今日也没确定一定要全怕啥(2018-10-19)向代理确认
  • clientidbase检查:跟代理和客户确认该值向代理确认
  • 开机log必须带有Android字样。且符合谷歌要求向代理确认

GMS报告

device name属性值必须满足要求:^[a-zA-Z0-9_-]+$(数字或者字母或者下划线、中划线)
Android 版本 CTS GTS STS CTS verifier VTS GSI perf-scripts
Android 7.0+7.1 x x x
Android 8.0+8.1 x
Android Go
  1. 除了STS,其他报告要保证只有pass项和waive项
  2. 报告都必须全部跑完
  3. 如果是SMR版本不需要按照上面的标准跑

(三)自检项

设备名称检查

所有送测设备,设备名称(包括Device Name, Product Name, Model Name, Marketing Name),以及外包装等等宣传资料上的Name,绝不可以带有Go或者GO的字样。否则就违反了最新的Android Go branding guideline。

fingerprint:要求本次送测出去的版本的fingerprint要与上次不一致,不管上次是否送测成功
  1. V E R S I O N . I N C R E M E N T A L 与 r o . b u i l d . v e r s i o n . i n c r e m e n t a l , VERSION.INCREMENTAL 与ro.build.version.incremental, VERSION.INCREMENTALro.build.version.incrementalDEVICE与ro.product.device, B R A N D 与 r o . p r o d u c t . b r a n d , BRAND与ro.product.brand, BRANDro.product.brandPRODUCT与ro.product.name等等。
  2. Fingerprint属性值没有空格或者空白符
first api level属性检查:
  1. 首次认证的项目不能定义ro.product.first_api_level;必须为空;
  2. MR版本必须设置为首个认证版本api level值,即如果首个认证版本是7.0,则MR版本认证时,该属性必须设置为24.
Geo Availability检查:确定内置的谷歌应用是否有遗漏。

特别注意俄罗斯,中国,朝鲜,伊朗版本,因为这些国家要么无法连接谷歌服务器,要么有其他限制,所以系统更加简洁,内置的谷歌应用数目少于正常gms版本

Android log和开机动画
  1. “Powered by Android” mark不允许有任何修改
  2. Android Mark和Brand组合的时候,Android Mark必须放到底部居中位置(注意),每页只能与一个brand组合,且Android Mark不应该大于Partner Logo的90%
  3. Powered by Android Mark可以和其他Brand组合,但必须显示在开机第一个界面,且显示时间不能小于1秒。(备注:开机过程中不能出现两次)
  4. 背景颜色只能是黑色、灰色或亮色,
  5. Android mark如果不与额外的brand结合使用,那么该Mark必须位于屏幕的正中间
  6. Android Go 项目需要使用不同的Android mark,具体请参考最新的Android Bootup Animation Requirements.
  7. Android Mark单独显示在第一屏,则要求Android Mark logo size竖屏状态下不得小于屏幕宽度的25%,不得大于屏幕宽度的50%
  8. 谷歌应用:不得修改icon的size和color
  9. 不得省略app下面的label
  10. 不得使用过时的icon(不要rro谷歌应用图标)
Andorid 开发者模式和部分功能要求
  1. 检查开发者选项USB调试选项默认关闭
  2. 打开USB调试开关后,插入USB线,必须弹出“Allow USB debugging?”的提示框。
  3. 桌面必须有Google Search widget (除Russian build外)
  4. Google Play Store图标必须放置在主界面
  5. 检查手机能进入到安全模式,[备注:原生进入方式:长按关机菜单]。
    并且在重启并进入安全模式之前,需要如GMS Requirement v5.0中所说,
    显示右侧的提示框供用户选择是否重启进入安全模式。特别注意Android O的订单
  6. Settings->Security->检查Unknown sources的默认勾选状态,必须默认不勾选(只适用于安卓8.0之前)。
  7. 对于安卓8.x, 进入Settings->APP¬ification->Advanced->Special app access->Install unknown apps,检查所有APP的“Allow from this source” 默认值必须是Not allowed。
  8. 连续点击版本号,进入开发者选项中,查看usb debug选项状态,必须默认不勾选
  9. Settings->About Phone里必须有一项显示Security Patch Level。
  10. Android 7.0及以上的设备必须在Developer Options Settings里保留切换device上available的WebView Provider的menu。
Google文件夹
  1. Google文件夹中不允许有非Google应用,而且必须放置所有谷歌Core GMS应用(在最新GMS Requirements 文档中有列表),并以文档中规定的顺序,排序位置如右图所示(针对非Go设备)。
  2. 开机进入桌面之后,必须在home界面(显示谷歌文件夹和google play)弹出权限后选择权限仍然在第一页。
俄罗斯要求

如果是销往Russia的机器,必须要有Russia feature,查看方法:

  1. adb shell pm list features 验证com.google.android.feature.RU是否存在
  2. 销往Russia的设备:缺省Home Screen必须用Chrome search Widget替换Google Search widget。预置的Chrome apk版本必须是稳定版M60以上版本。具体有关widget size和其它需求请参考本页第31项右侧的JIRA子任务。
    另外,必须设置device 缺省Locale为ru_RU。(如果该设备上市时间再2017.12.31前,可以不用满足,否则必须满足)
浏览器要求

对于Browser Filter (http://),如果device中预置了不止一个browser,则应该缺省显示一个Chooser界面让用户选择打开的browser。且应用排序在英文状态下必须按照字母顺序A-Z显示;或者将Chrome应用置顶。
测试参考方法:
adb shell am start -a android.intent.action.VIEW -d http://testerhome.com

home 按键长按

长按Home键需发送KEYCODE_ASSIST,即keyevent 219。要与adb shell input keyevent 219命令拉起的界面一致。而Google App必须是Assist Action的default Handler。建议在连接能的wifi场景下测试。此为GMS Requirements v5.0中的要求。

谷歌短信
  1. Android O之后要求内置谷歌短信(GTS 6.0R1工具要求)
  2. 对于预置了谷歌Android Messages以及Carrier Services的设备,请参照GTS 5.1 R4 User Guide文档第10页中CarrierServicesTests一节,设置正确的permission以及property值(ro.com.google.acsa=true),否则GTS会报错。即使不报错,也请正确设置以上需求。
GSI版本与CTS版本差异问题,product属性与vendor属性
1.
GSI load和user load的density值相等,security patch date也要一致。
adb shell "getprop |grep density":     density of GSI build = density of user build
adb shell "getprop | grep security":   Security date of GSI build = Security date  of user build

2.
1. Brand Name要保持一致,比如:
[ro.product.brand]: [TINNO]
[ro.vendor.product.brand]: [TINNO]
2. Device Name要保持一致,比如:
[ro.product.device]: [k101]
[ro.vendor.product.device]: [k101]
3. Manufacturer要保持一致,比如:
[ro.product.manufacturer]: [TINNO]
[ro.vendor.product.manufacturer]: [TINNO]
4. Model Name要保持一致,比如:
[ro.product.model]: [K101]
[ro.vendor.product.model]: [k101]
5. Product Name要保持一致,比如:
[ro.product.name]: [k101]
[ro.vendor.product.name]: [k101]
MTK log

若是有Mtklogger, Mtklogger的版本要≥4.2.0,且默认为关闭状态。

U形屏要求

对于U型屏,横屏模式下,对于第三方app,display cutout区域不可以覆盖APP UI和内容,也就是
在横屏状态下,U形屏区域不能遮挡正常应用显示

Android P的要求
Android P 设备必须支持DNS over TLS,
表现为UI上必须支持显示右侧的Private DNS选项框,包含三个选项。并且缺省选择应该放置在Automatic上。
该设置在Settings -> Network & internet settings里。

Android 9.0及以上的设备必须设置BOARD_SYSTEMSDK_VERISONS := 28。
Android 9.0及以上的设备必须定义PRODUCT_SHIPPING_API_LEVEL配置项,
用来指明该device初次commercial launch时的first API level。Android 9.0及以上的设备无论是new build还是MR, 
ro.product.first_api_level都必须设置为正确的值。

(四)Android Go 特殊要求

相机

如果是512M内存的设备,最大屏幕分辨率不能超过FWVGA+; 最大相机分辨率不能超过 5MP

其它Android Go 设备的GMS需求,

其它Android Go 设备的GMS需求,请参考GMS Go Requirements - 2018-02-23.pdf,以及谷歌Android Go的官方device configuration文档,即"Android Go Device Configuration Guide - 20180224.pdf"。
而对于Android P Go设备,除了GMS Go Requirements之外,还请务必参考"Android P-Go Device Configuration Guide.pdf"。
文档地址见右方,Go设备performance测试脚本也在JIRA子任务里。在Device Configuration Guide文档中有以下规定(包括Android P Go):

  1. Bluetooth功能必须默认关闭。
  2. Screen Auto-Rotate 功能必须默认关闭。
  3. Live wallpaper app 必须移除。
  4. Data Saver 默认必须要关闭。
  5. FaceLock app 必须移除。
  6. Multi-Window support, Picture in Picture 和 Multi display 必须disable。
  7. managed_users feature必须关闭,work profile必须关闭。
  8. 对于Android P Go设备,还不能support widgets。
  9. 对于Android P Go设备,不能support Notification dots (BADGE_ICONS)。
  10. 对于Android P Go设备,Disk encryption必须要缺省enable。请参见9.0 CDD (http://jira.tinno.com:8080/browse/REQC-7599)。
  11. 对于Android P Go设备,必须支持Verified Boot(请参见9.0 CDD),谷歌推荐在P Go上使用Simplified Verified boot (dm-verity)。
其它Android Go 设备的GMS需求2
  1. 从即日起,Navigation Go (即GMS包中的NavGo app)变为Mandatory app,请注意务必将NavGo app预置在每一个Android Go New Device中。
  2. 所有预置的app以及通过Air方式(比如PAI,或某app store等方式)自动安装的app,都必须满足 minimum target SDK 26 (Oreo) or higher的要求。从2019/07/01开始,谷歌会reject不满足该要求的build。
  3. 请注意Android Go项目的GMS版本property值 (即 ro.com.google.gmsversion)末尾应该有go 字样,与非Android Go的项目不同。目前A-Go项目和非A-Go项目共用同一个GMS包,但分别使用不同的makefile。举例来说,对于201805版本的8.1 GMS包来说,A-Go项目的GMS版本值应为8.1_201805.go,而非A-Go项目的GMS版本应为8.1_201805。
  4. 在Go设备上,Google Go 必须是android.search.action.GLOBAL_SEARCH intent的default handler。 Google Speech Services 必须是RECOGNIZE_SPEECH intent的default handler。参见如下谷歌的英文描述:
    In the absence of a conflicting third-party contractual requirement, Google Go (com.google.android.apps.searchlite) will be the default handler for the android.search.action.GLOBAL_SEARCH intent. Company agrees to use Google Speech Services (com.google.android.apps.speechservices) as the default handler for the RECOGNIZE_SPEECH intent.
  5. Userdata分区必须使用f2fs文件系统格式
  6. 如果设备Default Home Screen不支持进入App Menu,则在DHS的右边可以增加screens。
  7. 如果设备Default Home Screen支持进入App Menu,则除了DHS之外不要加其他的屏幕。
Optional GMS app icon应该满足以下条件之一:
1. 在default homescreen上;
2. 在hotseat上;
3. 在Google Folder里,并放置在所有Core GMS Go app icon的后面。
GMS Go里的Core app如果要放置在Google文件夹里,排序必须满足如下顺序:
(从左到右,从上到下)
Google Go,Youtube or YouTube Go,Gmail Go,Assistant Go,Maps Go。
任何GMS Go里的GMS app都可以放置在Hotseat或是default homescreen上,
如果某个GMS Go app icon放置在了Hotseat或是default homescreen上,
就需要从Google collection folder中拿掉,
但如果任何GMS Go app icon不在hotseat或是default homescreen上,那就必须按次序放置在Google文件夹里。
Chrome图标应该放在Hotseat位置,且hotseat还能放3个其他图标,
但如果是出往俄罗斯的Go build,Chrome图标可以不放在Hotseat位置,
且Hotseat必须放4个图标。
(注意:谷歌邮件回复说
We are okay with 5 Apps in the hotseat for devices that have 702px or more in width (Typically, HD and higher)),
所以对于HD及以上分辨率的handheld手机,
谷歌允许hotseat放置5个图标。低于此分辨率的最多只能放置4个图标。
Play store和Google folder 以及手机厂商的两个应用图标,
只能放置在dock之上的那一排,
并且除了Play store和Google folder之外
,这一排里手机厂商的应用图标最多两个。

你可能感兴趣的:(android系统开发)