如何在AOSP构建中添加APK?

Cod*_*uru 35 android android-source

我需要在我的AOSP版本中添加一些第三方APK.我应该保留这些APK的文件夹,以便在构建代码并创建映像时,它是否安装在模拟器中?

看起来系统应用程序保存在packages/app文件夹中,因此我需要知道第三方APK的保存位置.

Tia*_*sta 58

将第三方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)
Run Code Online (Sandbox Code Playgroud)

为你的apk添加行commons.mk(通常在build/target/product)中创建一个条目(检查其他所有的行)

PRODUCT_PACKAGES += < what you have defined in LOCAL_MODULE, it should be your app folder name >
Run Code Online (Sandbox Code Playgroud)

编译AOSP,您在系统上安装了一个全新的应用程序.

  • 谢谢.我对我看到的所有ROM厨房帖子感到厌倦. (6认同)
  • @Raj 显然你也可以使用`presigned` 值:https://groups.google.com/forum/#!topic/android-building/i4oaJ2DtadM (2认同)
  • @HyperionX 使用 core.mk (2认同)

小智 6

上面显示的Android.mk将在/ system / app中安装APK

如果您希望将APK安装在/ data / app中,则需要在以下行之前将以下行添加到Android.mk中: include $(BUILD_PREBUILT)

LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
Run Code Online (Sandbox Code Playgroud)


Jus*_*ser 5

您还可以在目标输出目录中执行以下操作:

<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
Run Code Online (Sandbox Code Playgroud)

此时,您可以对 system_root 中的文件进行任何更改,即将 apk 添加到系统/应用程序等...

完成后,只需返回到输出目录并执行以下操作:

sudo umount system_root
<path-to-your-build-dir>/host/linux-x86/bin/img2simg temp.img system.img
Run Code Online (Sandbox Code Playgroud)

您现在可以像往常一样使用 fastboot 刷新 system.img。

  • 这更接近,但不能完全回答所提出的具体问题,因为此方法是对图像的构建后修改,而不是让构建过程包含应用程序的方法。不过,至少可以编写脚本。 (3认同)