如何在 AOSP 源代码中添加预构建应用程序(系统应用程序)

sem*_*emw 9 android operating-system android-source apksigner

我试图在 AOSP 版本 10 中添加 APK 作为系统应用程序。我已按照几乎不同的链接中提到的过程进行操作,该链接位于此处Add apk in AOSP但没有任何效果。此链接中提到的过程以及我遵循的步骤是:

  1. 将我的 Apk 放入Aosp_root/packages/apps/my-app-folder/my-app.apk
  2. Android.mkmy-app.apk/my-app-folder

代码Android.mk

    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE_TAGS := optional
    
    LOCAL_MODULE := Signal
    
    LOCAL_CERTIFICATE := platform
    
    LOCAL_SRC_FILES := Signal-website-universal-release-4.55.8.apk
    
    LOCAL_MODULE_CLASS := APPS
    
    LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
    
    include $(BUILD_PREBUILT)
Run Code Online (Sandbox Code Playgroud)
  1. 然后在步骤 3 中添加PRODUCT_PACKAGEScore.mk否则common.mk我无法在指定目录 ( ) 中找到两个指定文件 (core.mk或) 。但我在文件夹中找到了文件,并在该文件中找到了该文件并在其中添加了 my-app 的目录。common.mkbuild/target/productsgsi-common.mkbuild/target/productPRODUCT_PACKAGES

这是 的代码gsi-common.mk

   `PRODUCT_PACKAGES += \
    messaging \
    PhotoTable \
    WAPPushManager \
    WallpaperPicker \
    Signal \`
Run Code Online (Sandbox Code Playgroud)
  1. 重建 AOSP 并将aosp-root其刷新到设备上后,没有任何变化,my-app.apk也没有添加。然后我在目录中使用mm命令packages/apps并构建它my-app.apk并将其添加到aosp_root/out/target/product/taimen/system/app. 之后,我运行 make snod 命令来重新生成系统映像并创建它。当我在 Pixel 设备中闪烁此图像时,它会卡在 Google 徽标上,并且在显示 google 徽标之前还显示操作系统已损坏。

你能告诉我我错过了什么或者哪一步是错误的吗?

小智 9

针对 Android 11 和 Android 8.1 回答此问题

为您的应用程序创建一个文件夹 <AOSP-root-directory>/package/apps/<yourAppFolder>

在里面yourAppFolder创建一个Android.mk包含以下内容的文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_MODULE := < your app folder name >

LOCAL_CERTIFICATE := platform

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 文件放在同一文件夹中。

现在我们必须将 apk 包含在系统映像中才能执行此操作,为此我们必须在PRODUCT_PACKAGES文件的列表中提及模块名称:

对于安卓 11 - aosp-root-dir/build/target/product/handheld_system.mk

对于安卓 8.1 - aosp-root-dir/build/target/product/core.mk