gms包集成步骤:
(1) 需要下载对应gms,国内需要通过VPN下载。下载后解压,文件目录:partner_gms。下载时,最好核对一下匹配的android版本。
(2)依照路径打开gms.mk/gms_go.mk,如:partner_gms\products\gms.mk。确认需要将GMS集成的代码位置,例如:
# GMS home folder location
# Note: we cannot use $(my-dir) in this makefile
ANDROID_PARTNER_GMS_HOME := vendor/partner_gms
注:也就是集成路径默认在vendor下面,当然路径与路径命名也可以做修改。
(3)编译环境添加gms方法: 在
device/mediatek/common/device.mk 与
device/mediatek/system/common/device.mk (因我这是android 10.0版本所以还得在此文件)内添加,
# GMS interface
ifdef BUILD_GMS
ifeq ($(strip $(BUILD_GMS)), yes)
ifeq ($(strip $(BUILD_AGO_GMS)), yes)
$(call inherit-product-if-exists, vendor/partner_gms/products/gms_go.mk)
else
$(call inherit-product-if-exists, vendor/partner_gms/products/gms.mk)
endif
endif
endif
(4)添加了GMS编译后,就得定义BUILD_GMS属性,在以下两文件可定义
device/mediateksample/xxxx/ProjectConfig.mk 文件内添加 BUILD_GMS = yes,
因版本是android10.0所在还得打开device/mediateksample/xxxx/ 文件夹下的full_xxxx .mk文件 看此文件的属性
SYS_TARGET_PROJECT := mssi_t_32_cn
然后再打开device/mediatek/system/mssi_t_32_cn/SystemConfig.mk文件添加 BUILD_GMS = yes属性
(5)android 10.0 版本添加GMS包需要同时加入mainline代码
如未加入此文件夹 编译会出现如下异常:
此文件夹可以去google官网下载,
(6)因为系统内原本是自带了各类APP,而加入GMS包后就造成了很多APP重复,系统内同名APP,而packageinstaller
此APP系统内是只允许有一个的,如果系统内同时存在多个packageinstaller则会造成无法开机,一直卡在开机时Android界面,所以需要把开vendor\partner_gms\apps\GooglePackageInstaller\Android.mk文件
添加入属性: LOCAL_OVERRIDES_PACKAGES := PackageInstaller
MtkPackageInstaller 来避免出现两个一样的apk,
其它同名APP也是一样,打开对应APP的Android.mk文件添加此属性