android - 如何在 AOSP 构建中将应用程序或 apk 安装到 data/app 目录中?

标签 android apk android-source

我希望使用模拟器将预构建的 APK 添加到 AOSP 构建中。我通过执行相关的 questions 成功将 APK 安装到 system/app 目录中。

但我想将 APK 添加到 data/app 目录中。

我的开发环境如下:
- Ubuntu 16.04 LTS
- AOSP:安卓6.0.1_r77
- AOSP模拟器

我通过几个相关问题尝试了以下步骤。

  1. 将 APK 添加到 /packages/apps 目录。
  2. 创建 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/

    相关文章:

    android - 下载 Android 源代码时出错

    java - Activity.java 交叉引用在 Eclipse 中不起作用

    android - 将 jQuery Mobile 与phonegap 结合使用

    java - 停止 fragment 在 ViewPager 中越过 ActionBar

    android - 不支持 320x480 以下分辨率的正确方法是什么

    java - 将未签名的 apk 转换为已签名的 apk

    android - 启用的操作栏图标不是标题

    javascript - jQuery addClass 导致窗口在 Android 和 iPhone 上滚动回到顶部

    android - 如果通过 VS Code 运行,Flutter 运行卡在 "Installing build\...\app.apk"

    Android init.rc 在服务退出时触发