S版本编译后生成的apkout_sys/目录

在配置文件加宏ProjectConfig.mk

#GMSBUILD_GMS = yesBUILD_AGO_GMS = noGAPPS_PACKAGE_SetupWizard = no  //谷歌开机向导GAPPS_PACKAGE_Chrome = noGAPPS_PACKAGE_Drive = noGAPPS_PACKAGE_Gmail2 = noGAPPS_PACKAGE_Duo = noGAPPS_PACKAGE_Maps = noGAPPS_PACKAGE_Music2 = noGAPPS_PACKAGE_Photos = noGAPPS_PACKAGE_Velvet = noGAPPS_PACKAGE_Videos = noGAPPS_PACKAGE_YouTube = noGAPPS_PACKAGE_Hangouts = noGAPPS_PACKAGE_CarrierServices = noGAPPS_PACKAGE_GoogleContacts = noGAPPS_PACKAGE_GoogleDialer = noGAPPS_PACKAGE_Messages = noGAPPS_PACKAGE_CalendarGoogle = noGAPPS_PACKAGE_LatinImeGoogle = noGAPPS_PACKAGE_SearchLauncherQuickStep = noGAPPS_PACKAGE_FilesGoogle = noGAPPS_PACKAGE_YTMusic = noGAPPS_PACKAGE_AssistantShell = no

//上面的这些宏控都是可以显示在launcher上的应用,当然不包括核心应用,比如谷歌商店也显示桌面但是没有宏控,这些宏控是在vendor/google/products/gms.mk

但也不一定会编译到这个路径,具体路径需要看配置!

vendor/google/gms.mk 看具体走了哪个gms.mk

可以看到里面有个宏控配值ifeq ($(strip $(EEA_TYPE)), type1)

EEA_TYPE这个宏控赋什么值,就调用哪个,源码是默认没定义的话是走else的那就是

else$(call inherit-product-if-exists, vendor/google/products/gms.mk)endif

如果赋值了比如说

else ifeq ($(strip $(EEA_TYPE)), eea_v2)$(call inherit-product-if-exists, vendor/google/products/gms_eea_v2_type4c.mk)

那就是走vendor/google/products/gms_eea_v2_type4c.mk

这个宏控配置在ProjectConfig.mk可加上

EEA_TYPE = eea_v2,这种类型是过欧盟需要的

如果要增加或删除应用,就到对应的mk里面改

override/vendor/google/products/gms_eea_v2_type4c.mk

这个里面首句引用了

$(call inherit-product, vendor/google/products/eea_common.mk)

所以vendor/google/products/eea_common.mk这里也编译到了,两个文件都可以改

GMS_PRODUCT_PACKAGES += \+    sysconfig_gks \+    GoogleKidsSpace \+    YouTubeKids \+    Books \

下面三个应用新版的GMS认证需要加上,第一个十Google Kids Space的feture,也需要打开,adb shell "cmd package list features | grep -c KIDS_HOME_EXPERIENCE" 需要为1,

根据KIDS_HOME_EXPERIENCE 搜到在etc/sysconfig/gks.xml定义,然后在etc/sysconfig/Android.bp引用,名字就是sysconfig_gks,就相当于是个应用了

删除一些谷歌应用,有些可以overrideLOCAL_OVERRIDES_PACKAGES :=,有些是谷歌核心应用就无法被override

vendor/google/products/gms.mk

# GMS mandatory core packages(20)$(call inherit-product, build/target/product/product_launched_with_p.mk)GMS_PRODUCT_PACKAGES += \

这里面就是谷歌核心应用,这些要删除override就不生效,只能删除mk文件内容让它无法编译主要是用了inherit-product这编译模式,里面还有个开机向导虽然也包含在里面也是核心应用,但是重新定义了编译模式,所以可以通过宏控关掉,应该也可以override

$(call gapps-install-modules-vars,TARGET_BUILD_VARIANT,user, \SetupWizard \) \

  从注释中可以看到,inherit-product 函数除了会执行通过其参数传入的 Makefile 文件之外,还会额外做 3 件事:

    1、继承通过参数传入的 Makefile 文件中的所有变量;

    2、在 .INHERITS_FROM 变量中记录下这些继承关系;

    3、在 ALL_PRODUCTS 变量中标识出当前操作的 Makefile 文件已经被访问过了(以免重复访问)。

include 则只会执行 Makefile 文件,不会进行上方所述的 3 个操作。

移除GMS包,去除谷歌所有应用及服务:

BUILD_GMS = noBUILD_AGO_GMS= noGAPPS_BUILD =

这三个宏都要加,注意,尤其是第三个,一定要写空

原理:

类似于下面的文件。编译若报错会出现路径,下面这个不是报错原因,只是个例子

vendor/google/ Android.mk

ifdef BUILD_GMSifneq ($(filter fuex,$(GAPPS_BUILD)),)ifeq ($(strip $(BUILD_GMS)), yes)ifneq ($(strip $(BUILD_AGO_GMS)), yes)

第二步,如果GAPPS_BUILD不为空(ifneq否定),那么就往下走,所以为空之后后面就不走了,报错的文件可能接下来走的话就有问题

加入gms包后连上网会有认证弹通知,若未锁fingerprint就会一直弹一直弹。如果需要不弹就是已认证,可以锁其他项目的

主要是三个宏

FREEME_PRODUCT_INFO_BRAND = YSFFREEME_PRODUCT_INFO_NAME = Rugged_tablet_EEAFREEME_PRODUCT_INFO_DEVICE = Rugged_tablet

上面只能保证这个名字过认证后不弹窗,都在ProjectConfig.mk

真正锁fingerprint 得加上

# lock fingerprintBUILD_FINGERPRINT = YSF/Rugged_tablet_EEA/Rugged_tablet:12/SP1A.210812.016/1667361081:user/release-keysBUILD_NUMBER = 1667361081     PLATFORM_SECURITY_PATCH = 2022-11-01    这个得问下跑测的同事具体的日期

加入编译GMS包,增加或去除谷歌相关GMS应用,移除GMS包,取消刷机后的认证弹窗通知,锁fingerprint。相关推荐

  1. android10官方刷机包下载,Android 11 喜讯!小米 10 率先尝鲜,官方刷机包发布下载...

    原标题:Android 11 喜讯!小米 10 率先尝鲜,官方刷机包发布下载 6月15日消息,小米 MIUI 官方今天宣布 Android 11 Beta1 来了,小米 10 系列手机率先尝鲜体验,M ...

  2. 一加3t刷机后还卡_一加3T刷机包

    详情 一加3T刷机包是一款实用性和功能性都十分不错的一加手机刷机辅助工具,这款软件的操作更流畅,全程指引能让用户更加便捷的完成刷机操作,这款软件同样为用户提供了多样的功能能够满足你日常遇到问题的解决, ...

  3. 小米10谷歌连携失败_Android 11 喜讯!小米 10 率先尝鲜,官方刷机包发布下载

    6月15日消息,小米MIUI官方今天宣布Android11Beta1来了,小米10系列手机率先尝鲜体验,MIUI官方还表示"欢迎开发者进行体验",基于Android11Beta1底 ...

  4. 下载AOSP源码编译、调试、刷机

    一.准备工作 系统最好是Linux或者mac OS(本文基于Ubuntu). Ubuntu设置永不休眠,在setting中搜索power.blank-screen选择never. 一块大一点儿的硬盘, ...

  5. 360 os3.0 android7.1,【360 N6】360OS安卓7.1系统V3.0.070付费纯净版ROOT刷机包

    < 360 N6刷机包360OS系统V3.0.070付费纯净版详细信息: 适用机型:360 N6,QK1707-A01 安卓版本:安卓7.1 系统类型:官方修改系统,付费纯净版 版本信息:V3. ...

  6. 小米M2 M2S刷机包电信版/AOSB/4.4.4/归属地/分屏/稳定版/截图

    ·ROM介绍 刷机后请您到拨号器-设置-后台来电,取消勾选后台来电. 本版本采用秋大内核适配,已修复来电未知和锁屏运营商等问题,完美支持电信卡,电信稳定3G,在此感谢秋大和龙猪.加了通话录音,但是发现 ...

  7. 华为b199Android版本,华为B199刷机包 MIUI8安卓6.0插桩适配ROM 7.4.5版

    1.去除关于手机界面系统更新按钮 2.更新锁屏画报软件; 3.添加FM; 4.添加屏幕录像; 5.添加CM13相机(支持照片存储到sd卡及滤镜功能,当然miui相机也在,看自己需求); 6.可从上一版 ...

  8. 三星ODIN刷机包的修改

    SunnyOK系列讲座索引 [第一讲]如何用Odin刷机 - 新手必读 http://bbs.gfan.com/android-1653492-1-1.html [第二讲]I897卡刷或CWM刷机教程 ...

  9. 创维盒子T1-H2903_1+8G_安卓4.4.2_当贝桌面-刷机固件包

    创维盒子T1-H2903_1+8G_安卓4.4.2_当贝桌面-刷机固件包 固件特点: 1.合并所有ODEX,极度精简,获取ROOT权限(默认授权): 2.默认为第三方桌面: 3.去除系统升级,增加安掉 ...

最新文章

  1. java 获取init参数,Java如何读取servlet init参数?
  2. php 打印mysql错误日志_PHP error_log()函数处理错误日志
  3. 陈曦:超低延迟下的实时合唱体验升级
  4. linux arm ffmpeg configure文件,ffmpeg库的交叉编译记录
  5. 数据传输服务 DTS > 数据迁移 > 从自建数据库迁移至阿里云 > 源库为MySQL > 从自建MySQL迁移至RDS MySQL
  6. Lua-pb 升级到Lua5.3
  7. java中何时不能实例_Java对象实例是何时被创建
  8. 【技术分享】H5小游戏开发入门指南
  9. win7 计算机 工具,win7小工具
  10. 全球五十家知名传感器制造商分布盘点、特点分析
  11. 基于LSM和BLP的IPC进程通信模型
  12. JS--JavaScript数值计算与类型转换详解
  13. 51单片机步进电机c语言程序,51单片机的步进电机c语言驱动程序
  14. 长沙市取消职称英语和计算机,哪些城市已取消职称英语考试?
  15. linux java模拟器_在Android模拟器和Ubuntu上测试Linux驱动
  16. 《稀缺》塞德希尔·穆来纳森 / 埃尔德·沙菲尔
  17. 【ubuntu】禁用IP和端口
  18. Codeforces Edu Hacking
  19. Shell循环语句(for、while、until)及echo、IFS
  20. ARM嵌入式体系架构(理论篇)

热门文章

  1. 游戏伤害计算机,阴阳师:输出和防御之间的各种计算,看完就能明白游戏的伤害机制...
  2. ZOJ:Z1085 珠心算测验(加强版)
  3. 如何解决爬虫爬取的不是高清图
  4. What is Comunion 2022?
  5. 现在还能炒黄金吗,黄金市场有哪些机遇与挑战?
  6. arp miss攻击_93交换机出现大量arp miss attack攻击,网关都不通,二层无法封装
  7. 网络起源--计算机网络
  8. 实现一个函数判断year是不是闰年。
  9. 每日一解 电话号码的字母组合
  10. 文件搜索引擎FileSearch