客戶給了一個內置他們自己apk的需求,定製到Rom裏,我們需要在編譯系統源碼的時候配置好相關的文件即可將apk一起打包到ROM裏面,下面我們就來一起打包apk到系統
首先需要在 device/mediatek/common/device.mk 配置如下語句
#apps
PRODUCT_PACKAGES += \
BDDataPlan\
Facebook\
MultiLingBengaliPlugin\
Multilingkeyboard\
SHAREit\
Skype\
Viber\
WPSOffice\
WST_WAL_C
配置好之後還需要導入 apk文件並且配置宏,就寫一個例子吧,也在這個文件夾下寫
LOCAL_PATH := $(call my-dir)
#
include $(CLEAR_VARS)
LOCAL_MODULE := BDDataPlan
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
#LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/thirdparty_apps
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
#
include $(CLEAR_VARS)
LOCAL_MODULE := Facebook
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
#LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/thirdparty_apps
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
#
include $(CLEAR_VARS)
LOCAL_MODULE := MultiLingBengaliPlugin
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
#LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/thirdparty_apps
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
#
include $(CLEAR_VARS)
LOCAL_MODULE := Multilingkeyboard
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
#LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/thirdparty_apps
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
#
include $(CLEAR_VARS)
LOCAL_MODULE := SHAREit
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
#LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/thirdparty_apps
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
#
include $(CLEAR_VARS)
LOCAL_MODULE := Skype
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
#LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/thirdparty_apps
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
#
include $(CLEAR_VARS)
LOCAL_MODULE := Viber
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
#LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/thirdparty_apps
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
#
include $(CLEAR_VARS)
LOCAL_MODULE := WPSOffice
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
#LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/thirdparty_apps
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
#
include $(CLEAR_VARS)
LOCAL_MODULE := WST_WAL_C
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
#LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/thirdparty_apps
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
工作算是完成了一半,接下來還需要修改frameworks下的java文件,讓內置的三分apk可卸載等操作
No rule to make target `vendor/rmt/ThirdpartyApps/WST_WAL_C.apk', needed by `out/target/product/rmt8382_tb_l/obj/APPS/WST_WAL_C_intermediates/package.apk'. Stop
檢查了下配置文件,發現客戶提供的apk文件跟我們的mk衝突了,於是修改