android 4.2安装GMS包

        自己的安卓平台在客户处测试时,有反馈Network Signal Info 这个apk无法安装,提示缺少共享库。通过在网上搜索,确认是少了GMS包的缘故。也就是得自己把add on属性的文件包添加到自己的工程中。步骤如下:

(1)从网上下载4.2的GMS包(可用网址http://goo.im/gapps/gapps-jb-20130812-signed.zip),可先用简单的打包方式来验证包内容是否可用。将包中的system\app\,system\etc\permissions\,system\framework\,system\lib\这些内容拷贝到映像生成文件中对应的目录下,执行打包,之后验证。该APK不能装的原因在于相应目录缺少:

system/framework com.google.android.maps.jar
system/etc/permissions com.google.android.maps.xml

通过后者脚本内容索引到jar包

(2)把GMS包添加到平台中。首先在vendor\下新建文件夹google\apps,在其中放入system\app\下的apk,并新建一个Android.mk,内容如下:

[html]  view plain copy
  1. LOCAL_PATH := $(call my-dir)  
  2.   
  3. include $(CLEAR_VARS)  
  4. LOCAL_MODULE :ChromeBookmarksSyncAdapter  
  5. LOCAL_SRC_FILES := $(LOCAL_MODULE).apk  
  6. LOCAL_MODULE_TAGS :optional  
  7. LOCAL_MODULE_CLASS :APPS  
  8. LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)  
  9. LOCAL_CERTIFICATE :PRESIGNED  
  10. include $(BUILD_PREBUILT)  
   其他若干apk均可仿照该格式。
(3)在google目录下建立一个Android.mk,内容如下:

[java]  view plain copy
  1. include $(call all-subdir-makefiles)  
(4)在项目工程对应的mk文件中,加上这个目录的索引,如下:

[java]  view plain copy
  1. include $(TOPDIR)vendor/google/products/gms.mk  
(5)新建目录google\products\,和一个gms.mk。该内容完成PRODUCT_PACKAGES的合并。大致如下:

[java]  view plain copy
  1. PRODUCT_PACKAGES += \  
  2.     ChromeBookmarksSyncAdapter  \  
  3.     ConfigUpdater   \  
  4.     GenieWidget   
   同时可以选择是否要导入新的设置向导流程,如下:

[java]  view plain copy
  1. PRODUCT_PROPERTY_OVERRIDES += \  
  2.     ro.setupwizard.mode=ENABLED   
(6)GMS包中的lib  jar  xml等文件,拷贝入vendor\xxxx\projectName\artifacts\out\target\product\projectName\system\对应的子目录即可。r 编译项目。

你可能感兴趣的:(Android,系统源码)