GMS 包配置说明

\build\target\product\generic_no_telephony.mk 

添加 

$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk)   --原有位置下面加下面这行
$(call inherit-product, vendor/google/products/gms.mk) 


build\tools\buildinfo.sh 

添加4个属性




L 、M版本  GMS包预制

Google为了简化GMS的预置流程,对Android源代码和GMS做了相应的处理
所以L版本GMS预置比较简单,只需要把GMS需要预置内容放置在 

1.在alps/vendor/google/下创建Android.mk 文件

文件夹下(google文件夹需要自行创建) 
  
然后检查vendor/google/下是否存在Android.mk文件,若没有此Android.mk,请新建一个,并把以下内容拷贝进去: 
ifdef BUILD_GMS 
ifeq ($(strip $(BUILD_GMS)), yes) 
include $(call all-subdir-makefiles) 
endif 
endif 
  

2.检查vendor/google/以下两个文件夹apps/ 和 frameworks/

第一层目录下是否存在Android.mk
如果不存在,也各新建一个,将以下内容拷贝进去:
include $(call all-subdir-makefiles)
 
最后在build的时候带入"BUILD_GMS=yes",如:
source build/envsetup.sh && lunch full_<YourProjectName>-user && source ./mbldenv.sh && BUILD_GMS=yes make -j24
 
 
若提示找不到mbldenv.sh,则使用如下命令:
source build/envsetup.sh && lunch full_<YourProjectName>-user && BUILD_GMS=yes make -j24   

注意,源代码的build文件中会有判断 BUILD_GMS 的值做不同build行为的语句,请不要修改,否则会造成GMS预置冲突或者预置不完整问题


KK版本GMS包预制方法

1.打开GMS编译开关

/mediatek/config/common/ProjectConfig.mk 
BUILD_GMS = yes 
  

2.修改GMS预置条件

/build/target/product/common.mk

将以下内容(如果有出入,请以修改后为标准):

#--GMS feature----- 
ifeq ($(strip $(BUILD_GMS)), yes) 
$(call inherit-product-if-exists, vendor/google/products/gms.mk) 
PRODUCT_PROPERTY_OVERRIDES += \ 
>>>> ORIGINAL //ALPS_SW/FPB/KK1.MP1.FPB/alps/build/target/product/common.mk#1 
==== THEIRS //ALPS_SW/FPB/KK1.MP1.FPB/alps/build/target/product/common.mk#8 
    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} 
==== YOURS //ws_wcpadmin_3010_bj/ALPS_SW/MP/KK1.MP1/alps/build/target/product/common.mk 
      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} 
<<<< 
endif 
  
修改为=>  
  
#--GMS feature----- 
ifeq ($(strip $(BUILD_GMS)), yes) 
$(call inherit-product-if-exists, vendor/google/products/gms.mk)  
PRODUCT_PROPERTY_OVERRIDES += \ 
     ro.com.google.clientidbase=alps-$(TARGET_PRODUCT)-{country}  
endif 
  
ps: 以上内容(第2步骤)包含调用gms.mk,以及设置client id 
如果贵司此项目不需要设置client id,请将其中的 
PRODUCT_PROPERTY_OVERRIDES += \
    ro.com.google.clientidbase=alps-$(TARGET_PRODUCT)-{country}
 
去掉; 
如果需要预置,则将“alps-$(TARGET_PRODUCT)”修改为对应的client id值; 
字段"-{country}"的作用是,根据插入的sim卡自适应显示对应的国家码,如果此项目不需要client id根据mcc自适应,则将字段"-{country}"去掉即可 
  

3. webview实现冲突解决方案

由于Google对GMS的WebView检测策略的改变,所以如果预置GMS必须预置其中的WebViewGoogle,这样将会把默认的webview覆盖掉 
具体预置操作方法请参考[FAQ11120] KK版本GMS包Chromium相关文件合入注意事项_FAQ 
  

4. 如果预置以下所列GMS应用,需要给它们获取系统权限

ConfigUpdater.apk 

GmsCore.apk 

GoogleBackupTransport.apk 

GoogleFeedback.apk 

GoogleLoginService.apk

GoogleOneTimeInitializer.apk 

GooglePartnerSetup.apk

GoogleServicesFramework.apk 

Phonesky.apk

SetupWizard.apk 

Velvet.apk

请在/vendor/google/apps/Android.mk
每一个应用对应的build语句添加:
LOCAL_PRIVILEGED_MODULE := true
 
  

5. 如果预置GMS中的Videos.apk,则将/mediatek/packages/apps/VideoPlayer/Android.mk删除

  

6.lib库重命名

frameworks/support/renderscript/v8/rs_support/Android.mk:     libRSSupport -> libRSSupport_old (2 places)  
frameworks/support/renderscript/v8/jni/Android.mk:                    librsjni -> librsjni_old and libRSSupport -> libRSSupport_old (2 places)
libnativehelper/Android.mk:                                                              libnativehelper_compat -> libnativehelper_compat_old  
  
ps: 第6步骤的修改,如果您发现在原生code中,这些库的修改已经包含在 
ifeq ($(strip $(BUILD_GMS)), yes) 
endif 
中,可以不再修改 
  

7. 由于兼容性问题,请不要预置GoogleCamera.apk和GalleryGoogle.apk:

7.1 将\google\libs\Android.mk中的以下内容注释掉:
include $(CLEAR_VARS) 
LOCAL_PREBUILT_LIBS := libgcam.so \ 
                       libgcam_swig_jni.so \ 
                       libjni_eglfence.so \ 
                       libjni_filtershow_filters.so \ 
                       libjni_mosaic.so \ 
                       libjni_tinyplanet.so \ 
                       libjpeg.so \ 
                       liblightcycle.so \ 
                       libnativehelper_compat.so 
LOCAL_MODULE_TAGS := optional 
include $(BUILD_MULTI_PREBUILT) 
  
7.2 将\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) 
  
7.3 将\google\products\gms.mk
PRODUCT_PACKAGES += \下面的 
#     GoogleCamera \ 
#     GalleryGoogle \ 
注释掉 
  

ps: 以上内容(第7步骤)是把GoogleCamera、GalleryGoogle以及相关的lib库移除,



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值