21 votes

Désinstallation de l'application système échouée en utilisant 'adb shell pm uninstall'

J'ai tenté de forcer la désinstallation dans ADB, mais j'ai échoué :

$ adb shell pm uninstall -k org.openintents.filemanager
$ adb shell pm list packages -f | grep -i manager
package:/system/app/FileManager.apk=org.openintents.filemanager

Qu'est-ce qui s'est mal passé ici ? Que puis-je faire ?

J'ai utilisé le gestionnaire d'applications interne et il n'y a pas d'option pour le supprimer.

1 votes

Lors de la suppression manuelle d'une application du /system, n'oubliez pas de supprimer son dossier de données correspondant dans /data/data/«identifiant». Il existe également une trace de la signature apk précédente dans /data/system/packages.xml qui peut empêcher la réinstallation d'un package reconstruit avec une clé différente.

0 votes

Que vouliez-vous dire par ~"application système" ?

21voto

JordyOnrust Points 273

Eh bien, puisque le package FileManager.apk réside dans un répertoire /system/app/ c'est une application système. Ainsi, la façon générale de le supprimer est la suivante :

adb shell
su
mount -o rw,remount /system
rm -rf /system/app/FileManager.apk
rm -rf /data/data/org.openintents.filemanager
mount -o ro,remount /system
exit
exit

1 votes

Lorsque je lance mount -o ro,remount /system, je reçois une erreur: Appareil ou ressource occupée

1 votes

@IgorG. J'ai pu résoudre cela en répondant à une invitation sur l'appareil réel.

0 votes

@AlexB En fait, aucun message de demande n'apparaît. C'est un téléphone piraté personnalisé, je suppose.

9voto

Modifier: quand j'ai vu le commentaire à la réponse de CommonsWare je n'ai pas réalisé que c'était le même que celui qui posait la question... de toute façon, une petite explication peut être utile pour quelqu'un.

Comme vous l'avez mentionné, la façon la plus simple de désinstaller une application système est simplement de supprimer le fichier .apk. Les commandes adb install / adb uninstall sont utiles pour les applications régulières, pas les applications système. Puisque cet apk est situé dans /system/app, adb uninstall ne le supprimera pas.

Vous pouvez utiliser la commande suggérée (rm /system/app/VotreApp.apk), mais avant cela le dossier /system doit avoir un accès en écriture. Vous devrez voir comment remount /system sur votre appareil spécifique, essayez de rechercher "android remount +rw /system" et votre appareil).

Alternativement, vous pouvez utiliser une application capable à la fois de supprimer et de remonter et ayant un accès root, comme Root Explorer et Astro

0 votes

Merci aleadam ... l'intrigue s'épaissit car la suppression que j'ai faite a enlevé l'apk mais peut-être pas le cache ... Je ne parviens pas à installer depuis le marché ... cela échoue ... il semble que je doive soit vider le cache dalvik soit juste revenir à une image de sauvegarde de l'ensemble du ROM ... installer en ligne de commande avec adb ==> [INSTALL_FAILED_UPDATE_INCOMPATIBLE] ... impossible d'utiliser le marché pour télécharger l'installation ... obtenir "erreur d'installation mise à jour incompatible" ... je suis sur une rom personnalisée et j'ai une sauvegarde qui date de 2 semaines et je pourrais juste revenir à cela.

0 votes

lien ce que j'aurais dû faire est dans le 2ème post sur ce fil de discussion

1voto

Adrian Points 362

Le problème "Failure" a plus à voir avec adb shell ajoutant un saut de ligne DOS ^M (sur CentOS Linux en tout cas). Mettez la liste des applications à désinstaller dans un fichier et copiez-la directement sur l'appareil Android.

root@android:/root # dos2unix list-of-apps-to-uninstall.txt     
root@android:/root # for f in `cat list-of-apps-to-uninstall.txt` ; do echo $f; pm uninstall $f; done;

0voto

Tapemaster a fait un post sur Stack Overflow qui montre le truc nécessaire.

Faites ceci :

1. Installez adb sur votre ordinateur.

2. Root votre téléphone.

3. Entrez ces commandes dans votre ordinateur :

adb shell
su
mount -o remount,rw /system
rm /system/app/UnwantedApp*
pm uninstall org.unwantedapp
exit
exit

La troisième commande remonte /system en lecture-écriture. La quatrième commande supprime les fichiers .apk et/ou .odex de l'application. La cinquième commande termine la désinstallation.

Dans mon expérience : Si vous avez déjà entré la quatrième commande, alors la cinquième commande retournera Succès. Sinon, la cinquième commande retournera Échec.

Lorsque vous entrez les commandes ci-dessus, vous devez remplacer UnwantedApp par le nom de fichier réel de l'application (sans l'extension), et org.unwantedapp par le nom de package Java réel de l'application.

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