Comment installer correctement une application système compte tenu de son .apk?


30

J'ai supprimé une application système (com.android.mms) et j'ai le .apk nécessaire pour la restaurer, mais elle ne s'installe pas via les canaux standard (l'exécution du .apk me donne "application non installée"). Quelle est la bonne façon d'installer .apk d'une application système?

Réponses:


41

Vous devrez pousser le .apk sur le téléphone vers la partition système dans le dossier /system/appou /system/priv-applorsque vous utilisez Android 4.3 en utilisant adb. Vous pouvez trouver plus d'informations adbici: http://android-dls.com/wiki/index.php?title=ADB .

Pour écrire, /systemvous devrez probablement le remonter en lecture-écriture:

adb shell
su
mount -o rw,remount /system

Ou faites-le entièrement à partir de la BAD de l'hôte:

adb root
adb remount

Vous pouvez maintenant placer .apk:

adb push my-app.apk /sdcard/
adb shell
su
cd /sdcard
mv my-app.apk /system/app
# or when using Android 4.3 or higher
mv my-app.apk /system/priv-app

Ensuite, si les indicateurs ne sont pas déjà définis, modifiez les autorisations. Toutes les applications système doivent avoir les autorisations rw-r--r--. Vous pouvez également les modifier via ADB avec la commande chmod 644 /path_to/your_file. Bien qu'il soit assez ancien, cela peut aider

Après avoir placé le, .apkvous devez redémarrer votre appareil. Par exemple avec adb reboot.


Oui, je pensais que ce serait la voie à suivre, j'ai essayé, dit une mauvaise signature. J'ai utilisé le Mms.apk qui fait partie de la rom .zip que j'ai utilisée pour installer la version actuelle d'Android.
Dmitriy Likhten

2
Belle réponse. Merci. Un commentaire, je n'ai pas pu "mv my-app.apk / system / app". J'ai reçu une erreur "a échoué sur 'XXX.apk' - Lien multi-périphérique". J'ai pu CP et RM l'apk comme décrit dans android.stackexchange.com/questions/75920/…
Michael Levy

1
Pensez à utiliser à la cpplace de mvcar vous vous déplacez entre différents systèmes de fichiers et ce n'est pas pris en charge dans toutes les mvversions
Andres

cela ne met pas à jour les autorisations android avec l'emplacement de l'apk, qui est requis pour les paquets qui utilisent l'
apk

5

Carl Parker écrit à ce sujet sur Android Authority :
(partiellement reproduit ici au cas où le message d'origine tomberait)

Pour les applications installées sur l'appareil

  • En supposant que vous avez installé l'application sur votre appareil, accédez au lien Google Play Store de l'application et notez les mots après «? Id =» et ignorez le reste.
  • Connectez votre appareil à l'ordinateur via un câble USB.
  • Ouvrez l'invite de commande sur votre ordinateur et tapez les commandes suivantes:
adb remount 
adb shell 
su 
cd /data/app/ 
  • Tapez la commande ls appfilename*(où «appfilename» est l'ID de l'application sur Google Play Store; assurez-vous d'inclure l'astérisque à la fin). Cette commande affichera le nom de fichier APK complet de l'application.
  • Entrez la commande suivante:
mv apk_full_filename_here /system/app/apk_full_filename_here 
exit 
exit 
adb reboot 
  • L'appareil va maintenant redémarrer. Votre application est désormais enregistrée en tant qu'application système.

Pour les applications dont les fichiers APK se trouvent sur le disque dur du PC

  • Ouvrez une invite de commande sur votre ordinateur et accédez à l'emplacement du fichier APK.
  • Activez le débogage USB sur votre appareil et connectez votre appareil à l'ordinateur via un câble USB.
  • Saisissez les commandes suivantes:
adb remount
adb push apk-filename-here /system/app/
adb shell chmod 644 /system/app/apk-filename-here
adb reboot

Votre téléphone redémarrera automatiquement. Votre application sera désormais enregistrée en tant qu'application système.


3

notez que lorsque vous jouez avec adb, vous installerez des applications via leur nom de fichier de package (ce qui signifie qu'à l'invite de commande, vous taperez> adb install myFile.apk)

mais vous les désinstallerez via leur nom de package (> adb uninstall com.this.that.otherthing)

Vous ne pourrez pas installer un package avant d'avoir désinstallé son prédécesseur.

Cela vous aidera à ajouter adb à votre CHEMIN afin que vous puissiez simplement vous rendre dans le répertoire où se trouve le fichier .apk et taper adb install myFile.apk.


Merci! Je ne connaissais pas les mécanismes de désinstallation :)
Dmitriy Likhten

Je n'ai pas essayé avec les applications système, mais pour les applications habituelles /system/bin/pm(Package Manager), l'utilitaire a fonctionné pour moi. Comme pm install -r myFile.apk( -rpour "remplacer"). De cette façon, vous n'avez pas besoin de désinstaller et de connaître le nom du package.
Alexander Malakhov

0

Vous devez avoir installé le SDK Android (ou au moins un outil appelé adb). De plus, vous devez autoriser les "installations non commerciales" sur votre appareil.

Une fois cette opération terminée, vous accédez au dossier contenant le fichier avec une console. Connectez ensuite votre téléphone (via USB) et exécutezadb install appname.apk


Voir les commentaires des autres réponses. Les installations non commerciales sont déjà activées depuis que j'ai installé swype :)
Dmitriy Likhten
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.