Как добавить APK в сборку AOSP?
Мне нужно добавить сторонние APK в мою сборку AOSP. В какой папке я должен хранить эти APK, чтобы при сборке кода и создании образа он устанавливался в эмуляторе?
Похоже, что системные приложения хранятся в папке packages/app, поэтому мне нужно знать, где хранятся сторонние APK.
4 ответа
Добавление сторонних APK в сборку, безусловно, возможно.
Также APK и APP с исходным кодом идут туда же; package/app
папка.
Добавление нового APK в сборку
В корне AOSP добавьте папку:
<aosp root>/package/app/< yourappfolder >
Затем внутри этой папки добавьте:
- пустой
Android.mk
< yourapp.apk >
Файл 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, и в системе будет установлено новое приложение.
Android.mk, представленный выше, установит APK в /system/app
Если вы хотите установить APK в /data/app, вам нужно добавить следующую строку в Android.mk перед строкой include $(BUILD_PREBUILT)
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
Вы также можете сделать следующее в целевом выходном каталоге:
<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 в system/app и т. Д.
Когда вы закончите, просто вернитесь к выходному каталогу и выполните:
sudo umount system_root
<path-to-your-build-dir>/host/linux-x86/bin/img2simg temp.img system.img
Теперь вы можете прошить system.img, используя fastboot как обычно.
Следуйте первому ответу, чтобы сделать файл apk и Android.mk и разместить его там, где он должен быть. Но теперь в build/target/product нет файла core.mk, но он был переименован в handheld_product.mk Итак, добавьте туда имя папки вашего приложения.