2012-05-14 9 views
24

Necesito agregar algunos APK de terceros a mi compilación AOSP. ¿Qué carpeta debo guardar estos APK para que cuando cree el código y se cree la imagen, se instale en el emulador?¿Cómo agrego APK en una compilación AOSP?

Parece que las aplicaciones del sistema se guardan en la carpeta packages/app, así que necesito saber dónde se guardan los archivos APK de terceros.

+0

duplicado posible de [Añadir APK prediseñados para Android AOSP system.img] (http://stackoverflow.com/questions/8387477/add-prebuilt-apks-to-android-aosp-system-img) –

Respuesta

47

Agregando APK de terceros a la compilación es definitivamente posible.

También los APK y las aplicaciones con el código fuente van al mismo lugar; la carpeta package/app.

Adición de un nuevo archivo APK a la acumulación

En la raíz AOSP agregar la carpeta:

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

A continuación, dentro de esta carpeta add:

  • vacío Android.mk
  • <yourapp.apk>

El archivo make androide debe tener la referencia a su apk, agregar esto a su 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) 

crear una entrada en el commons.mk (por lo general en build/target/product) para sus apk añada la línea (comprobar dónde están todos los demás)

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

Compila el AOSP y tienes una nueva aplicación instalada en el sistema.

+5

Gracias. Estaba cada vez más cansado de todos los puestos de cocina ROM que veo. –

+1

@Tiago: lo que será LOCAL_CERTIFICATE: = . ¿Podrías aclarar esto? – Raj

+0

Disculpe la demora, también disculpe el problema aquí, pero el formato de respuesta no funciona. La plataforma principal de Android utiliza cuatro claves para mantener la seguridad de los componentes de la plataforma central: 1. plataforma: una clave para los paquetes que forman parte de la plataforma central. 2. compartido: una clave para las cosas que se comparten en el proceso de inicio/contactos. 3. media: una clave para paquetes que forman parte del sistema de medios/descarga. 4. Releasekey: la clave predeterminada para iniciar sesión si no se especifica lo contrario. Consulte aquí: http://www.kandroid.org/online-pdk/guide/release_keys.html –

4

También puede hacer lo siguiente en el directorio de salida de destino:

<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 

En este punto usted puede hacer cualquier cambio desea los archivos en system_root, es decir, añadir un apk a system/app etc. ..

Cuando haya terminado simplemente volver a bajar a la salida de dir y hacer:

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

ahora se puede parpadear system.img fastboot utilizando como de costumbre.

+2

Eso está mucho más cerca, pero no es exactamente una respuesta a la pregunta específica, ya que este método es una modificación posterior a la construcción de la imagen en lugar de una forma de tener el proceso de compilación incluido Usa las aplicaciones. Aún así, al menos podría estar escrito. –

2

El Android.mk presentado anteriormente instalará el APK en/system/app

Si desea instalar el APK en/datos/aplicación que tendrá que añadir la siguiente línea a la Android.mk antes de la línea include $(BUILD_PREBUILT)

LOCAL_MODULE_PATH := $(TARGET_OUT_DATA) 
Cuestiones relacionadas