Android - Suppression d'applications préinstallées avec adb

Où l'on montre comment supprimer des applications préinstallées sur un smartphone ou une tablette Android en ligne de commande avec adb (Android Debug Bridge).

Les smartphones et tablettes sous Android sont livrés avec des applications préinstallées qui peuvent parfois être désinstallées ou au mieux désactivées. Mais la désinstallation n'est pas proposée pour certaines applications. Il est toutefois possible de les désinstaller sans être root en utilisant l'outil en ligne de commande Android Debug Bridge (adb).

Noter que désinstaller via adb n'empêche pas de continuer à recevoir et installer les mises à jour officielles de l'appareil.

À savoir aussi, avec adb les applications ne sont pas complètement désinstallées. Elles ne sont désinstallées que pour l'utilisateur par défaut.

Installation de adb sur Ubuntu

On commence par installer ADB :

sudo apt-get install adb
On peut alors vérifier la version avec la commande :
adb version
Ce qui répond dans notre cas :
Android Debug Bridge version 1.0.41
Version 29.0.6-debian
Installed as /usr/lib/android-sdk/platform-tools/adb

Bien sûr il est possible d'installer adb sur Windows ou Mac. Les explications qui suivent restent valables pour ces environnements.

Activation du mode développeur et du débogage USB

Avant l'utilisation de la commande adb le mode développeur doit être activé sur l'appareil. La procédure d'activation du mode développeur peut changer selon les marques et les modèles, voir cette page Guide de l'utilisateur d'Android Studio - Activer les options pour les développeurs. Pour les tablettes et smartphones Samsung aller dans Paramètres → À propos du téléphone → Informations logicielles et appuyer 7 fois sur le champ Numéro de version.

Puis activer le débogage USB. La démarche d'activation dépend de la version Android de l'appareil, voir la page Guide de l'utilisateur d'Android Studio - Activer le débogage USB sur votre appareil (dans notre cas c'est Paramètres → Options de développement → Débogage USB).

Utilisation

Après connexion à l'ordinateur du smartphone ou de la tablette, via son câble USB, un message s'affiche pour demander d'autoriser l'accès aux données par l'ordinateur. Une fois l'autorisation effectuée on peut vérifier sur le PC que l'appareil est bien détecté par adb, avec la commande :

adb devices
La commande répond alors dans notre cas :
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
RF6M430T52E	device
Un message s'affiche sur l'appareil avec la demande "Autoriser le débogage USB ?". Choisir "Autoriser".

Nous pouvons maintenant lister tous les packages présents sur l'appareil avec la commande :

adb shell pm list packages
Ou encore pour avoir la liste dans l'ordre alphabétique :
adb shell pm list packages | sort
Ce qui nous donne une liste de plus de 400 packages :
package:android
package:android.auto_generated_rro_vendor__
package:android.autoinstalls.config.samsung
package:com.android.apps.tag
package:com.android.backupconfirm
package:com.android.bips
package:com.android.bluetooth
package:com.android.bluetoothmidiservice
package:com.android.bookmarkprovider
package:com.android.calllogbackup
package:com.android.cameraextensions
...
...
(pour avoir le nombre de packages listés exécuter la commande adb shell pm list packages | wc -l)

On se propose maintenant de trouver par exemple tous les packages Facebook préinstallés (ou volontairement installés). Pour cela on filtre la commande adb shell pm list packages avec un grep:

adb shell pm list packages | grep facebook
Ce qui répond dans notre cas :
package:com.facebook.services
package:com.facebook.katana
package:com.facebook.system
package:com.facebook.appmanager
La désinstallation d'un package est réalisée par la commande
adb shell pm uninstall -k --user 0 <nom_du_package>
Les 4 packages Facebook peuvent donc être désinstallés avec les commandes :
adb shell pm uninstall -k --user 0 com.facebook.services
adb shell pm uninstall -k --user 0 com.facebook.katana
adb shell pm uninstall -k --user 0 com.facebook.system
adb shell pm uninstall -k --user 0 com.facebook.appmanager

A connaître : une liste de commandes utiles de adb est maintenue dans ce fichier sur GitHub.

Cas de la suppression de Bixby

Bixby est l'assistant personnel "intelligent" des smartphones et tablettes Samsung similaire à Siri d'Apple et Cortana de Microsoft. Sur certains modèles une touche Bixby dédiée se trouve sur le côté gauche de l'appareil en-dessous des touches de volume. Sur d'autre modèles c'est le bouton de démarrage qui est utilisé pour lancer Bixby. Tout cela conduit à des lancements inopinés. Il reste possible de désactiver Bixby via les paramètres, mais on peut aussi procéder à une désinstallation via la commande adb. Voici comment.

La commande :

adb shell  pm list packages | grep bixby
Retourne dans notre cas les packages suivants :
package:com.samsung.android.app.settings.bixby
package:com.samsung.systemui.bixby2
package:com.samsung.android.bixby.service
package:com.samsung.android.bixby.agent
package:com.samsung.android.bixby.wakeup
On peut alors les désinstaller un par un avec les commandes :
adb shell pm uninstall -k --user 0 com.samsung.android.app.settings.bixby
adb shell pm uninstall -k --user 0 com.samsung.systemui.bixby2
adb shell pm uninstall -k --user 0 com.samsung.android.bixby.service
adb shell pm uninstall -k --user 0 com.samsung.android.bixby.agent
adb shell pm uninstall -k --user 0 com.samsung.android.bixby.wakeup
Après cela un appui sur la touche Bixby n'a plus aucun effet sur mon smartphone qui fonctionne toujours aussi bien (ce qui était aussi le but recherché !).

Mais il reste tout de même deux applications Bixby Routines et Bixby Vision dont les noms de packages ne contiennent pas le mot bixby mais sont respectivement com.samsung.android.app.routines et com.samsung.android.visionintelligence. On peut donc les désinstaller avec les commandes :

adb shell  pm uninstall -k --user 0 com.samsung.android.app.routines
adb shell  pm uninstall -k --user 0 com.samsung.android.visionintelligence

Réinstallation des applications préinstallées supprimées.

Comme indiqué plus haut, les applications ne sont supprimées que pour l'utilisateur par défaut. Mais les packages ne sont pas supprimés. La réinstallation d'une application est possible avec la commande :

adb shell pm install-existing <nom_du_package>
Par exemple pour réinstaller l'application GMail :
adb shell pm install-existing com.google.android.gm