AOSP ビルドにサードパーティの APK をいくつか追加する必要があります。コードをビルドしてイメージが作成されたときにエミュレーターにインストールされるようにするには、これらの APK をどのフォルダーに保存する必要がありますか?
システム アプリはpackages/appフォルダーに保存されているように見えるので、サード パーティの APK が保存されている場所を知る必要があります。
AOSP ビルドにサードパーティの APK をいくつか追加する必要があります。コードをビルドしてイメージが作成されたときにエミュレーターにインストールされるようにするには、これらの APK をどのフォルダーに保存する必要がありますか?
システム アプリはpackages/appフォルダーに保存されているように見えるので、サード パーティの APK が保存されている場所を知る必要があります。
サードパーティの 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 をコンパイルすると、システムに新しいアプリがインストールされます。
ノート
PRESIGNED
を値として使用しますLOCAL_CERTIFICATE
/data/app/
を追加します。LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
include $(BUILD_PREBUILT)
ターゲット出力ディレクトリで次のことを行うこともできます。
<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 をフラッシュできるようになりました。