Команда adb shell, чтобы открыть диалоговое окно удаления пакета Android

У меня работает adb, и устройство подключено к моей системе в режиме отладки,

Я хочу удалить приложение, используя запуск запуска в оболочке adb, используя am start <INTENT>

Я не хочу удалять с помощью adb uninstall com.company.apppackage и не хочу этого делать, даже используя pm uninstall com.company.apppackage

Есть ли способ, которым я могу использовать действие action action (android.intent.action.DELETE), и пользователь получает запрос на удаление некоторой программы.

Ответ 1

Вы можете сделать это из adb с помощью этой команды:

adb shell am start -a android.intent.action.DELETE -d package:<your app package>

Ответ 2

Используйте эту команду в cmd:

adb shell pm uninstall -k com.packagename

Например:

adb shell pm uninstall -k com.fedmich.pagexray

Флаг -k указывает диспетчеру пакетов хранить каталоги кэша и данных, даже если приложение удалено. Если вы хотите очистить удаление, не указывайте -k.

Ответ 3

Используя ADB, вы можете использовать любую из следующих трех команд:

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"

Замените ПАКЕТ с именем пакета установленного пользовательского приложения. Приложение не должно быть администратором устройства для успешной работы команды. Все эти команды потребуют подтверждения пользователя для удаления приложения.

Сведения о указанной команде можно узнать, проверив использование am с помощью adb shell am.

Я получил информацию об этих командах, используя Elixir 2 (используйте любое эквивалентное приложение). Я использовал его, чтобы показать действия приложения Package Installer (графический интерфейс, который вы видите во время установки и удаления приложений), а также связанные с ним намерения. Там вы идете.

Альтернативный способ, которым я пользовался, был: я попытался удалить приложение с помощью GUI, пока мне не было показано окончательное подтверждение. Я не подтвердил, но выполнил команду

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

Кроме всего прочего, он показал мне полезные подробности о намерении, принятом в фоновом режиме. Пример:

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

Здесь вы можете увидеть действие, данные, флаг и компонент - достаточно для цели.

Ответ 4

В то время как вышеприведенные ответы работают, но если у вас есть несколько устройств, подключенных к вашему компьютеру, для удаления приложения из одного из них может быть использована следующая команда:

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

Если вы хотите узнать серийный номер устройства, используйте следующую команду:

adb devices -l

Это даст вам список подключенных устройств. В левом столбце показаны серийные номера устройств.

Ответ 5

В моем случае я делаю adb shell pm list packages, чтобы сначала увидеть, какие пакеты/приложения установлены на устройстве Android или эмуляторе, а затем, найдя нужный пакет/приложение, я делаю adb shell pm uninstall -k com.package.name.