1.第三方apk固定位于android\vendor\chinatsp\extern\目录下
2.新添加apk时需建立新文件夹,文件夹名称可以和apk同名,文件夹下包含一个apk和一个Android.mk文件。
最基本的mk:
LOCAL_PATH := $(call my-dir)
#integrate the apk
include $(CLEAR_VARS)
LOCAL_MODULE := (模块名)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := (签名,platform表示系统签名,PRESIGNED表示apk自己的签名)
LOCAL_MODULE_SUFFIX := .apk
LOCAL_SRC_FILES := ./(apk名)
LOCAL_MODULE_PATH := (编译到out目录下的哪个路径,(TARGET_OUT_VENDOR)/app代表vendor/app)
include $(BUILD_PREBUILT)
编译通过后,运行时如果提示lib库.so文件找不着。需要单独将lib提出来
先把apk复制一份副本,并将.apk改成.zip
打开zip文件,找到lib文件夹
并解压到当前文件夹
修改mk文件,新增如下代码
LOCAL_PATH := $(call my-dir)
define get-all-libraries-module-name-in-subdirs
$(sort $(shell cd $(LOCAL_PATH) ; find -L $(1) -name "*.so"))
endef
ALL_LIBRARIES_MODULE_NAME := $(call get-all-libraries-module-name-in-subdirs, lib/(根据解压出来的lib文件夹下的目录填写))
$(warning ALL_LIBRARIES_MODULE_NAME:--- $(ALL_LIBRARIES_MODULE_NAME) )
#integrate the apk
include $(CLEAR_VARS)
LOCAL_MODULE :=
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE :=
LOCAL_MODULE_SUFFIX := .apk
LOCAL_SRC_FILES :=
LOCAL_MODULE_PATH :=
LOCAL_PREBUILT_JNI_LIBS := $(ALL_LIBRARIES_MODULE_NAME)
LOCAL_MULTILIB := (根据解压出来的lib文件夹下的目录填写64或32)
include $(BUILD_PREBUILT)
最后需添加模块名至全编译mk文件,模块名唯一
全编译mk文件目录:android\device\qcom\msmnile_gvmq\msmnile_gvmq.mk
# 模块名
PRODUCT_PACKAGES += 模块名
例如:
3.覆盖原来的apk只需替换apk文件,有lib文件夹时,替换lib文件夹