Hola, tenemos la respuesta a lo que estabas buscando, continúa leyendo y la obtendrás un poco más abajo.
Solución:
Sí. el comando es pm disable
. Debes ser root para hacer esto:
Abra shell y obtenga root:
PC> adb shell
[email protected]:/ $ su
Enumere todas las aplicaciones habilitadas, filtre por “calculadora”:
[email protected]:/ # pm list packages -e | grep 'calculator'
package:com.android.calculator2
Deshabilitar aplicación:
[email protected]:/ # pm disable com.android.calculator2
Package com.android.calculator2 new state: disabled
Lista de todas las aplicaciones deshabilitadas:
[email protected]:/ # 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
[email protected]:/ #
Algunas otras cosas que vale la pena señalar:
- En mis pruebas, las aplicaciones deshabilitadas de esta manera desaparecen por completo de la lista Configuración > Aplicaciones. Ni siquiera parecen mostrarse en la pestaña “Deshabilitado”
- Puede volver a habilitar aplicaciones con
pm enable
. De hecho, este parece ser el solamente manera de volver a habilitarlos, en mi experiencia.
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 Determinar el nombre del paquete de su aplicación para obtener el nombre del paquete de la aplicación en cuestión y usar shell adb para ejecutar estos comandos (requiere acceso de root):
adb shell su pm disable PACKAGE # disables the app and hides it in Settings -> Applications pm hide PACKAGE # alternative; for Android Lollipop and above cmd package suspend PACKAGE # alternative; package remains visible in Launcher and Settings app but cannot be used; a feature of Device Administration
PACKAGE
se refiere al nombre del paquete de la aplicación
Para restablecer la aplicación, reemplace desactivar con permitir, esconder con mostrary suspender con anular la suspensión en dicho comando y ejecútelo con privilegios de root.
Si tiene Android KitKat o superior y no tiene acceso de rootuse adb en PC para ejecutar este comando:
adb shell pm block PACKAGE # for Android KitKat adb shell pm hide PACKAGE # for Android Lollipop only adb shell pm disable-user PACKAGE # alternative to `pm hide`; for Android Lollipop and above; this works just like disabling an app through Settings app
Para restablecer la aplicación:
adb shell pm unblock PACKAGE # for Android KitKat adb shell pm unhide PACKAGE # for Android Lollipop and only if you used `pm hide` earlier adb shell pm enable PACKAGE # for Android Lollipop and above
Los cambios se producirían de inmediato.
Además de la respuesta de @eldarerathis, puede deshabilitar una aplicación para un usuario específico. Usé 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 raíz para realizar los cambios.
Primero, obtenga la identificación del usuario:
$ pm list users
Users:
UserInfo0:Alice:13 running
UserInfo11: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 hide
en vez de disable
. No estoy seguro de cuál es el mejor, pero vea esta respuesta. Lo contrario de hide
es unhide
(es posible que sea necesario reiniciar para efectuar unhide
).
Puede listar paquetes con pm list packages --user 11
. Dar -e
para listar paquetes habilitados o -d
si quieres 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).
Más adelante puedes encontrar las referencias de otros sys admins, tú asimismo eres capaz insertar el tuyo si dominas el tema.