commande shell adb pour faire apparaître la boîte de dialog de désinstallation du package Android

J’ai adb cours d’exécution et le périphérique est connecté à mon système en mode débogage,

Je veux désinstaller l’application en utilisant le lancement intentionnel en utilisant le adb shell am start

Je ne veux pas désinstaller en utilisant adb uninstall com.company.apppackage et je ne veux pas le faire même en utilisant le adb shell pm uninstall com.company.apppackage

Comment puis-je envoyer une intention avec l’action android.intent.action.DELETE pour un package spécifique permettant à l’utilisateur de voir l’invite et de désinstaller le programme?

Vous pouvez le faire depuis adb en utilisant cette commande:

 adb shell am start -a android.intent.action.DELETE -d package: 

Utilisez cette commande dans cmd:

adb shell pm désinstaller -k com.packagename

Par exemple:

 adb shell pm uninstall -k com.fedmich.pagexray 

L’indicateur -k indique au gestionnaire de paquets de conserver le cache et les répertoires de données, même si l’application est supprimée. Si vous voulez une désinstallation propre, ne spécifiez pas -k .

En utilisant ADB, vous pouvez utiliser l’une des trois commandes suivantes:

 adb shell am start -a android.intent.action.UNINSTALL_PACKAGE -d "package:PACKAGE" adb shell am start -n com.android.packageinstaller/.UninstallerActivity -d "package:PACKAGE" adb shell am start -a android.intent.action.DELETE -d "package:PACKAGE" 

Remplacez PACKAGE par le nom du package de l’application utilisateur installée. L’application ne doit pas être un administrateur de périphérique pour que la commande fonctionne correctement. Toutes ces commandes nécessitent la confirmation de l’utilisateur pour la suppression de l’application.

Les détails de ladite commande peuvent être connus en vérifiant que je suis en adb shell am utiliser avec adb shell am .

J’ai obtenu les informations sur ces commandes en utilisant Elixir 2 (utilisez une application équivalente). Je l’ai utilisé pour montrer les activités de l’application Package Installer (l’interface graphique que vous voyez pendant l’installation et la suppression des applications) ainsi que les intentions associées. Voilà.

L’autre méthode que j’ai utilisée était la suivante: j’ai essayé de désinstaller l’application en utilisant l’interface graphique jusqu’à ce que la confirmation finale s’affiche. Je n’ai pas confirmé mais exécuter la commande

 adb shell dumpsys activity recents # for Android 4.4 and above adb shell dumpsys activity activities # for Android 4.2.1 

Entre autres choses, il m’a montré des détails utiles sur l’intention passée en arrière-plan. Exemple:

 intent={act=android.intent.action.DELETE dat=package:com.bartat.android.elixir#com.bartat.android.elixir.MainActivity flg=0x10800000 cmp=com.android.packageinstaller/.UninstallerActivity} 

Ici, vous pouvez voir l’action, les données, l’indicateur et le composant, suffisants pour atteindre l’objective.

Alors que les réponses ci-dessus fonctionnent, mais si vous avez plusieurs périphériques connectés à votre ordinateur, la commande suivante peut être utilisée pour supprimer l’application de l’un d’eux:

 adb -s  shell pm uninstall  

Si vous souhaitez connaître le numéro de série du périphérique, utilisez la commande suivante:

 adb devices -l 

Cela vous donnera une liste des périphériques connectés. La colonne de gauche montre les séries de périphériques.

Dans mon cas, je fais un adb shell pm list packages pour voir en premier les paquets / applications installés sur mon périphérique ou émulateur Android, puis en localisant le paquet / app désiré, je fais un adb shell pm uninstall -k com.package.name

Je suppose que vous activez le developer mode sur votre appareil Android et que vous êtes connecté à votre appareil et que vous avez un access shell ( adb shell ).

Une fois cela fait, vous pouvez désinstaller l’application avec cette commande pm uninstall --user 0 . 0 est l’id root – de cette façon, vous n’avez pas besoin de rooter votre périphérique.

Voici un exemple de ce que j’ai fait sur mon Huawei P110 Lite

 # gain shell access $ adb shell # check who you are $ whoami shell # obtain user id $ id uid=2000(shell) gid=2000(shell) # list packages $ pm list packages | grep google package:com.google.android.youtube package:com.google.android.ext.services package:com.google.android.googlequicksearchbox package:com.google.android.onetimeinitializer package:com.google.android.ext.shared package:com.google.android.apps.docs.editors.sheets package:com.google.android.configupdater package:com.google.android.marvin.talkback package:com.google.android.apps.tachyon package:com.google.android.instantapps.supervisor package:com.google.android.setupwizard package:com.google.android.music package:com.google.android.apps.docs package:com.google.android.apps.maps package:com.google.android.webview package:com.google.android.syncadapters.contacts package:com.google.android.packageinstaller package:com.google.android.gm package:com.google.android.gms package:com.google.android.gsf package:com.google.android.tts package:com.google.android.partnersetup package:com.google.android.videos package:com.google.android.feedback package:com.google.android.printservice.recommendation package:com.google.android.apps.photos package:com.google.android.syncadapters.calendar package:com.google.android.gsf.login package:com.google.android.backuptransport package:com.google.android.inputmethod.latin # uninstall gmail app pm uninstall --user 0 com.google.android.gms