再谈谷歌GMS认证之Android 13

写在前面的话

2023年来到一个新的公司,传说中的做互联网金融即将上市的高大上公司。
在这里插入图片描述

入职后才发现就是做pos机设备的一个小厂
在这里插入图片描述

哎,什么命啊!
在这里插入图片描述

工作和手机开发的工作重合度可以达到95%以上,我不想做手机,偏偏又干上了老本行了。
来吧,兄弟,开始你的新公司的工作旅程吧。

慢着,差点忘了介绍一下我的一个兄弟,非常重要的难兄难弟。
在这里插入图片描述

我们叫他x吧,x,武汉大学毕业,从业10+年手机开发,第二次入职此公司,和我同一天入职。

入职后,我负责一个S项目,他负责一个O项目。

公司原来系统组大概有个20来个人吧,在做一个T项目。今年疫情结束了,老板这几年做pos机听说挣了大钱,所以准备大干一场,目标三年上市。今年直接开了三个项目,一个是我负责的一个S项目,一个是x负责的一个O项目,还有一个新项目。

项目数由一到三,工作量增加到了三倍,那肯定要招兵买马,hr给力,非常给力,多招了二个人,一个我,一个x。
可以了,人员已经够多了的了,招人不要花钱了,如果你们活干不完,不会加班吗,996,懂不?
程序员嘛,都是一帮贱货,一定要好好压榨。
牛马们,好好干,老板明年给你们再娶个老板娘。
在这里插入图片描述

然后,我先做我负责的S项目,当我把需求移植的差不多后,老大和我说公司现在有一个工程模式mmi没有人负责,你来做吧。好吧,我就做工程模式mmi。当我把工程模式mmi做的差不多时,老大和我说现x兄弟负责的O项目,GMS认证不顺利,你来做吧。好吧,那我就接着做GMS认证吧。

这就是我入职这个公司负责GMS的由来。

可以看到,这个公司真是的人员配置严重不足,这种mmi工程模式,GMS认证,都是需要有专门的同事来负责的,并且每个都要求还有点高,而不是临时那里没有人就移一个人去。

哎,我在以前的公司负责过几年高通项目的GMS认证,我知道这个工作的恐怖,最后还是接到了这个工作。
无奈ing
在这里插入图片描述

其实x兄弟和我的工作状态也是一模一样,什么非常苦逼,什么恶心的活都是要一个人做.
包括这个GMS认证,主要是我们二个人做的。

GMS认证,这个工作的工作量特别大,特别是恶心,许多公司是有一个工位的工程师来专门追踪,处理这些认证的问题。而这个工位的工作量,我和x兄弟就这样分担了这些工作。

目的

这篇文章的目的:
不是指导如何来解决gms认证中那个失败项,而是可以有这样一个GMS认证纲领性的文章,一个新人可以依靠这篇文章来整体把握GMS认证,从而来完成GMS认证。

GMS认证(android 13版本)

这篇文章,主要是基于android 13版本来做GMS认证!

GMS认证的整体测试项

报告日期软件版本号CTS–userCTS verifier–userGTS–userGTS verifier–userVTS–user版本刷GSI img和boot-debug.imgGSI–user版本刷GSI img)STS–userdebugCDD–userdebugapts-go GO版本userdebug
2023.11.11v1.0PASS/FailPASS/FailPASS/FailPASS/FailPASS/FailPASS/FailPASS/FailPASS/FailPASS/Fail

GMS认证的各个测试项的测试命令

测试项:测试命令:模块测试命令重测命令结果时间备注
CTSrun cts --shard-count 2 -s 0123456789ABCDEF -s 0123456789ABCDEArun cts -m *** -t ***run retry -r idtest_result_failures_suite.html,test_result.html32 cpu,4台机器,36小时使用user版本
CTS verifier手动测试手动测试手动测试手动测试,使用user版本
GTSrun gtsrun gts -m *** -t ***run retry -r idtest_result_failures_suite.html,test_result.html1台机器,12小时使用user版本
GTS verifier手动测试手动测试手动测试手动测试,使用user版本
STSrun sts-dynamic-full -s * 或 run sts-dynamic-incremental -s *run retry -r idtest_result_failures_suite.html,test_result.html64 cpu,4台机器,8个小时; 32 cpu,1台机器,6个小时使用userdebug版本 解压密码:sts
GSI在cts中:run cts-on-gsirun cts-on-gsi -m *** -t ***run retry -r idtest_result_failures_suite.html,test_result.html64 cpu 4台机器,24小时 ; 32 cpu 2台机器,24小时使用user版本,刷GSI img
VTSrun vtsrun vts -m *** -t ***run retry -r idtest_result_failures_suite.html,test_result.html64 cpu 1台机器,8小时; 32 cpu 1台机器,4小时使用user版本刷GSI img和boot-debug.img
CDD手动测试手动测试手动测试
APTSrun test/approval-go --fingerprint-swap DD/SDK-21D0/SDK-21D0:13/TP1A.220624.014/191:userdebug/release-keys -s *run test/approval-go --test-case app-start-cold-3p -s *summary.txt64 cpu 1台机器,8小时; 32 cpu 1台机器,4小时使用userdebug版本, help apts

其他常用的命令

常用命令
查看helphelp, help all ,help run, help list
测试32位或64位-a abi
多台设备测试:–shard-count X -s Sn1 -s Sn2 …-s Sn6(X 为同时测试设备数量,-s后面为测试设备的设备号)
查看当前目录下的测试结果l r
查看连接的机器信息l d
help aptsrun test/approval-go
help aptsrun test/approval-go --fingerprint-swap google/wembley/wembley:12/SP1A.210712.001/7539480:user/release
help aptsrun test/approval-go --test-case app-start-cold-3p

测试前的机器设置

CTS/GSI/GTS/VTS/APTS测试前设置:

1.机器写入SN number/IMEI number/BT/wifi mac地址
2.插入有效SIM卡,SIM卡必须先写入My phone number(设置–SIM卡需输入当前测试卡号码)
3.机器连接VPN wifi (高速稳定翻墙网络)
4.开启蓝牙(无需连接)
5.设置->显示->睡眠->设置时间大于30分钟或从不
6.设置->安全->屏幕锁定>设置为none
7.语言设置成英文(United states)
8.设置->开发者选项->开启USB调试
9.Settings/developer options/stay awake “on”
10.Settings/developer options/Verify apps over USB “off”
11.使用2A 数据线
12.开始测试前,按home键进入home screen
13.复制测试需要的视频:

android-cts-media-1.5$ ./copy_images.sh && ./copy_media.sh

MTK的机器:
14.settings/Developer options/打开Allow Mock Modem

STS:

只插SIM卡即可,不用做任何设置

gsi刷google system步骤

  1. Flash MTK user full load
  2. Boot to home screen
  3. Settings -> System -> Developer options -> OEM unlocking
  4. Reboot phone into fastboot mode by “adb reboot bootloader” or “press volume up key + power key”
  5. Connect phone to PC and then type following commands
  6. fastboot flashing unlock (press volumn up key)
  7. fastboot reboot fastboot
  8. fastboot flash system system.img (system.img is GSI.)
  9. fastboot reboot

我的刷机命令:

Settings -> System -> Developer options -> OEM unlocking
adb reboot bootloader
fastboot flashing unlock
press volume up key + power key
fastboot reboot fastboot
fastboot flash system /home/google_img/signed-gsi_arm-img-10505706sep32/system.img
fastboot reboot

vts刷google system,boot-debug.img步骤:

(out/target/product/${variant}/merged/boot-debug.img)

1设置->系统->开发者选项->OEM 解锁及 debug打开
2在GSI文件路径中打开终端(boot-debug.img放一个路径)
3.通过“adb -s 设备ID reboot bootloader"或”按音量上键+电源键”重启手机进入fastboot模式
4.fastboot flashing unlock (按音量上键)
5.fastboot reboot fastboot
6.fastboot flash boot boot-debug.img(请获取boot-debug.img from MTK load.)
内核为kernel-5.10的项目
fastboot flash vendor boot vendor boot-debugima (请从MTK load 中获取vendor boot debug.img。)
7. fastboot flash system system.img
8.fastboot reboot

我的刷机命令:

Settings -> System -> Developer options -> OEM unlocking
adb reboot bootloader
fastboot flashing unlock
press volume up key + power key
fastboot reboot fastboot
fastboot flash system /home/signed-gsi_arm-img-10505706sep32/system.img
fastboot flash boot /home/Z1018AA_GMS_SK210_V202309211835_user/boot-debug.img
fastboot reboot

需要更新ADB & FASTBOOT版本:

上面刷机system img 和boot img,需要更新adb 和fastboot 版本,方法为:

// 下载压缩包
wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
//解压到当前目录
unzip \platform-tools-latest-linux.zip
//复制到正确路径下
sudo cp platform-tools/adb /usr/bin/adb
//fastboot更新升级
sudo cp platform-tools/fastboot /usr/bin/fastboot

向谷歌提供的认证数据资料

1.二个刷机软件(user版本和userdebug版本)
2.boot-debug.img(位置:out/target/product/${variant}/merged/boot-debug.img)
3.告知googe需要刷机的googleimg是月份
4.提供各个测试项的测试通过报告(CTS,CTS verifier,GTS,GTS verifier,VTS,STS,gsi,apts-go)
5.CDD检测项需要通过

失败项解决的经验

1.基本drive only版本,将问题基本区分了android,芯片厂商(MTK,Qcom,etc),ODM三部分。
如果是android 和 芯片厂商(MTK,Qcom,etc)的问题,请求芯片厂商来解决(qcom提case,mtk提e-service)。

2.前面版本没有,后面版本新增的失败,归类为ODM修改导致的问题,请回溯版本解决。

3.MTK FAQ有许多失败项的解决方法,请查找。

4.查看测试的log

5.查看CTS 的源码,有的失败项可以看到其具体的测试流程,以便分析问题。

6.GTS的测试测试项,可以考虑反编译源码来分析问题。

7.咨询GMS认证的3pl实验室

写在最后面的话

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/152640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机基础知识54

ORM的介绍 # ORM是什么? 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(增、删、改、查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql、oracle…

Ubuntu20.0中安装Gradle

下载Gradle到temp文件夹 wget https://services.gradle.org/distributions/gradle-8.3-bin.zip -P /tmp 然后解压文件到/opt/gradle目录 sudo unzip -d /opt/gradle /tmp/gradle-8.3.zip 配置Gradle环境变量 接下来我们会创建一个gradle.sh文件来保存Gradle的环境变量 sudo…

ubuntu20.04蓝牙连接airpods

ubuntu20.04蓝牙连接airpods 解禁蓝牙安装blueman设置模式连接上没有声音的问题 解禁蓝牙 sudo rmmod btusb sleep 1 sudo modprobe btusb sudo /etc/init.d/bluetooth restart安装blueman sudo apt install blueman sudo apt-get install pulseaudio-module-bluetooth sudo …

『亚马逊云科技产品测评』活动征文|构建生态农场家禽系统

『亚马逊云科技产品测评』活动征文|构建生态农场家禽系统 授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 前…

VBA如何快速识别Excel单元格中的文本数字

Excel中一种非常特殊的数字,这些数字看似数字,其实是文本格式(下文简称为文本数字),在单元格的左上角会有一个绿色小三角作为标志,如B1:B3单元格。 在编程时为什么需要区分普通数字和文本数字呢&#xff…

SVG圆形 <circle>的示例代码

本专栏是汇集了一些HTML常常被遗忘的知识,这里算是温故而知新,往往这些零碎的知识点,在你开发中能起到炸惊效果。我们每个人都没有过目不忘,过久不忘的本事,就让这一点点知识慢慢渗透你的脑海。 本专栏的风格是力求简洁…

.NET 8.0 AOT 教程 和使用 和 .NET ORM 操作

NET AOT编译是一种.NET运行时的编译方式,它与传统的JIT编译方式不同。在传统的JIT编译中,.NET应用程序的代码在运行时才会被编译成本地机器码,而在AOT编译中,代码在运行之前就被提前编译成本地机器码。这样可以在代码运行的时候不…

键盘映射笔记

dumpkeys命令用于显示当前系统中定义的键盘映射表。它可以帮助用户查看和理解系统中的键盘布局和键盘映射规则。 当用户执行dumpkeys命令时,它会读取系统中的键盘映射表文件(通常是/etc/keymaps或/etc/console/boottime.kmap.gz),…

【C#二开业务冠邑】通过界面查看数据来源

前言 重构框架(CS【C#】转BS【Java】)时,突然发现公司的代码和数据库,有部分都没有写注释,嘎嘎,这不非常影响开发效率,于是乎,开始帮公司整理表结构和数据来源,也从而加…

3D全景视角,足不出户感知真实场景的魅力

近年来,随着科技的快速发展,普通的平面静态视角已经无法满足我们了,不管是视角框架的限制还是片面的环境展示,都不足以让我们深入了解场景环境。随着VR全景技术的日益成熟,3D全景技术的出现为我们提供了全新的视觉体验…

汽车标定技术--A2L格式分析

目录 1.A2L由来 2.A2L格式 2.1 PROJECT 2.2 MODULE中包含的内容 3. INCA和CANape兼容吗? 最近有朋友用Vector ASAP2Editor编译的A2L文件在INCA7.4中无法识别,我记得以前做的时候是可以识别的,难不成最近有什么变动吗?出于好…

Django 入门学习总结2 创建一个投票系统

通过学习,我们可以实现一个简单的投票系统。这个投票系统有两部分组成。 公共部分,公众可以查看和进行投票。管理员可以进行增加、删除、修改投票信息。 这里投票系统Python语言版本为3.10.13,Django Web框架版本为4.2.7。 投票系统的实现…

系列二、Lock接口

一、多线程编程模板 线程 操作 资源类 高内聚 低耦合 二、实现步骤 1、创建资源类 2、资源类里创建同步方法、同步代码块 三、12306卖票程序 3.1、synchronized实现 3.1.1、Ticket /*** Author : 一叶浮萍归大海* Date: 2023/11/20 8:54* …

试用无线调试器PowerDebugger小记

试用无线调试器PowerDebugger小记 文章目录 试用无线调试器PowerDebugger小记引言准备软硬件环境PowerDebugger 无线调试器EVB-YTM32B1LE0-Q64 开发板 开始调试小结参考文献 引言 多年前调试智能车时,抱着电脑连着小车在跑道上一边跑一边看数据的经历,让…

计算机毕业设计选题推荐-家庭理财微信小程序/安卓APP-项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

leetcode:504. 七进制数

一、题目: 链接: 504. 七进制数 - 力扣(LeetCode) 函数原型: char* convertToBase7(int num) 二、思路 本题要将十进制数转换为二进制数,只要将十进制num数模7再除7,直到num等于0 每次将模7的结…

hologres 索引与查询优化

hologres 优化部分 1 hologres 建表优化1.1 建表中的配置优化1.1 字典索引 dictionary_encoding_columns1.2 位图索引 bitmap_columns1.2.2 Bitmap和Clustering Key的区别 1.3 聚簇索引Clustering Key 1 hologres 建表优化 1.1 建表中的配置优化 根据 holo的 存储引擎部分的知…

【AI视野·今日Robot 机器人论文速览 第六十四期】Fri, 27 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Fri, 27 Oct 2023 Totally 27 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers 6-DoF Stability Field via Diffusion Models Authors Takuma Yoneda, Tianchong Jiang, Gregory Shakhnarovich, Matthew R. …

PostgreSQL数据库结合内网穿透实现公网远程连接

文章目录 前言1. 安装postgreSQL2. 本地连接postgreSQL3. Windows 安装 cpolar4. 配置postgreSQL公网地址5. 公网postgreSQL访问6. 固定连接公网地址7. postgreSQL固定地址连接测试 前言 PostgreSQL是一个功能非常强大的关系型数据库管理系统(RDBMS),下…

Python的os.path.join()详解

当你需要构建文件路径时,os.path.join() 是一个很有用的方法。这个方法会根据你的操作系统使用正确的路径分隔符(例如,在 Windows 上是反斜杠 \,在类 Unix 系统上是正斜杠 /)来连接路径中的各个部分。这样你就可以确保…