Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Attention, ce billet se traine depuis plus de 3 mois. Les informations qu'il contient ne sont peut-être plus à jour.


Nettoyer Android sans être root

Rédigé par dada / / 16 commentaires


Les vieux téléphones sous des vieilles versions d'Android, c'est la plaie. Dans la famille, il y en a un, un Wiko Rainbow Lite 4G sous Android 5.1.1. Il n'est, évidemment, plus supporté par son constructeur et les ROM alternatives n'existent pas : il est en fin de vie et son utilisation est dangereuse. M'enfin, on doit faire avec en attendant de le changer.

Dans les cochonneries qu'une vieille version d'Android traîne avec elle, en plus des failles de sécu, il y a l'espace disque complètement pris par les applications, Google en tête. La succession de mises à jour a complètement obstrué le peu de mémoire interne de la bête, la rendant peu utilisable.

La solution ? Supprimer les applications inutilisées pour laisser souffler l'OS et dégager les alertes incessantes "Mettez à jour les applications" et "Plus d'espace disque suffisant pour mettre à jour les applications" ! Problème, il n'y a quasiment aucune application tierce et seules les Google Machins monopolisent la carte mémoire. Applications qu'on ne peut pas supprimer en passant par la jolie interface désuète d'Android Lollipop.

J'avais entendu parler d'un toot racontant qu'il était possible de s'en sortir avec quelques commandes ADB. Une demande d'aide sur Mastodon et quelques minutes plus tard, on est parti !

Merci les copains !

Voici donc un rapide tutoriel pour vous en sortir si l'envie vous prend de nettoyer un vieux smartphone, sans être root, de toutes les applications sans intérêt.

Note importante : vous pouvez rendre votre téléphone inutilisable en supprimant une application qu-il-aurait-pas-fallu-la-supprimer. Faites attention !

Installer ADB

Sans lui, vous ne pourrez rien faire :
# apt install android-tools-adb

Mode développeur

- Passez votre téléphone en mode développeur en tapotant sur son numéro de build.

- Branchez votre téléphone à votre PC.

- Vérifiez qu'il repère bien votre téléphone avec la commande adb devices.
$ adb devices
List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
4326d6ec    device

"4326d6ec device" indique qu'il y a bien un téléphone reconnu par mon PC.

Lister les applications

Si vous en êtes là, vous devriez pouvoir lister les applications installées dans votre téléphone :
$ adb shell pm list packages
package:com.qrd.omadownload
package:com.android.providers.telephony
package:com.google.android.googlequicksearchbox
package:com.android.providers.calendar
package:com.android.providers.media
[...]

La suppression

Pour supprimer une application dont vous n'avez plus rien à faire :
$ adb shell pm uninstall --user 0 com.google.android.youtube
Success
Le Success parle de lui même : l'application YouTube a dégagé du téléphone !

Mon nettoyage

Alerte : ne faites pas ça chez vous sans prendre le temps de réfléchir. Le propriétaire du téléphone massacré ci-dessous a des besoins très limités !

Voici la liste des applications supprimées du Wiko qui a passé un sale quart d'heure entre mes mains et qui marche toujours :
$ adb shell pm uninstall --user 0 com.google.android.youtube
$ adb shell pm uninstall --user 0 com.google.android.music
$ adb shell pm uninstall --user 0 com.google.android.talk
$ adb shell pm uninstall --user 0 com.google.android.videos
$ adb shell pm uninstall --user 0 com.google.android.apps.genie.geniewidget
$ adb shell pm uninstall --user 0 com.android.chrome
$ adb shell pm uninstall --user 0 com.google.android.apps.docs
$ adb shell pm uninstall --user 0 com.google.android.apps.photos
$ adb shell pm uninstall --user 0 com.google.android.apps.cloudprint
$ adb shell pm uninstall --user 0 com.tomaszmarzeion.notepad
$ adb shell pm uninstall --user 0 com.google.android.apps.maps
$ adb shell pm uninstall --user 0 com.google.android.googlequicksearchbox
$ adb shell pm uninstall --user 0 com.android.music
Et voilà !

Pour finir et si vous voulez aller plus loin, foncez lire le billet d'Étienne Deparis : Désinstaller des applications système d'Android.

16 commentaires

#1  - Arnauld a dit :

Et pour --user, que met-on ? Comment trouver l'user ? Merc

Répondre
#2  - Dan3542 a dit :

user 0

Répondre
#3  - Rototo a dit :

Tu mets le chiffre 0 ce qui correspond au user root

Répondre
#4  - shoooryuken a dit :

Génial! merci beaucoup pour l'astuce, justement au moment ou j'en avais besoin!

merci

Répondre
#5  - mc11 a dit :

Merci beaucoup.
Mon vieux GT-I9505 sous Android 5.0.1 est nettoyé

Répondre
#6  - Bonob0h a dit :

Quelques captures d'écran seraient quand même plus claire pour ceux qui ne ne connaissent pas la console etc ...

Reste à savoir si ça fonctionne aussi avec les appli d'opérateurs ...

Répondre
#7  - dada a dit :

Je te redirige vers l'article que je lie en bas de mon billet, il y a des captures d'écran. Après, si la console n'est pas ton fort, j'hésite à t'encourager à bidouiller ton téléphone...

Répondre
#8  - loupio a dit :

Salut,
merci pour l'astuce !

Répondre
#9  - anatolem a dit :

Est-ce que la manipulation pourrait fonctionner sur un tablette ?
A pluche.

Répondre
#10  - dada a dit :

Ça marche sur Android, du coup, ça devrait fonctionner sur téléphone ET tablette. Je dois avoir de quoi tester. Je te dis ça demain.
Mais normalement, c'est bon.

Répondre
#11  - Chrigou a dit :

Et si on veut réinstaller ce qu'on a enlevé, ne suffit-il pas de faire:
adb shell pm install --user 0 com.google.android.youtube
?

Répondre
#12  - tiery a dit :

Bonsoir,
Dommage que cette manipulation ne fonctionne pas sur une vieille tablette que j'ai sous android 4.2.2.(ezee tab973, acheté à regret :/)
J'ai droit à cela dans le terminal :
List of devices attached
???????????? no permissions
Je suppose qu'il faut un android récent !

Répondre
#13  - elgrosp a dit :

As-tu bien activé le débogage USB dans les options développeur?

Répondre
#14  - Mreve a dit :

Salut,

(C'est SebSauvage qui m'amène ;) )

En fait cette méthode ne permet pas de désinstaller entièrement toutes les applications.

Il faut savoir que dans les ROM Stock (OS installé par défaut) les applications système sont stockés dans la partition /SYSTEM qui est en read-only. Le cache et les données de l'application sont stockés dans la partition /DATA. Cette partition /DATA constitue l'espace utilisateur. Elle contient à la fois le cache et les certaines données des applis systèmes mais aussi les applis "normales" dans leur intégralité.

Sans la possibilité de monter la partition /SYSTEM en read-write (pas de droit root), il est donc impossible de supprimer physiquement les applications systèmes. On peut simplement supprimer leur cache et les données utilisateurs. C'est ce que fait la commande : adb shell pm uninstall --user 0 nom_du_paquet
Elle supprime tout ce qui traîne dans /DATA empêchant ainsi à tout utilisateur d'utiliser l'application (ou paquet).

Une simple restauration d'usine réinstalle tout !!

Note : Pour retrouver facilement des paquets, on peut utiliser grep. Exemple :
adb shell pm list packages | grep 'google'

Répondre
#15  - kalagani a dit :

Bonjour,
idem tiery, sur un S2 en Android 4.1.2
pourtant en mode développeur et USB debug, les commandes sont en Failure:
adb shell pm uninstall -k --user 0 com.google.android.music
Failure

Répondre
#16  - Aisyk a dit :

Bonjour,

De mon côté j'ai un souci de permission udev...

"adb shell pm list packages
error: insufficient permissions for device: user in plugdev group; are your udev rules wrong?
See [http://developer.android.com/tools/device.html] for more information"

Aucune information sur la doc à ce sujet...

Répondre

Fil RSS des commentaires de cet article

Écrire un commentaire

Quelle est le sixième caractère du mot jf2d3kx ?