lista - Comando de adb shell para mostrar el cuadro de diálogo de desinstalación del paquete de Android
comandos adb shell (6)
En mi caso, hago los adb shell pm list packages
para ver primero cuáles son los paquetes / aplicaciones instalados en mi dispositivo o emulador Android, luego al ubicar el paquete / aplicación deseado, realizo un adb shell pm uninstall -k com.package.name
.
Tengo un adb en ejecución y el dispositivo está conectado a mi sistema en modo de depuración,
Quiero desinstalar la aplicación utilizando el intento de lanzamiento en adb shell, usando am start <INTENT>
No quiero desinstalar usando adb uninstall com.company.apppackage
y no quiero hacerlo incluso usando pm uninstall com.company.apppackage
¿Hay alguna forma de que pueda usar la acción delete de intention ( android.intent.action.DELETE
) y el usuario recibe instrucciones para desinstalar algún programa?
Puede hacerlo desde adb usando este comando:
adb shell am start -a android.intent.action.DELETE -d package:<your app package>
Si bien las respuestas anteriores funcionan, pero en caso de que tenga varios dispositivos conectados a su computadora, entonces se puede usar el siguiente comando para eliminar la aplicación de uno de ellos:
adb -s <device-serial> shell pm uninstall <app-package-name>
Si desea averiguar el número de serie del dispositivo, utilice el siguiente comando:
adb devices -l
Esto le dará una lista de dispositivos conectados. La columna de la izquierda muestra las publicaciones seriadas del dispositivo.
Supongo que habilitas el developer mode
en tu dispositivo Android y estás conectado a tu dispositivo y tienes acceso al shell ( adb shell
).
Una vez hecho esto, puede desinstalar la aplicación con este comando pm uninstall --user 0 <package.name>
. 0 es el ID de la raíz ; de este modo, no es necesario que enrute su dispositivo.
Aquí hay un ejemplo de cómo lo hice en mi 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
Usando ADB, puede usar cualquiera de los siguientes tres comandos:
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"
Reemplace el PAQUETE con el nombre del paquete de la aplicación de usuario instalada. La aplicación no debe ser un administrador de dispositivo para que el comando funcione correctamente. Todos esos comandos requerirían la confirmación del usuario para la eliminación de la aplicación.
Los detalles de dicho comando se pueden conocer al verificar el uso de adb shell am
usando adb shell am
.
Obtuve la información sobre esos comandos usando Elixir 2 (use cualquier aplicación equivalente). Lo usé para mostrar las actividades de la aplicación Package Installer (la GUI que ves durante la instalación y eliminación de aplicaciones), así como las intenciones relacionadas. Ahí tienes.
La forma alternativa que utilicé fue: intenté desinstalar la aplicación usando GUI hasta que me mostraron la confirmación final. No confirmé pero ejecuté el comando
adb shell dumpsys activity recents # for Android 4.4 and above
adb shell dumpsys activity activities # for Android 4.2.1
Entre otras cosas, me mostró detalles útiles de la intención pasada en segundo plano. Ejemplo:
intent={act=android.intent.action.DELETE dat=package:com.bartat.android.elixir#com.bartat.android.elixir.MainActivity flg=0x10800000 cmp=com.android.packageinstaller/.UninstallerActivity}
Aquí puede ver la acción, los datos, el indicador y el componente, suficientes para el objetivo.
Use este comando en cmd:
adb shell pm uninstall -k com.packagename
Por ejemplo:
adb shell pm uninstall -k com.fedmich.pagexray
El -k
le dice al gestor de paquetes que mantenga los directorios de caché y datos, aunque la aplicación se haya eliminado. Si desea una desinstalación limpia, no especifique -k
.