web-dev-qa-db-fra.com

Comment ajouter des APK dans une version AOSP?

Je dois ajouter des fichiers APK tiers à ma version AOSP. Quel dossier dois-je conserver ces fichiers APK afin que lorsque je crée le code et que l'image soit créée, elle est installée dans l'émulateur?

Il semble que les applications système soient conservées dans le dossier packages/app, j'ai donc besoin de savoir où les fichiers APK tiers sont conservés.

37
CodeGuru

Ajouter des fichiers APK tiers à la version est certainement possible.

Les APK et les APP avec le code source vont également au même endroit; les package/app dossier.

Ajout d'un nouveau fichier APK à la version

Dans la racine AOSP, ajoutez le dossier:

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

Puis à l'intérieur de ce dossier ajoutez:

  • vide Android.mk
  • < yourapp.apk >

Le fichier Android make devrait avoir la référence à votre apk, ajoutez ceci à votre 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)

Créez une entrée dans le commons.mk (généralement dans build/target/product) pour votre apk ajoutez la ligne (vérifiez où se trouvent tous les autres)

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

Compilez l'AOSP et vous avez une toute nouvelle application installée sur le système.

60
Tiago Costa

L'Android.mk présenté ci-dessus installera l'APK dans/system/app

Si vous souhaitez installer l'APK dans/data/app, vous devrez ajouter la ligne suivante à Android.mk avant la ligne include $(BUILD_PREBUILT)

LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
6
user3913384

Vous pouvez également effectuer les opérations suivantes dans le répertoire de sortie cible:

<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

À ce stade, vous pouvez apporter les modifications que vous souhaitez aux fichiers dans system_root, c'est-à-dire ajouter des apks au système/à l'application, etc.

Lorsque vous avez terminé, revenez au répertoire de sortie et faites:

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

Vous pouvez maintenant flasher system.img en utilisant fastboot comme d'habitude.

4
Justin Buser