2012-05-14 4 views
24

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

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

+0

Возможный дубликат [Добавить прекомпилированное APK-для Android AOSP system.img] (http://stackoverflow.com/questions/8387477/add-prebuilt-apks-to-android-aosp-system-img) –

ответ

47

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

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

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

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

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

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

  • пустой Android.mk
  • <yourapp.apk>

андроид делают файл должен иметь ссылку на ваш 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 и у вас есть новое приложение, установленное в системе.

+5

Спасибо. Я устал от всех кухонных столбов, которые я вижу. –

+1

@Tiago: что будет LOCAL_CERTIFICATE: = <желаемый ключ>. не могли бы вы прояснить это. – Raj

+0

Извините за задержку, также извините за беспорядок здесь, но форматирование ответа не работает. Основная платформа Android использует четыре ключа для обеспечения безопасности основных компонентов платформы: 1. платформа: ключ для пакетов, которые являются частью основной платформы. 2. shared: ключ для вещей, которые совместно используются в процессе home/contacts. 3. media: ключ для пакетов, которые являются частью медиа/системы загрузки. 4. releasekey: ключ по умолчанию для подписания, если не указано иное. См. Здесь: http://www.kandroid.org/online-pdk/guide/release_keys.html –

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

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

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

Теперь вы можете прошить system.img с помощью быстрой загрузки, как обычно.

+2

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

2

Android.mk представленные выше установит APK в/системы/приложения

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

LOCAL_MODULE_PATH := $(TARGET_OUT_DATA) 
Смежные вопросы