我希望使用模拟器将预构建的 APK 添加到 AOSP 构建中。我通过执行相关的 questions 成功将 APK 安装到 system/app 目录中。
但我想将 APK 添加到 data/app 目录中。
我的开发环境如下:
- Ubuntu 16.04 LTS
- AOSP:安卓6.0.1_r77
- AOSP模拟器
我通过几个相关问题尝试了以下步骤。
- 将 APK 添加到 /packages/apps 目录。
- 创建 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
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
include $(BUILD_PREBUILT)
- 添加到/build/target/product/core.mk
PRODUCT_PACKAGES += \ <name of APK>
上述 Android.mk 文件甚至没有将 APK 安装到 system/app 中。
我还尝试了以下方法。以下 make 文件将 APK 安装到 system/app 中。
...
LOCAL_MODULE_TAGS := tests
...
...
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
...
...
LOCAL_MODULE_PATH := $(TARGET_OUT)/data/app
...
我希望将 APK 安装到 /data/app 文件夹中。
最佳答案
可能有更好的方法,但我处理的方法是将.apk包含在系统目录中(不安装它,只需使用PRODUCT_COPY_FILES )。
添加如下所示的 device.mk
代码来复制文件:
PRODUCT_COPY_FILES += \
vendor/XXXXX/common/apps/MYApplication/MYApplication.apk:system/app/MYApplication.nm
然后修改Provision应用(在首次设备启动时运行)以安装该APK。安装是通过 PackageManager API 完成的。检查this answer ,或类似的。
关于android - 如何在 AOSP 构建中将应用程序或 apk 安装到 data/app 目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57432410/