34 votes

Comment puis-je 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 j'essaie d'exécuter le .apk, j'obtiens le message "application non installée"). Quelle est la méthode appropriée pour installer un fichier .apk d'une application système?

47voto

alexus Points 1668

Vous devrez pousser le .apk vers le téléphone vers la partition Système vers le dossier /system/app ou /system/priv-app lorsque vous utilisez 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 sur /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 .apk :

adb push mon-app.apk /sdcard/
adb shell
su
cd /sdcard
mv mon-app.apk /system/app
# ou lorsque vous utilisez Android 4.3 ou version supérieure
mv mon-app.apk /system/priv-app

Après, si les permissions ne sont pas déjà définies, changez-les. Toutes les applications système doivent avoir les permissions rw-r--r--. Vous pouvez également les changer 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 .apk, vous devrez redémarrer votre appareil. Par exemple avec adb reboot.

0 votes

Oui, j'ai pensé que ce serait la meilleure façon de procéder, j'ai essayé, ça dit "mauvaise signature". J'ai utilisé le Mms.apk qui fait partie de la rom .zip que j'ai utilisée pour installer l'actuel système Android 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 eu une erreur "failed on 'XXX.apk' - Cross-device link". J'ai pu CP et RM l'apk comme décrit dans android.stackexchange.com/questions/75920/…

2 votes

Considérez l'utilisation de cp au lieu de mv car vous déplacez entre des systèmes de fichiers différents et cela 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ù le message 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 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 saisissez les commandes suivantes :
adb remount
adb shell
su
cd /data/app/
  • Saisissez la commande ls nom_de_l'application* (où "nom_de_l'application" est l'ID de l'application sur Google Play Store ; assurez-vous d'inclure l'astérisque à la fin). Cette commande affichera le nom complet du fichier APK de l'application.
  • Saisissez la commande suivante :
mv nom_complet_apk_ici /system/app/nom_complet_apk_ici
exit
exit
adb reboot
  • L'appareil va maintenant redémarrer. Votre application est maintenant sauvegardé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 rendez-vous à l'endroit où se trouve le 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 nom-du-fichier-apk-ici /system/app/
adb shell chmod 644 /system/app/nom-du-fichier-apk-ici
adb reboot

Votre téléphone redémarrera automatiquement. Votre application sera désormais sauvegardé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 qu'à l'invite de commande, vous taperez> adb install monFichier.apk)

mais vous les désinstallerez via leur nom de package (> adb uninstall com.cela.cet.autrechose)

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 monFichier.apk.

0 votes

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

0 votes

N'a pas essayé avec les applications système, mais pour les applications habituelles, l'utilitaire /system/bin/pm (Gestionnaire de paquets) a fonctionné pour moi. Comme pm install -r monFichier.apk (-r pour "remplacer"). De cette façon, 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 hors marché" sur votre appareil.

Une fois que cela est fait, vous vous rendez dans le dossier contenant le fichier avec une console. Ensuite, connectez votre téléphone (via USB) et exécutez adb install nomdelapplication.apk

0 votes

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

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