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

J'ai adb l'exécution et l'appareil est connecté à mon système en mode de débogage,

Je veux désinstaller l'application en utilisant intent launch en utilisant adb shell am start <INTENT>

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

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

117
demandé sur Alex P. 2012-10-18 11:46:59

6 réponses

, Vous pouvez le faire à partir de la bad en utilisant cette commande:

adb shell am start -a android.intent.action.DELETE -d package:<your app package>
172
répondu pcans 2012-10-18 08:17:56

Utilisez cette commande dans cmd:

Adb shell pm uninstall-K com.nom de l'emballage

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.

211
répondu neverever415 2015-07-24 15:40:21

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 le 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écessiteraient la confirmation de l'utilisateur pour la suppression de l'application.

Les détails de ladite commande peuvent être connus en vérifiant l'utilisation de am à l'aide de adb shell am.

J'ai eu les informations sur ces commandes en utilisant Elixir 2 (utiliser n'importe quel équivalent App). Je l'ai utilisé pour montrer les activités de L'Application Package Installer (L'interface graphique que vous voyez lors de l'installation et de la suppression des applications) ainsi que les intentions connexes. Là vous allez.

La manière alternative que j'ai utilisée était: j'ai essayé de désinstaller l'application en utilisant L'interface graphique jusqu'à ce qu'on me montre la confirmation finale. Je n'ai pas confirmé mais exécutez 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 de 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 le action, données, drapeau et composant - assez pour l'objectif.

11
répondu Firelord 2015-12-10 21:02:14

Tandis que les réponses ci-dessus, mais dans le cas où vous avez plusieurs appareils connectés à votre ordinateur, puis la commande suivante peut être utilisée pour supprimer l'application de l'un d'eux:

adb -s <device-serial> shell pm uninstall <app-package-name>

Si vous voulez connaître la série de l'appareil, utilisez la commande suivante:

adb devices -l

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

6
répondu sttaq 2015-11-09 10:27:14

Dans mon cas, je fais un adb shell pm list packages pour voir d'abord quels sont les paquets/applications installés dans mon appareil ou émulateur Android, puis en localisant le paquet/application désiré, je fais un adb shell pm uninstall -k com.package.name.

3
répondu warfreak92 2016-12-19 08:44:47

Je suppose que vous activez developer mode sur votre appareil android et que vous êtes connecté à votre appareil et vous avez un accès shell (adb shell).

Une Fois cela fait, vous pouvez désinstaller l'application avec cette commande pm uninstall --user 0 <package.name>. 0 est root id - de cette façon, vous n'avez pas besoin trop racine de votre appareil.

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
1
répondu Lukasz Dynowski 2018-01-03 19:24:23