我希望将一个预建的APK添加到我的AOSP版本中。我可以通过执行以下操作来完成此操作:
创建 Android.mk 文件。该文件包含以下内容:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := <name of APK>
LOCAL_SRC_FILES := <Name of APK>.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform
include $(BUILD_PREBUILT)
添加:
PRODUCT_PACKAGES += \ <name of APK>
到由AOSP构建系统获取的make文件。
这会将APK添加到只读的 / system / app 文件夹中,以便用户无法更新APK。我希望将APK放在 / data / app 文件夹中,以便用户可以实际更新预建的APK。
我已经在this问题中尝试了这些建议,但这些建议无效。我在this问题中尝试了这个建议,当它确实将APK输出到完成版本的 / data / app 文件夹时,一旦我将图像闪存到我的设备上,该应用就没有那里。该问题的第二个答案确实为此提供了可能的解释,但没有其他建议。
最终,我需要在我的构建中预装一个可以更新的APK,如果这不起作用或者是一个糟糕的方法,我愿意接受建议。
答案 0 :(得分:2)
在Android.mk文件中使用LOCAL_MODULE_PATH到TARGET_OUT_DATA或TARGET_OUT_DATA_APPS
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
------
include $(BUILD_PREBUILT)
答案 1 :(得分:2)
我发现PackageManager类的标准行为足以满足我的用例。所以这里有几个值得解释的花絮: