web-dev-qa-db-ja.com

AOSPビルドにAPKを追加するにはどうすればよいですか?

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

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

33
CodeGuru

ビルドにサードパーティの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)

Apkのcommons.mk(通常はbuild/target/product)にエントリを作成し、行を追加します(他のすべての場所を確認します)

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

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

58
Tiago Costa

上記のAndroid.mkは、APKを/ system/appにインストールします

APKを/ data/appにインストールする場合は、次の行をAndroid.mkのinclude $(BUILD_PREBUILT)行の前に追加する必要があります。

LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
6
user3913384

ターゲット出力ディレクトリで次のこともできます。

<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をフラッシュできます。

4
Justin Buser