GMS测试流程

一、接到认证需求
二、申请白名单
1、需要提供给客户的是一个单项结果报告(zip包)
(1)用CTS工具跑
(2)跑的单项:
Provide CTS single test report for testSignature For 8.1
run cts -m CtsSystemCurrentApiSignatureTestCases -t android.signature.cts.api.SignatureTest#testSignatur
(3)生成 2018.10.25_09.52.08.zip文件
2、交给客户
三、客户填写摸底确认表
Product Model(“ro.product.model”)==HX_WW6_PRODUCT_MODEL
Product Name(“ro.product.name”)===BOARD_WW6_RO_PRODUCT_NAME
Brand Name(“ro.product.brand”)===HX_WW6_PRODUCT_BRAND
Device Name(“ro.product.device”)===BOARD_WW6_RO_PRODUCT_DEVICE
Board Name(“ro.product.board”)====BOARD_WW6_RO_PRODUCT_BOARD
manufacturer(“ro.product.manufacturer”)===HX_WW6_PRODUCT_MANUFACTURER
google client id
四、确认IC 、3D、TP
查找相机的datasheet ,调整FOV参数
五、申请白名单(需要① deviceID.txt文件,② 白名单单项报告)
1、怎么生成devicelD.txt
(1)注意:只能在linux环境下去执行
(2)执行python getdeviceid[keybox].py(这个脚本,见附件)
(3)input brand name:这里填写ro.product.brand,如:HYUNDAI2
input device name:这里填写ro.product.device,如:E465GO10
input device count:这里填写数量如:50000
(4)生成的文本格式
注意
①必须在linux环境下操作(格式问题)、包括手动修改数字格式
②数量:

=30K,就要写100K
<30K,写50K
后面的数字格式可以修改

(5)

3.2.3 googlekey简介
Attestation Key就是我们所说的googlekey,它是一种密钥,( Key attestation)密钥证明是一项Google要求的新功能,必须在安全硬件中处理RSA和ECDSA密,具体文档可见”Android Attestation Keybox Deployment V1.0.2.docx”
简单来说:从8.0开始,所有要过认证的安卓设备,都需要烧这个googlekey(部署),工厂生产时会去部署这个googlekey;GTS测试中有两个单项专门针对googlekey,分别是testEcAttestationChain和testRsaAttestationChain,只有烧了googlekey才能通过这两个单项。
3.2.4怎样烧googlekey
环境:展讯给的文档实际上是针对工厂生成的,即一台windows做服务器用于配置googlekey,多台windows做客户端,客户端只需要用imei工具,勾选Secure Provisioning
选项即可
步骤:
①解压”对外工具V3.0.rar”
②制作googlekey
a客供文件:2018-08-07_08-03-06.021_UTC.attest_keyboxes.E465GO.1533628989012.output.gz
b解压后得到2018-08-07_08-03-06.021_UTC.attest_keyboxes.E465GO.1533628989012.output
c对外工具V3.0\1server\SecurityServer_R4.18.2101\ToolBox\SecureToolBox.exe

d配置服务器端ini,并启动
对外工具V3.0\1server\SecurityServer_R4.18.2101\SecurityServer\SecureCenter.ini

即:指定googlekey的路径

启动成功后
e配置客户端IEMI写号工具ini,并启动
对外工具V3.0\2client\WriteIMEI_R19.18.2101\Bin\WriteIMEI.ini

表示使用本地服务器的配置!

注意勾选Secure Provisiong,表示要烧googlekey
f以上工作之后,直接用写号工具烧写即可

3.2.5 googlekey重点注意事项
① goolekey只能部署一次
如果已经写了googlekey,那就不能再覆盖其他的key,我们也没办法去除key
实在要去除key,只能把机器寄给展讯处理!
② 每个googlekey与项目一一对应,不能相互烧写!!!
所以要注意:平时只写imei的时候,不要去用WriteIMEI_R19.18.2101这个工具,使用这个工具专门烧googlekey,防止误烧googlekey
③ 工厂生产的机器,都要烧google key,一个googlekey最多100K

3.3摸底确认表
属性:
Product Model(“ro.product.model”)==HX_WW6_PRODUCT_MODEL
Product Name(“ro.product.name”)===BOARD_WW6_RO_PRODUCT_NAME
Brand Name(“ro.product.brand”)===HX_WW6_PRODUCT_BRAND
Device Name(“ro.product.device”)===BOARD_WW6_RO_PRODUCT_DEVICE
Board Name(“ro.product.board”)====BOARD_WW6_RO_PRODUCT_BOARD
manufacturer(“ro.product.manufacturer”)=HX_WW6_PRODUCT_MANUFACTURER
google client id
=ro.com.google.clientidbase=android-fortuneship(举例)

Fingerprint平台规则如下
ro.build.fingerprint=ro.product.brand/ro.product.model/ro.product.model/ro.build.version.release/ro.build.id/ro.build.version.incremental:ro.build.type/ro.build.tags
需要特别注意,ro.build.version.incremental和fingerprint属性要保持一致

3.4样机要求
需要客户确认最终过认证的屏和相机,并提供5-8台GMS认证测试样机

3.5测试GMS
3.5.1环境搭建(暂时不用了解)
Onekey和下载sdk
① jdk 、sdk 、adb 、aapt
sudo vim ~/.profile
在末尾添加
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export CLASSPATH= J A V A H O M E / l i b e x p o r t P A T H = {JAVA_HOME}/lib export PATH= {JAVA_HOME}/bin: P A T H e x p o r t P A T H = PATH export PATH= PATH: H O M E / a n d r o i d s d k l i n u x / p l a t f o r m t o o l s e x p o r t P A T H = HOME/android-sdk-linux/platform-tools export PATH= PATH:$HOME/android-sdk-linux/build-tools/28.0.2
保存退出
然后执行命令使其生效:
source ~/.profile

② python

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

③ GMS工具包
解压工具包到ubuntu服务器(如android-cts-8.1_r7-linux_x86-arm.zip)
如:cts-8.1_r7、cts-verifier-8.1_r7、gts-6.0_r1、vts-4766758、sts-8.1_201808、cts_media1.4、gsi镜像文件、go_performance性能测试

3.5.2测试CTS
手机端:使用release软件
1.将设备恢复出厂设置:设置 > 备份和重置 > 恢复出厂设置(或者刚下载完软件后不要去操作设置意外的应用)
2.将设备的语言设置为英语(美国):设置 > 语言和输入法 > 语言(非常重要)
3.如果设备具有 GPS 或 WLAN/移动网络功能,则打开位置信息设置:设置 > 位置信息 > 开启
4.连接到满足以下要求的 WLAN 网络:支持 IPv6,可以将被测设备 (DUT) 视为隔离的客户端(请参阅上文的物理环境部分),并可连接到互联网(可翻墙):设置 > WLAN
5.确保设备上未设置锁定图案或密码:设置 > 安全 > 屏幕锁定 > 无
6.在设备上启用 USB 调试:设置 > 开发者选项 > USB 调试。
7.确保将时间设置为 12 小时格式:设置 > 日期和时间 > 使用 24 小时制 > 关闭
8.依次选择:设置 > 开发者选项 > 不锁定屏幕 > 开启
9.依次选择:设置 > 开发者选项 > 允许模拟位置 > 开启
10.依次选择:设置 > 开发者选项 > 通过 USB 验证应用 > 关闭
11.启动浏览器并关闭任何启动/设置屏幕。
12.使用 USB 数据线连接用于测试设备的台式机
13.设置-显示-睡眠 > 设置成30分钟或者never
14.插入8G的T卡(class 10等级),将T卡设置成内部存储
15.将 CTS 媒体文件复制到设备上
jl@jl:~/workspaces/cts/cts_media1.4$ ./copy_images.sh -s xxx;./copy_media.sh -s xxx
Ubuntu端测试:使用cts包

  1. jl@jl:~/workspaces/cts$ cd cts-8.1_r7/android-cts/tools/
  2. jl@jl:~/workspaces/cts/cts-8.1_r7/android-cts/tools$ ./cts-tradefed
  3. 全跑:cts-tf > run cts -s 0180627163608 (0180627163608 是SN号 adb devices可以查看)
  4. 复测:run cts -s xxx --retry n (n是之前跑过的结果序号,通过 “l r”命令可以查看)
  5. 测试一个指定的单项:
    run cts -s xx -m CtsCameraTestCases -t android.hardware.cts.CameraTest#testVideoSnapshot
  6. 测试一个指定的模块:run cts -s 0180627163608 -m CtsCameraTestCases

3.5.3测试GTS
Ubuntu端要求:能翻墙,使用gts包
手机端设置:使用release软件
不用T卡、不用拷贝媒体文件、需要烧googlekey、其余和CTS一样
Ubuntu端测试:
1.jl@jl:~/workspaces/cts$ cd gts-6.0_r1/android-gts/tools/
2.jl@jl:~/workspaces/cts/gts-6.0_r1/android-gts/tools$ ./gts-tradefed
3.全跑run gts -s xxx --ignore-business-logic-failure
4.复测run retry -s 0180627163608 --retry 1 --ignore-business-logic-failure
5.单跑run gts -s xxx -m xxx -t xxx
GTS中会有两个googlekey的测试项,如果没有烧googlekey,则失败

3.5.3测试CTSV
使用release软件
ctsV需要将工具包中的CtsVerifier.apk解压出来,并安装到手机,然后手动测试
CTSV是交给测试工程师去测的
但是我们软件再给测试工程师测试之前,要求先自测以下常见失败项:
①FOV–见ctsV文件夹的说明
大致步骤:
a首先明确摄像头sensoe型号,并从摄像头技术手册查出参数Pixel Size值
格科sensor可在其官网http://www.gcoreinc.com/product1/查询。
思比科sensor可在其官网http://www.superpix.com.cn/cn/About1.asp?ID=31 查询。

这里Pixel Size为L×H=1.12um*1.12um
后摄:
const sensor_fov_tab_t back_sensor_fov_tab[]

前摄:
const sensor_fov_tab_t front_sensor_fov_tab[]

—时间关系 先整理到这里,后续补充

②音频
③相机播放()

测试的注意事项
a.需要指定设备SN号
B.如果出现电脑卡顿,先将手机端口拔出,3分钟后会自动断开并生成报告

3.5.4测试VTS
Ubuntu端:使用VTS包
手机端环境:使用release软件+google镜像
a.解锁并烧googleimage
b.不需要媒体文件
c.不需要T卡
d.需要连接wifi
其余设置和CTS一致
jl@jl:~/workspaces/cts/vts-4766758/android-vts/tools$ ./vts-tradefed
完全测试指令:run vts –s device ID
Retry fail项指令:run vts –s deivce ID –-retry session ID
解锁和烧google镜像的步骤:
将VTS&GSI\fastboot文件拷贝到Ubuntu,将镜像文件也拷贝到这个目录,命名为system.img
连接到电脑上,打开usb调试,输入 adb -s xxxxxxxx reboot bootloader
a. sudo ./fastboot oem get_identifier_token 命令获取android 设备号
b. ./signidentifier_unlockbootloader.sh device_sn rsa4096_vbmeta.pem signature_file 生成设备号签名值
device_sn 为步骤 a 获取设备号
rsa4096_vbmeta.pem 为 vbmeta 镜像私钥
c. sudo ./fastboot flashing unlock_bootloader signature_file 命令解锁设备
用户根据相应提示使用“volume down”键进行解锁确认
d.采用分段下载system.img
sudo ./fastboot flash -S 100m system system.img
e.下载完后,输入命令 sudo fastboot reboot 重启手机
注意:reboot之后需要格式data空间才能正常开机
f. 设备解锁后,可使用 sudo ./fastboot flashing lock_bootloader 命令重新锁定设备

注意:签名文件要和平台的对应
vendor/sprd/proprietories-source/packimage_scripts/signimage/sprd/config/rsa4096_vbmeta.pem

3.5.5测试GSI
Ubuntu端:使用VTS包–GSI和VTS共用一个包
手机端环境:使用release软件+google镜像
1.解锁并烧googleimage
2.其余设置和CTS一致:
需要媒体文件、需要T卡、需要连接wifi
步骤:
jl@jl:~/workspaces/cts/vts-4766758/android-vts/tools$ ./vts-tradefed
全跑:run cts-on-gsi -s 0181009085851
复测:run cts-on-gsi -s 0181009085851 --retry 6

3.5.6测试STS
Ubuntu端:sts工具包
手机端环境:使用userdebug软件
不需要wifi、不需要T卡、不需要媒体文件
sts是8月份新增的测试报告,专门测试安全补丁的,Android 8.1 STS需要使用debug版本测试,

全测:run sts-engbuild -s xxxxxxx 测试时间大概是3个半小时
重测!
1.删除报告里面的文件checksum.data
2.run sts-engbuild -s 51928180576609 --retry 0

3.5.7性能测试
两种方式:
①ubuntu脚本
jl@jl:~/workspaces/cts/go_performance$ ./main.sh
②Windows使用ctest工具
安装cTestClient_3.1.26—可能会抢占adb端口
执行startClient.bat
登录账号:jliang 密码:123456

点击后会在浏览器端打开测试网页,建议用火狐浏览器

建议:使用windows端的ctest工具来跑,原因:
在Ubuntu端试过,没跑出来过完整的报告,会中断!

3.5.8 BTS测试
BTS(Build Test Suites) 6月份开始强制执行,提交image给3PL,3PL上传给Google,一天左右出结果。
①扫描是否包含PHA恶意软件
②检查Security Patch合入情况
③人工抽查backdoor
我们不需要做任何处理,我们pac给客户之后,客户会提供给3PL的!

4.软件规范
参照:软件规范\GMSExpressGuide_V6.0.pdf

目前7731E都是过GMS Express Plus,也叫GMS Express +
GMS Express是谷歌认证的快速通道,周期短
以前还有一种 Clean UX,但从2018/3/31号开始摒弃

7731E平台都是做Go版本的(RAM<2GB),所以我们可以参照GMSExpressGuide_V4.0.pdf文档的GMS Express Plus for Go部分
(文档里面的三种方式主要区别在于是否用谷歌应用覆盖平台应用、是否使用Go版本应用)

GMS Express+ for Go,以下是硬性软件要求:
4.1开机logo
参照Google Bootup Requirement_20180430.pdf
在之前的摸底确认表里面有一项:3pl是否确认过开机logo
我们可以通过文档,排除显而易见的错误logo,我们要提醒客户让3PL确认logo是否OK!

Go版本有3种样式的 power by android go edition

有两种布局是OK的:第一种是带客户logo的,要求logo放中间,android放底部,且logo宽度必须大于android;第二种是不带客户logo的,必须android放中间

4.2待机界面的布局

搜索框、Google文件夹、Play Store都是固定位置;Chrome必须放热区那一排,可以调整

Google文件夹内容(512M的可以不内置Maps Go)
(正常应该用YouTubeGo 版本,除非是出美国)

4.3属性配置
①project.sh
Product Model(“ro.product.model”)==HX_WW6_PRODUCT_MODEL
Brand Name(“ro.product.brand”)===HX_WW6_PRODUCT_BRAND
manufacturer(“ro.product.manufacturer”)===HX_WW6_PRODUCT_MANUFACTURER
②BoardConfig.mk
Product Name(“ro.product.name”)===BOARD_WW6_RO_PRODUCT_NAME
Device Name(“ro.product.device”)===BOARD_WW6_RO_PRODUCT_DEVICE
Board Name(“ro.product.board”)====BOARD_WW6_RO_PRODUCT_BOARD
③sp7731e_xxx_project.mk
PRODUCT_PROPERTY_OVERRIDES +=
ro.com.google.clientidbase=android-fortuneship(举例)
④gms_xxx.mk配置gms_express_plus_feature

4.4 Apk覆盖
可以在google_zy\apps\路径下看到,平台已经做好了,内置其中的apk就会覆盖对应apk
①GoogleSearchGo覆盖QuickSearchBox GoogleSearch GoogleQuickSearchBox VoiceSearch SprdQuickSearchBox
②GmailGo覆盖Email Exchange2 Gmail2 SprdEmail Email2
③MessagesGo覆盖messaging
④LatinImeGoogleGo覆盖LatinIME TouchPalGlobal
⑤Chrome覆盖Browser Browser2 SprdBrowser
⑥FilesGo覆盖FileExplorer FileExplorerDRMAddon

4.5测试apk和feature是否正确
文档中列出来的adb项,都必须为期望的值
参看pdf文档,后续整理一个txt文件出来

adb shell pm list features |grep GMSEXPRESS_PLUS_BUILD需要有对应的feature

按键功能要求:
长按Home启动谷歌智能助手(默认如此)
短按Menu最近运行WW6_SHORT_MENU_ENTER_RECENT := true
frameworks\base\data\keyboards\Generic.kl
key 139 APP_SWITCH
5.已过GMS认证的项目参考
0021539: 财富十三部
sp7731e_FS280M60_C10_CF13_MS408_E465GO_HYUNDAI_Central_America_32x4_G4W125_FWVGA.sh

值得注意的是,这个项目是出美国的,有特殊要求:YouTube不能使用go版本,其他地区,目前没有特殊要求!

MR SMR后续补充

猜你喜欢

转载自blog.csdn.net/baidu_41672657/article/details/83574607