Android预装apk

 预装APK到system/app目录

        注:APK名字不能含有中文、空格等特殊字符。

  1. 在 驱动路径/android/vendor/aw/public/prebuild/apk 创建一个目录存放对应的APK
  2. 将所需预装的APK放入该目录中
  3. 在该目录中创建 Android.mk文件,并编译
# 文件名
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := APK_MODULE_NAME(模块的唯一名字)
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_BULIT_MODULE_STEM := package.apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED(签名方式)
#LOCAL_OVERRIDES_PACKAGES := OVERRIDES_MODULE(要替代的模块)
LOCAL_SRC_FILES := name.apk(apk的文件名,一般与MODULE同名)
include $(BUILD_PREBUILT)

例:

Android预装apk_第1张图片

 Android预装apk_第2张图片

Android预装apk_第3张图片

        在 驱动\android\device\{vendor-name}(softwinner)\{platform-name}(ceres)\{platform-name}.mk中PRODUCT_PACKAGES项中加入:

PRODUCT_PACKAGES += APK_MODULE_NAME(apk模块名字,预装多个apk用空格隔开)

Android预装apk_第4张图片

预装谷歌的apk

###############################################################################
# Family(apk名字)
LOCAL_PATH := $(my-dir)
include $(CLEAR_VARS)
#LOCAL_APK_NAME := Family(apk名字)
#LOCAL_POST_PROCESS_COMMAND := $(shell mkdir -p $(TARGET_OUT)/app/$(LOCAL_APK_NAME) && cp $(LOCAL_PATH)/$(LOCAL_APK_NAME).apk $(TARGET_OUT)/app/$(LOCAL_APK_NAME)/)
include $(CLEAR_VARS)
LOCAL_MODULE := Family(apk名字)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_PATH := $(TARGET_OUT)/app/
LOCAL_REPLACE_PREBUILT_APK_INSTALLED := $(LOCAL_PATH)/Family.apk(apk名字)
LOCAL_DEX_PREOPT := false
LOCAL_MULTILIB := 32
include $(BUILD_PREBUILT)

预装Android11Chrome

        将 GMS 包(android\vendor\partner_gms\apps\Chrome)中的 Chrome.apk 和 TrichromeLibrary.apk 拷贝出来,在 android/package/apps 目录下新建 Chrome 文件夹,将俩 apk 拷贝至此出,新建 Android.mk

Android预装apk_第5张图片

 

packages\apps\Chrome\Android.mk

Android预装apk_第6张图片

###############################################################################
# Chrome
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := Chrome
LOCAL_MODULE_TAGS := optional
LOCAL_PRODUCT_MODULE := true
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_OVERRIDES_PACKAGES := Browser Browser2 MtkBrowser MtkBrowserAutoTests BrowserSanityTest
LOCAL_REQUIRED_MODULES := TrichromeLibrary BookmarkProvider PartnerBookmarksProvider
LOCAL_MULTILIB := both
LOCAL_MODULE_CLASS := APPS
LOCAL_DEX_PREOPT := false
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE := TrichromeLibrary
LOCAL_MODULE_TAGS := optional
LOCAL_PRODUCT_MODULE := true
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MULTILIB := both
LOCAL_MODULE_CLASS := APPS
LOCAL_DEX_PREOPT := false
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)

        在 core.mk 或者 handheld_system.mk (android\build\make\target\product\handheld_system.mk)中添加 Chrome 、 TrichromeLibrary 编译,这样预装就搞定了。

 

        此时编译会出现Chrome已被定义的问题

Android预装apk_第7张图片

         暂时解决的方法为:将 GMS 包(android\vendor\partner_gms\apps\Chrome)下的Chrome移除

你可能感兴趣的:(android)