我需要将一些第三方APK添加到我的AOSP构建中。我应该将这些APK放在哪个文件夹中,以便在构建代码并创建映像时,它们会被安装在模拟器中?
看起来系统应用程序保存在packages/app文件夹中,因此我需要知道第三方APK保存的位置。
我需要将一些第三方APK添加到我的AOSP构建中。我应该将这些APK放在哪个文件夹中,以便在构建代码并创建映像时,它们会被安装在模拟器中?
看起来系统应用程序保存在packages/app文件夹中,因此我需要知道第三方APK保存的位置。
向构建添加第三方APK绝对可行。
此外,具有源代码的APK和APP将进入同一位置; package/app
文件夹。
将新的APK添加到构建中
在AOSP根目录下添加文件夹:
<aosp root>/package/app/< yourappfolder >
然后在此文件夹内添加:
Android.mk
< yourapp.apk >
Android的makefile应该引用您的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)
在您的apk中创建一个条目在commons.mk
中(从AOSP 8.1.0开始它被称为core.mk
,通常可以在build/target/product
中找到),添加以下行(检查其他行的位置)。PRODUCT_PACKAGES += < what you have defined in LOCAL_MODULE, it should be your app folder name >
编译AOSP并在系统上安装一个全新的应用。
注:
PRESIGNED
用作LOCAL_CERTIFICATE
的值/data/app/
目录中,在include $(BUILD_PREBUILT)
之前添加一行代码LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
presigned
值:https://groups.google.com/forum/#!topic/android-building/i4oaJ2DtadM - Cameron Martininclude $(BUILD_PREBUILT)
这一行之前。LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
<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中的文件进行任何修改,例如向system/app添加apks等...
完成后,只需返回输出目录并执行以下操作:
sudo umount system_root
<path-to-your-build-dir>/host/linux-x86/bin/img2simg temp.img system.img
按照第一个答案制作apk和Android.mk文件,并将其放置在应该放置的位置。但是现在build/target/product中没有core.mk文件,而是被重命名为handheld_product.mk,因此在那里添加您的应用程序文件夹名称。