我需要在我的AOSP版本中添加一些第三方APK。我应该保留这些APK的文件夹,以便在构建代码并创建映像时,它是否安装在模拟器中?
看起来系统应用程序保存在 packages / app 文件夹中,因此我需要知道第三方APK的保存位置。
答案 0 :(得分:57)
将第三方APK添加到构建中绝对是可能的。
此外,带有源代码的APK和APP也会转到同一个地方; package/app
文件夹。
将新APK添加到构建
在AOSP根目录中添加文件夹:
<aosp root>/package/app/< yourappfolder >
然后在此文件夹中添加:
Android.mk
< yourapp.apk >
android make文件应该引用你的apk,将其添加到你的Android.mk
:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := < your app folder name >
LOCAL_CERTIFICATE := < desired key >
LOCAL_SRC_FILES := < app apk filename >
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
在commons.mk
中创建一个条目(通常在build/target/product
中),为你的apk添加一行(检查其他所有内容)
PRODUCT_PACKAGES += < what you have defined in LOCAL_MODULE, it should be your app folder name >
编译AOSP,您在系统上安装了一个全新的应用程序。
答案 1 :(得分:4)
您还可以在目标输出目录中执行以下操作:
<path-to-your-build-dir>/host/linux-x86/bin/simg2img system.img temp.img
mkdir system_root
sudo mount -t ext4 -o loop temp.img system_root
此时您可以对system_root中的文件进行任何更改,即将apks添加到系统/ app等...
当你完成后,回到输出目录并执行:
sudo umount system_root
<path-to-your-build-dir>/host/linux-x86/bin/img2simg temp.img system.img
您现在可以像往常一样使用fastboot闪烁system.img。
答案 2 :(得分:4)
上面介绍的Android.mk将在/ system / app中安装APK
如果您希望在/ data / app中安装APK,则需要在行include $(BUILD_PREBUILT)
之前将以下行添加到Android.mk
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
答案 3 :(得分:0)
按照第一个答案制作 apk 和 Android.mk 文件并将其放置在它应该放置的位置。但是现在在 build/target/product 中没有 core.mk 文件,但它已被重命名为 Handheld_product.mk 因此,请在此处添加您应用的文件夹名称。