Me di cuenta de que las aplicaciones (como Google Contacts Sync) que se han deshabilitado con el administrador de aplicaciones de Android (KitKat) todavía se muestran como en ejecución cuando se usan herramientas de observación de procesos. Esto es cierto incluso después de reiniciar el dispositivo.
¿Por qué las aplicaciones deshabilitadas siguen ejecutándose? ¿Existe una forma efectiva (y segura) de desactivarlos realmente?
Las soluciones que requieren privilegios de root son aceptables.
(Tenga en cuenta que para el ejemplo específico anterior, puede decirle a Android que no sincronice sus contactos, pero aún ejecuta el proceso de sincronización de contactos de Google. Pero no nos detengamos en ese ejemplo ... es solo un ejemplo).
applications
4.4-kitkat
task-management
disable-app
RockPaperLizard
fuente
fuente
block/hide
), lo que me hace preguntarme qué está causando que la aplicación se cargue ahora. Otra cuestión es que, mientras se cargó en la memoria, puede observar su ausencia superficial por falta de fondo, temas, barra de estado y más. Quizás, una nueva pregunta se puede sacar de esto..apk
y datos atrás", por lo que la aplicación se vuelve "completamente no registrada e invisible para todo menos para el administrador de archivos", por lo que otras aplicaciones ya no pueden llamar a sus intenciones como pueden No los encuentre.Respuestas:
Su Android no necesita tener acceso de root para deshabilitar realmente una aplicación, si tiene la versión 4.4.xo superior. Todo lo que necesitas esadbconfiguración en PC y depuración de USB habilitada en un dispositivo no rooteado, o una aplicación de emulador de terminal para un dispositivo rooteado (también puede usar adb).
Si marca el
pm
uso del Administrador de paquetes ( ), veráPara Lollipop, sería
Para bloquear u ocultar un paquete (es seguro), simplemente haga
Para desbloquear o mostrar el paquete, haga
PACKAGE
→ nombre del paquete de una aplicación. Para saber el nombre del paquete de una aplicación:Agregue
adb shell
antes del mismo comando para ejecutarlos desde la PC.La función detrás de hide tiene el siguiente comentario dentro del código fuente
Se hacen comentarios similares para el bloque aquí .
Para verificar el reclamo, puede usar algunos servicios del sistema como
meminfo
,procstats
yactivity
usar la herramienta dumpsys o incluso enumerar todos los procesos que usanps
. No encontrará una presencia activa de la aplicación bloqueada / oculta.Lo mismo ocurre con muchas aplicaciones del sistema deshabilitadas usando GUI o
pm disable
no para todas las aplicaciones,ya que incluso una aplicación deshabilitada puede recibir transmisiones para las que se ha registrado, lo que solo se puede hacer si está cargada en la memoria1 . Sin embargo, una aplicación deshabilitada no puede actuar por sí sola, ni puede ser ejecutada por ninguna otra aplicación.He argumentado algunas de las diferencias entre ocultar / bloquear y desactivar en mi pregunta pm hide VS pm disable: la crisis de identidad . Proporciona solo información complementaria a esta respuesta, por lo que puede omitirla.
EDITAR:
Parece que la técnica no funciona para todas las aplicaciones en Android KitKat. En ese caso, simplemente revoque el permiso de lectura del APK de la aplicación o elimine la extensión .APK del nombre del archivo de la aplicación (este último lo sugirió Jaskaranbir una vez), seguido de un reinicio suave / completo. Esto es lo mismo que eliminar una aplicación del sistema, con la única diferencia de que todos los archivos permanecerían en su lugar.
Ambos pasos se pueden ejecutar con cualquier aplicación de administrador de archivos raíz. La forma de la línea de comando es:
1: falta de evidencia técnica para respaldar el hecho
fuente
pm block/hide
así que no la toque.adb shell su -c "chmod 111 /system/app/SystemUI.apk"
. 111 significa establecer solo permisos ejecutables para el propietario, el grupo y otros. Reinicie y la aplicación faltará al sistema. También puedes configurarlo000
.