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

31

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

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

Возможный дубликатAdd prebuilt APKs to Android AOSP system.img Cameron Martin

Ваш Ответ

3   ответа
4

<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 как обычно.

Это намного ближе, но не совсем ответ на конкретный вопрос, который задают, поскольку этот метод представляет собой модификацию образа после сборки, а не способ включения процесса сборки в приложения. Тем не менее, это может быть, по крайней мере, по сценарию.
4

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

LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
57

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

Adding a new APK to the build

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

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

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

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

Спасибо. Я устал от всех постов на кухне ROM, которые я вижу.
@Raj, видимо, вы также можете использоватьpresigned значение:groups.google.com/forum/#!topic/android-building/i4oaJ2DtadM
@Tiago: что будет LOCAL_CERTIFICATE: = & lt; желаемый ключ & gt ;. не могли бы вы очистить это.
@TiagoCosta Знаете ли вы, что вы должны добавить, чтобы сделать то же самое для системного привилегированного приложения? Это то, что должно быть в system / priv-app? Я разместил вопросstackoverflow.com/questions/32997233/…
@HyperionX использовать core.mk

Похожие вопросы