34 votes

Comment installer correctement une application système en utilisant son fichier .apk?

J'ai supprimé une application système (com.android.mms) et j'ai le fichier .apk nécessaire pour la restaurer, cependant elle ne s'installe pas via les canaux standard (lorsque je lance le fichier .apk j'obtiens le message "application non installée"). Quelle est la méthode appropriée pour installer le fichier .apk d'une application système ?

47voto

alexus Points 1668

Vous devrez pousser le fichier .apk sur le téléphone vers la partition Système vers le dossier /system/app ou /system/priv-app lors de l'utilisation d'Android 4.3 en utilisant adb. Vous pouvez trouver plus d'informations sur adb ici : http://android-dls.com/wiki/index.php?title=ADB.

Pour écrire dans /system, vous devrez probablement le remonter en lecture-écriture :

adb shell
su
mount -o rw,remount /system

Ou, faites-le entièrement depuis l'ADB de l'hôte :

adb root
adb remount

Maintenant vous pouvez placer le fichier .apk :

adb push my-app.apk /sdcard/
adb shell
su
cd /sdcard
mv my-app.apk /system/app
# ou lors de l'utilisation d'Android 4.3 ou plus récent
mv my-app.apk /system/priv-app

Après, si les indicateurs ne sont pas déjà définis, modifiez les permissions. Toutes les applications système doivent avoir les permissions rw-r--r--. Vous pouvez également les modifier via ADB avec la commande chmod 644 /chemin_vers/votre_fichier. Bien que cela soit assez ancien, cela peut aider

Après avoir placé le fichier .apk, vous devrez redémarrer votre appareil. Par exemple avec adb reboot.

0 votes

Oui, j'ai pensé que ce serait la bonne chose à faire, j'ai essayé, ça dit mauvaise signature. J'ai utilisé le fichier Mms.apk qui fait partie de la rom .zip que j'ai utilisée pour installer l'Android actuel en cours d'exécution.

2 votes

Belle réponse. Merci. Un commentaire, je n'ai pas pu "mv my-app.apk /system/app". J'ai obtenu une erreur "échec sur 'XXX.apk' - Lien entre périphériques". J'ai pu CP et RM l'APK comme décrit dans android.stackexchange.com/questions/75920/…

2 votes

Considérez d'utiliser cp au lieu de mv car vous déplacez entre différents systèmes de fichiers et ce n'est pas pris en charge dans toutes les versions de mv

6voto

Mindwin Points 1105

Carl Parker écrit à ce sujet sur Android Authority :
(partiellement reproduit ici au cas où l'article original disparaisse)

Pour les applications installées sur l'appareil

  • En supposant que vous avez installé l'application sur votre appareil, allez sur le lien de l'application sur le Google Play Store 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 nomdufichierapk* (où "nomdufichierapk" est l'ID de l'application sur le Google Play Store ; assurez-vous d'inclure l'astérisque à la fin). Cette commande affichera le nom complet du fichier APK de l'application.
  • Entrez la commande suivante :
mv nomfichierapkcompletici /system/app/nomfichierapkcompletici 
exit 
exit 
adb reboot 
  • L'appareil redémarrera maintenant. Votre application est maintenant enregistrée en tant qu'application système.

Pour les applications dont les APK sont sur le disque dur du PC

  • Ouvrez une invite de commande sur votre ordinateur et naviguez jusqu'à l'emplacement du fichier APK.
  • Activez le débogage USB sur votre appareil et connectez votre appareil à l'ordinateur via un câble USB.
  • Entrez les commandes suivantes :
adb remount
adb push nomdupkfichierapkici /system/app/
adb shell chmod 644 /system/app/nomdufichierapkici
adb reboot

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

3voto

Yevgeny Simkin Points 1066

Notez que lorsque vous jouez avec adb, vous installerez des applications via leur nom de fichier de package (ce qui signifie, à 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 tant que vous n'aurez pas désinstallé son prédécesseur.

Il sera utile d'ajouter adb à votre PATH afin que vous puissiez simplement vous rendre dans le répertoire où se trouve le fichier .apk et taper adb install myFile.apk.

0 votes

Merci! Je ne savais pas du tout pour le mécanisme de désinstallation :)

0 votes

N'a pas essayé avec des applications système, mais pour les applications habituelles /system/bin/pm (Gestionnaire de packages) a fonctionné pour moi. Comme pm install -r monFichier.apk (-r pour "remplacer"). De cette manière, vous n'avez pas besoin de désinstaller et de connaître le nom du package.

0voto

JimDaniel Points 4853

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

Une fois cela fait, changez vers le dossier contenant le fichier avec une console. Ensuite, connectez votre téléphone (via USB) et exécutez adb install nom_de_l'application.apk

0 votes

Voir les commentaires d'autres réponses. J'ai déjà activé les installations hors marché car j'avais swype installé :)

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X