功能啟用說明
配置和使用
source 之后輸入命令get_build_varTARGET_DEVICE_DIR找到對應目標文件夾 (比如device/rockchip/rk3126c/)
在目標文件夾下有三個文件夾,分別為:
?1.preinstall? 安裝不可卸載應用;
2.preinstall_del_forever? 安裝可永久卸載應用;
3.preinstall_del? 安裝卸載后恢復出廠設置后自動恢復的應用。
順利的話,make之后會在$OUT/oem 目錄,生成對應的文件夾
實例 在device\rockchip\rk356x\rk3568_t\preinstall 下創建文件夾包含預制的apk和Android.mk
在preinstall下的mk這樣寫
LOCAL_PATH := $(my-dir)include $(CLEAR_VARS)
LOCAL_MODULE := DisplayLink
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT_ODM)/bundled_persist-app
# LOCAL_SRC_FILES := $(LOCAL_MODULE)$(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_REPLACE_PREBUILT_APK_INSTALLED := $(LOCAL_PATH)/DisplayLink.apk
LOCAL_CERTIFICATE := PRESIGNED
#LOCAL_DEX_PREOPT := false
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_JNI_SHARED_LIBRARIES_ABI := None
MY_LOCAL_PREBUILT_JNI_LIBS := \MY_APP_LIB_PATH := $(TARGET_OUT_ODM)/bundled_persist-app/$(LOCAL_MODULE)/lib/$(LOCAL_JNI_SHARED_LIBRARIES_ABI)
ifneq ($(LOCAL_JNI_SHARED_LIBRARIES_ABI), None)
$(warning MY_APP_LIB_PATH=$(MY_APP_LIB_PATH))
LOCAL_POST_INSTALL_CMD := mkdir -p $(MY_APP_LIB_PATH) $(foreach lib, $(MY_LOCAL_PREBUILT_JNI_LIBS), ; cp -f $(LOCAL_PATH)/$(lib) $(MY_APP_LIB_PATH)/$(notdir $(lib)))
endif
include $(BUILD_PREBUILT)
preinstall_del 下的?
LOCAL_PATH := $(my-dir)include $(CLEAR_VARS)
LOCAL_MODULE := TouchStudio
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT_OEM)/bundled_uninstall_back-app
LOCAL_SRC_FILES := $(LOCAL_MODULE)$(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
#LOCAL_DEX_PREOPT := false
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_JNI_SHARED_LIBRARIES_ABI := None
MY_LOCAL_PREBUILT_JNI_LIBS := \MY_APP_LIB_PATH := $(TARGET_OUT_OEM)/bundled_uninstall_back-app/$(LOCAL_MODULE)/lib/$(LOCAL_JNI_SHARED_LIBRARIES_ABI)
ifneq ($(LOCAL_JNI_SHARED_LIBRARIES_ABI), None)
$(warning MY_APP_LIB_PATH=$(MY_APP_LIB_PATH))
LOCAL_POST_INSTALL_CMD := mkdir -p $(MY_APP_LIB_PATH) $(foreach lib, $(MY_LOCAL_PREBUILT_JNI_LIBS), ; cp -f $(LOCAL_PATH)/$(lib) $(MY_APP_LIB_PATH)/$(notdir $(lib)))
endif
include $(BUILD_PREBUILT)
preinstall_del_forever 下的
LOCAL_PATH := $(my-dir)include $(CLEAR_VARS)
LOCAL_MODULE := DeadPixelFix
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_PATH := $(TARGET_OUT_ODM)/bundled_uninstall_gone-app
LOCAL_SRC_FILES := $(LOCAL_MODULE)$(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_DEX_PREOPT := false
LOCAL_ENFORCE_USES_LIBRARIES := false
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_JNI_SHARED_LIBRARIES_ABI := None
MY_LOCAL_PREBUILT_JNI_LIBS := \MY_APP_LIB_PATH := $(TARGET_OUT_ODM)/bundled_uninstall_gone-app/$(LOCAL_MODULE)/lib/$(LOCAL_JNI_SHARED_LIBRARIES_ABI)
ifneq ($(LOCAL_JNI_SHARED_LIBRARIES_ABI), None)
$(warning MY_APP_LIB_PATH=$(MY_APP_LIB_PATH))
LOCAL_POST_INSTALL_CMD := mkdir -p $(MY_APP_LIB_PATH) $(foreach lib, $(MY_LOCAL_PREBUILT_JNI_LIBS), ; cp -f $(LOCAL_PATH)/$(lib) $(MY_APP_LIB_PATH)/$(notdir $(lib)))
endif
include $(BUILD_PREBUILT)
如果開機apk不會安裝
有報錯:
05-15 02:29:14.155 492 492 W PackageManager: Failed to scan /odm/bundled_persist-app/DisplayLink: No APK Signature Scheme v2 signature in package /odm/bundled_persist-app/DisplayLink/DisplayLink.apk
在device/rockchip/rk356x/rk3568_t/preinstall/DisplayLink/Android.mk中
把LOCAL_SRC_FILES := $(LOCAL_MODULE)$(COMMON_ANDROID_PACKAGE_SUFFIX)修改為
LOCAL_REPLACE_PREBUILT_APK_INSTALLED := $(LOCAL_PATH)/DisplayLink.apk