集成GMS 包比较简单,本来不准备写了,但是里面还是有点小小的坑,所以还是再项目结束的时候总结分享给大家哈
以下都是基于Android 12 平台,其实都一样,没啥大的区别
集成GMS 包,其实就是把Google 全家桶的apk 全部编译进去,这样一想是不是就简单了
下载GMS 包
安装包的目录是这个样子的,解压后将完整的partner_gms放到vendor 下 将文件包放到我们知道android 集成apk 是通过mk 文件集成的,我们看下
/vendor/partner_gms/products/gms.mk 里面已经能将所需要安装包都已经放好了,只需要把gms.mk 加入系统编译即可
MTK平台
因为不同区域加载的gms 包不一样,所以分开放
在device/mediatek/system/common/device.mk
$(warning "*************************BUILD_GMS************" $(BUILD_GMS))
ifeq ($(strip $(BUILD_GMS)), yes)
$(warning "*************************compile GMS start ************ ")
ifeq ($(GMS_AREA), GMS_GL)
$(call inherit-product-if-exists, vendor/partner_gms/products/gms.mk)
endif
ifeq ($(GMS_AREA), GMS_EEA)
$(call inherit-product-if-exists,
vendor/partner_gms/products/gms_eea_v2_type4c.mk)
endif
ifeq ($(GMS_AREA), GMS_TR)
$(call inherit-product-if-exists, vendor/partner_gms/products/gms.mk)
endif
ifeq ($(GMS_AREA), GMS_RU)
$(call inherit-product-if-exists, vendor/partner_gms/products/gms.mk)
endif
$(warning "*************************compile GMS end************ " $(GMS_AREA))
endif
可以看到想要编译,需要把 BUILD_GMS这个宏设置为yes
device/mediateksample/PROJECT_NAME/ProjectConfig.mk device/mediatek/system/mssi_t_64_cn/SystemConfig.mk
这两个里面BUILD_GMS这个宏设置为yes
不过这个一般是由公司scm添加,控制gms 版本,和no gms 版本
ps:$(warning "*************************BUILD_GMS************" $(BUILD_GMS)) 这个mk 文件加log 调试的方式,还是比较有用的
高通平台
存放GMS 包都是一样的,路径如下
LA.QSSI.12.0.R1/vendor/partner_gms
LA.QSSI.12.0.r1/device/qcom/qssi/qssi.mk
ifeq ($(BUILD_GMS), YES)
$(call inherit-product, vendor/partner_gms/products/gms.mk)
同样的,通过scm 设置宏控开关
编译刷机,桌面有youtuber,chrome 等,说明集成成功