1. 简介
本文档介绍如何配置预置APK的Android.mk,另外特申明所有预置应用禁止使用platform签名, 特殊需求除外
2. 配置应用不可卸载
模板
位置:packages/apps/simple/Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := simple
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_DEX_PREOPT := true
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_PROPRIETARY_MODULE := true
include $(BUILD_PREBUILT)
步骤
是否需要提取 odex?
LOCAL_DEX_PREOPT := true
是否放置于 priv-app ?
LOCAL_PRIVILEGED_MODULE := true
是否存在 so库?
# 指定编译目标为 32位 或 64位
LOCAL_MULTILIB := ###可选值 /32/64/both
不建议提取, 如运行出错( FAQ:无法找到库导致应用无法启动 ),则提取文件并添加配置
# 编译32位库文件
LOCAL_PREBUILT_JNI_LIBS_arm := $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/lib/armeabi/*.so))
# 编译64位库文件
LOCAL_PREBUILT_JNI_LIBS_arm64 := $(subst $(LOCAL_PATH)/,,$(wildcard $(LOCAL_PATH)/lib/arm64-v8a/*.so))
3. 配置应用可卸载
模板
位置:packages/apps/simple/Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := sample
LOCAL_MODULE_TAGS := optional
LOCAL_DEX_PREOPT := false
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
LOCAL_PROPRIETARY_MODULE := true
include $(BUILD_PREBUILT)
卸载后恢复出厂设置不恢复:
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
卸载后恢复出厂设置恢复
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
步骤
是否存在 so 库? 配置方法如上
是否需要提取 odex ?配置方法如上
备注:
签名方式:
LOCAL_CERTIFICATE := PRESIGNED
PRESIGNED 表示apk签名使用原来签名
platform 表示使用系统签名