J’ai toujours été embêté avec mes appareils Android, en particulier mon ordiphone actuel (un Xiaomi Redmi Note 3) parce que plein d’applications arrivent par défaut et, selon la « norme » communément admise sur les appareils mobiles où on contrôle de moins en moins la machine, pas désinstallables ni même désactivables (en tous cas pas facilement… rooter l’appareil présente des risques notamment).
Puis hier je tombe sur ce pouet :
Je viens de découvrir comment désinstaller une appli système sans être root ! 😍
#AndroiDeMesDeux
adb shell pm uninstall -k --user 0 com.facebook.system
Et là les portes s’ouvrent pour un nettoyage des saloperies de Google et du fabricant, notamment celles qui tournent en tâche de fond pour rien en cramant la batterie et en bazardant des données on ne sait où.
Mise en place de l’environnement.
En gros on passe par les outils de développement pour Android pour lancer des commandes de suppression de certaines applications.
Pour ça il faut commencer par installer adb (Android Debug Bridge), perso j’ai suivi les indications proposées là, en passant par la solution “Minimal ADB and Fastboot” vu que je ne compte pas faire de développement Android.
Ensuite on peut brancher l’appareil en USB et aller activer le mode développeur comme indiqué dans la procédure précédente (forcément dans mon cas la surcouche constructeur faisait que c’était pas sur la même ligne qu’il fallait chercher, en fait il fallait multi-cliquer sur “Version MIUI” plutôt que “Numéro de build”) puis activer le débogage USB (bon là comme j’ai fait les choses dans le désordre, j’avais pas de driver et j’ai pas réussi à redéclencher sa recherche… finalement je suis passé par la procédure décrite ici jusqu’à l’étape où il installe le driver puis j’ai annulé l’installation et tout allait bien).
Grand nettoyage
La principale difficulté est d’identifier les applications à désinstaller (et accessoirement s’assurer un minimum qu’on peut bien les désinstaller sans danger).
Commencez par un petit
adb shell pm list packages
pour connaître le nom exact de l'appli à supprimer.
Dans mon cas comme le terminal sous Windows (oui un jour j’installerai un Linux chez moi mais j’ai pas encore eu le courage) est tout pourri, j’ai préféré envoyer la liste dans un fichier :
adb shell pm list packages > tmp.txt
Puis j’ai foutu tout ça dans un tableur histoire de trier alphabétiquement et pouvoir prendre des notes sur ce que je désinstalle et à quoi ça correspond (ça peut être bien si par la suite on a des problèmes et qu’on veut retrouver ce qu’on a fait).
Bon partant de là reste un point assez chiant : identifier le nom interne des applications dans la liste. Des fois c’est assez ressemblant au nom “publique”, d’autres fois non. Il se trouve qu’il y a longtemps j’avais installé Disable Manager, une application censée permettre justement de désactiver des applications système… mais qui s’est avérée nécessiter des droits root. Il se trouve qu’elle a un intérêt : elle liste toutes les applications en indiquant à la fois le nom technique interne et le nom publique visible, du coup ça permet d’avoir la correspondance.
À ce stade j’ai pu virer les conneries telles que Gmail, Google Photo ou encore l’appli de météo fournie par le constructeur.
adb shell pm uninstall --user 0 com.google.android.gm
adb shell pm uninstall --user 0 com.google.android.apps.photos
adb shell pm uninstall --user 0 com.miui.weather2
...
Après c’est plus compliqué pour les applications un peu plus système, parce qu’on a là dedans des trucs effectivement système, des conneries (genre fonds d’écrans animés) et des trucs nuisibles (genre tracking publicitaires). En fouillant un peu j’ai trouvé plusieurs pages listant des applications non-nécessaires, notamment celle-ci et celle-là (spécifique pour MiUI, la surcouche Xiaomi)… Du coup j’ai viré 2-3 trucs mais avec parcimonie parce que j’ai pas trop envie de flinguer mon appareil, juste d’économiser la batterie et de le rendre un peu moins bavard avec l’extérieure (genre si je pouvais m’éviter d’activer systématiquement le mode économie d’énergie ça m’arrangerait… jusqu’à présent c’était le seul moyen que j’avais trouvé pour empêcher les Gmail et autres de se relancer en tâche de fond).
Voilà, maintenant je croise les doigts en espérant n’avoir rien cassé
Ajout du 14/08/2018 à 21h35
Je viens de tomber sur un autre article sur le sujet qui fait suite au même pouet avec quelques éléments complémentaires, comme des indications spécifiques à Archlinux (là où moi je suis passé par Windows) ou bien la précision suivante :
Comme il le précise lui-même un peu plus tard, il est à noter que l'argument -k est inutile, car sert exclusivement à conserver les paramètres et données de l'application. Dans un cas de nettoyage avancé, nous pouvons l'omettre pour supprimer complètement les applications visées.
Du coup j’ai enlevé le -k
de mon exemple plus haut.