Подтвердить что ты не робот

Как добавить APK в сборку AOSP?

Мне нужно добавить сторонние APK в мою сборку AOSP. В какой папке я должен хранить эти APK так, чтобы при создании кода и создании изображения он был установлен в эмуляторе?

Похоже, что системные приложения хранятся в папке packages/app, поэтому мне нужно знать, где хранятся сторонние APK.

4b9b3361

Ответ 1

Добавление сторонних APK в сборку, безусловно, возможно.

Также APK и APP с исходным кодом идут в одно и то же место; папке package/app.

Добавление нового APK в сборку

В корне AOSP добавьте папку:

<aosp root>/package/app/< yourappfolder >

Затем внутри этой папки добавьте:

  • empty Android.mk
  • < yourapp.apk >

Файл make android должен иметь ссылку на ваш 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 (обычно в build/target/product) для вашего apk добавьте строку (проверьте, где все остальные)

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

Скомпилируйте AOSP, и у вас есть новое приложение, установленное в системе.

Ответ 2

Вы также можете сделать следующее в целевом выходном каталоге:

<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, то есть добавить apks в систему/приложение и т.д.

Когда вы закончите, просто вернитесь к выходному директорию и выполните:

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

Теперь вы можете flash system.img использовать fastboot, как обычно.

Ответ 3

Представленный выше Android.mk установит APK в /system/app

Если вы хотите установить APK в /data/app, вам нужно будет добавить следующую строку в Android.mk до строки include $(BUILD_PREBUILT)

LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)