2017-10-01 6 views
1

Supposons que nous ayons téléchargé, construit et flashé le code source AOSP. Une modification est maintenant apportée à une application système (par exemple, modification d'une constante dans le package packages/apps/Nfc).Mettre à jour l'application système intégrée AOSP

La prochaine étape est de le construire, et il y a deux façons de le faire:

cd packages/apps/Nfc; mm 

ou

mmm Nfc 

Cela va créer sur/target/produit // system/app/NfcNci/NfcNci.apk file

Quelle est la bonne façon de mettre à jour l'application système?

J'ai essayé d'utiliser adb install NfcNci.apk mais sans succès:

~/android/aosp-7.1.2-3.10-v2/out/target/product/kugo/system/app/NfcNci$ adb install NfcNci.apk 
Failed to install NfcNci.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install com.android.nfcnci without first uninstalling.] 
~/android/aosp-7.1.2-3.10-v2/out/target/product/kugo/system/app/NfcNci$ adb install -r NfcNci.apk 
Failed to install NfcNci.apk: Failure [INSTALL_FAILED_INVALID_APK: Package couldn't be installed in /data/app/com.android.nfcnci-1: Package /data/app/com.android.nfcnci-1/base.apk code is missing] 

Répondre

2

trouvé un moyen de facilement «réinstaller l'application elle-même (nous allons mettre l'application des paramètres comme exemple):

mmm packages/apps/Settings # Build the module 
adb root ; adb remount # Restart adbd as root and mount /system as writable 
adb push out/target/product/<device_name>/system/priv-app/Settings /system/priv-app # Push the built files to the device 

forcera près et redémarrer l'application (par la glisser de Recents).Pas besoin de redémarrer appareil pour prendre change

REMARQUE: En fonction de l'application, le chemin peut être sur system/app au lieu de /system/priv-app

0

Vérifiez de fichier build/envsetup.sh - il y a aussi des commandes mmp et mmmp pour construire et pousser un module connecté dispositif. En outre adb sync peut être utilisé pour synchroniser l'image entière, donc si vous avez mis à jour un module, les fichiers modifiés seront poussés vers l'appareil.

Vous pouvez également mettre les fichiers modifiés via le périphérique `push adb 'et redémarrer le périphérique.

Je ne sais pas si les applications système peuvent être mises à jour via adb install, probablement oui, mais je pense que vous devez incrémenter le numéro de build dans le fichier manifeste.

Je ne pense pas que vous pouvez désinstaller une application système avec adb install -r, car les applications ne peuvent pas être supprimées de la partition system, uniquement à partir de data. Je ne sais pas pourquoi vous obtenez INSTALL_FAILED_INVALID_APK dans ce cas, peut-être parce que le gestionnaire d'applications ne peut pas désinstaller le système de base apk en effet.

0

Une autre façon consiste à:

  1. copie du nouveau fichier .apk au sdcard du dispositif avec adb push
  2. mount/système de lecture écriture: mount -o rw,remount,rw /system
  3. copier votre nouveau .apk de/sdcard sur votre ancien .apk dans/system/app
  4. supprimer le fichier .odex de votre ancien .apk
  5. redémarrez le périphérique

Pour le développement, vous pouvez utiliser un script simple pour cette procédure.