Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Leyendo ActivityManager-logs en un dispositivo de Jelly Bean?

Jelly Bean ha eliminado la capacidad de leer los registros de otras aplicaciones (de acuerdo con esta charla de E / S), que es una mejora de seguridad sensible. Sin embargo, necesito leer ActivityManager -logs para que mi aplicación funcione (para ver qué aplicación está iniciando actualmente). Para hacer esto, estaba usando

 private static final String clearLogcat = "logcat -c"; private static final String logcatCommand = "logcat ActivityManager:I *:S"; //... 

Que ya no funciona, ya que solo puedo leer los registros de mi aplicación en Jelly Bean. ¿Existe una solución alternativa para averiguar cuándo se está iniciando otra aplicación (aparte de root)? Entiendo por qué no deberíamos ser capaces de leer los registros de otras aplicaciones (algo así: debería ser responsabilidad de los otros desarrolladores asegurarse de que no se registre información personal, no mía al ser impedido de leer el registro), pero yo No entiendo por qué ActivityManager , una clase de marco, se incluye en esa directiva …

Gracias,
Mella

2 Solutions collect form web for “Leyendo ActivityManager-logs en un dispositivo de Jelly Bean?”

Hay una extensa discusión de este tema aquí . Desafortunadamente, es "comportamiento esperado" y como tal no será fijo. La única solución actual (para leer los registros desde una aplicación en JB y superiores) es conceder manualmente el permiso a la aplicación mediante adb:

adb shell pm grant <pkg> android.permission.READ_LOGS

Un tal permiso concedido:

  • Sobrevive a los reinicios
  • Sobrevive a las actualizaciones de la aplicación (es decir, "adb install -r")
  • No sobrevive si la aplicación se ha desinstalado y vuelve a instalarse

Es obvio que esto no es algo que un usuario normal puede esperar que haga. El equipo de Android promete una solución GUI (en la que los usuarios pueden conceder este permiso en el menú Settings de su dispositivo), pero la funcionalidad se eliminó antes de que se implementara la "corrección".

En primer lugar, ActivityManager no es una aplicación … es una clase que forma parte del marco de aplicación de Android.

En segundo lugar, si el equipo de Android deliberadamente salió de su camino para evitar que esto funcione, entonces dudo que haya una laguna de seguridad a su alrededor. El hecho es que las aplicaciones de terceros no deberían tener que confiar en logcat logs para funcionar correctamente. Si da algunos detalles sobre la razón por la que necesita leer estos registros, tal vez podamos ayudarle a señalarle una solución mejor.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.