预置GMS包
-
概要
许多客户有对接国外的客户的需要,因此有些国外的客户会要求提供一些谷歌的服务。如Google Play,Google提供的Youtube。需要使用这些服务的话,需要安装一个GMS包。(GMS,Google Mobile Service)那么这份文档对如何预置GMS包进行相关指导。
-
操作步骤
预置GMS包过程并不复杂,需要准备好相对应的GMS包,这里以在Android 4.4 KitKat 上预置GMS包来举例说明。其他版本上的操作略有不同,但是核心思想还是不变:把正确的东西放在正确的位置上。
-
首先去打开GMS的编译宏开关。以我司的MTK6582代码为例,需要首先去如下路径打开编译开关:
${源码目录}/mediatek/config/sanstar82_cwet_kk/ProjectConfig.mk 打开该文件,找到编译宏BUILD_GMS,将其置为yes.BUILD_GMS = yes
-
修改编译预置条件
修改位于 ${源码目录}/build/target/product/common.mk:
PRODUCT_PROPERTY_OVERRIDES += \
ro.com.google.clientidbase=alps-$(TARGET_PRODUCT)-{country} \
ro.com.google.clientidbase.ms=alps-$(TARGET_PRODUCT)-{country}
ro.com.google.clientidbase.yt=alps-$(TARGET_PRODUCT)-{country}
ro.com.google.clientidbase.am=alps-$(TARGET_PRODUCT)-{country}
ro.com.google.clientidbase.gmm=alps-$(TARGET_PRODUCT)-{country}
将如上四行删去或者注释掉即可
- Webview冲突解决方案
(1)将GMS编译文档中的以下宏置为no:
/vendor/google/products/gms.mk
PRODUCT_PREBUILT_WEBVIEWCHROMIUM = no
将GMS包中以下资源删除(或者修改为不编译进系统):
删除 /vendor/google/paks/Android.mk
删除 /vendor/google/frameworks/Android.mk中android_webview_java相关build语句
删除 /vendor/google/libs/Android.mk中libwebviewchromium.so相关build语句
同时,将/vendor/google/apps/Android.mk中的以下语句注释掉:
include $(CLEAR_VARS)
LOCAL_MODULE := GoogleCamera
LOCAL_MODULE_TAGS := optional
LOCAL_OVERRIDES_PACKAGES := Camera2
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_REQUIRED_MODULES := libgcam \
libgcam_swig_jni \
libjni_eglfence \
libjni_filtershow_filters \
libjni_mosaic \
libjni_tinyplanet \
libjpeg \
liblightcycle \
libnativehelper_compat
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
以及
include $(CLEAR_VARS)
LOCAL_MODULE := GalleryGoogle
LOCAL_MODULE_TAGS := optional
LOCAL_OVERRIDES_PACKAGES := Gallery2
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
将\google\products\gms.mk
PRODUCT_PACKAGES += \下面的
GoogleCamera
GalleryGoogle
注释掉即可。完成上述操作之后进行编译 即可将GMS包预置进去。