Respuestas:
Si. El comando es pm disable <package name>
. Debe ser root para hacer esto:
Abra el shell y obtenga root:
PC> adb shell
shell@hammerhead:/ $ su
Enumere todas las aplicaciones habilitadas, filtre por "calculadora":
root@hammerhead:/ # pm list packages -e | grep 'calculator'
package:com.android.calculator2
Deshabilitar aplicación:
root@hammerhead:/ # pm disable com.android.calculator2
Package com.android.calculator2 new state: disabled
Listar todas las aplicaciones deshabilitadas:
root@hammerhead:/ # pm list packages -d
package:com.android.calculator2
package:com.google.android.apps.inputmethod.hindi
package:jp.co.omronsoft.iwnnime.ml
package:com.google.android.inputmethod.pinyin
package:com.google.android.inputmethod.korean
package:com.google.earth
root@hammerhead:/ #
Algunas otras cosas que vale la pena señalar:
pm enable <package name>
. De hecho, esta parece ser la única forma de volver a habilitarlos, en mi experiencia.Manifest
o similar (no soy un desarrollador de Android, así que no puedo decirlo).
Además de la respuesta de @eldarerathis, puede deshabilitar una aplicación para un usuario específico. Utilicé este método para eliminar algunas aplicaciones de un usuario restringido que no figuraban en la pantalla de configuración del usuario. Todos los comandos de un adb shell
. Se requiere acceso a la raíz para realizar cambios.
En primer lugar, obtenga la identificación del usuario:
$ pm list users
Users:
UserInfo{0:Alice:13} running
UserInfo{11:Bob:18} running
Entonces
$ pm disable --user 11 com.cyanogenmod.filemanager
Package com.cyanogenmod.filemanager new state: disabled-user
Para volver a habilitar
# pm enable --user 11 com.cyanogenmod.filemanager
En este ejemplo, Alice puede usar el administrador de archivos pero Bob no.
Puedes hacer algo similar con en hide
lugar de disable
. No estoy seguro de cuál es el mejor, pero vea esta respuesta . Lo contrario de hide
es unhide
(puede ser necesario reiniciar para efectuar unhide
).
Puede enumerar paquetes con pm list pacakges --user 11
. Dar -e
a la lista de paquetes habilitados o -d
si desea ver los deshabilitados. Parece que no hay filtro para paquetes ocultos.
FWIW, probé lo anterior en Lollipop con CM 12.1 en un Amazon Fire (KFFOWI).
Esto debería funcionar independientemente de si la aplicación es una aplicación del sistema o una aplicación de terceros (instalada por el usuario).
Vea mi respuesta en Determine el nombre del paquete de su aplicación para obtener el nombre del paquete de la aplicación en cuestión y use adb shell para ejecutar estos comandos ( requiere acceso de root ):
adb shell su pm disable PACKAGE # deshabilita la aplicación y la oculta en Configuración -> Aplicaciones pm hide PAQUETE # alternativa; para Android Lollipop y superior cmd package suspend PAQUETE # alternativa; el paquete permanece visible en la aplicación Launcher and Settings pero no se puede usar; una característica de la administración de dispositivos
PACKAGE
se refiere al nombre del paquete de la aplicación
Para reinstalar la aplicación, reemplace desactivar con permitir , ocultar con Unhide , y suspender con unsuspend en la dicha orden y ejecutarlo con privilegios de root.
Si tiene Android KitKat o superior y no tiene acceso de root , use adb en la PC para ejecutar este comando:
adb shell pm block PAQUETE # para Android KitKat adb shell pm hide PAQUETE # solo para Android Lollipop adb shell pm disable-user PACKAGE # alternativa a `pm hide`; para Android Lollipop y superior; esto funciona como deshabilitar una aplicación a través de la aplicación Configuración
Para restablecer la aplicación:
adb shell pm desbloquear PAQUETE # para Android KitKat adb shell pm muestra el PAQUETE # para Android Lollipop y solo si usó `pm hide` anteriormente adb shell pm enable PACKAGE # para Android Lollipop y superior
Los cambios tendrían lugar de inmediato.