45

AOSP ビルドにサードパーティの APK をいくつか追加する必要があります。コードをビルドしてイメージが作成されたときにエミュレーターにインストールされるようにするには、これらの APK をどのフォルダーに保存する必要がありますか?

システム アプリはpackages/appフォルダーに保存されているように見えるので、サード パーティの APK が保存されている場所を知る必要があります。

4

4 に答える 4

67

サードパーティの 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(AOSP 8.1.0 以降では と呼ばれcore.mk、通常は にあります) に apkのエントリを作成しbuild/target/product、行を追加します (他のすべてがどこにあるかを確認します)。

PRODUCT_PACKAGES += < what you have defined in LOCAL_MODULE, it should be your app folder name >

AOSP をコンパイルすると、システムに新しいアプリがインストールされます。

ノート

  • APK がすでに署名されている場合は、特別な値PRESIGNEDを値として使用しますLOCAL_CERTIFICATE
  • APK を最終的にディレクトリに配置する場合は、行の前に次の行/data/app/を追加します。LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)include $(BUILD_PREBUILT)
于 2013-11-22T05:25:40.173 に答える
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

この時点で、system_root 内のファイルに必要な変更を加えることができます。つまり、apk を system/app に追加するなど...

完了したら、出力ディレクトリに戻って次のようにします。

sudo umount system_root
<path-to-your-build-dir>/host/linux-x86/bin/img2simg temp.img system.img

通常どおり fastboot を使用して system.img をフラッシュできるようになりました。

于 2013-01-26T17:33:33.743 に答える