¿Cómo puedo acceder a los archivos de registro de Android en mi Nexus 7 sin acceso de root?

9

Dado que aLogcat ahora ya no funciona con Jelly Bean , ¿cómo puedo acceder a los archivos de registro del sistema en mi dispositivo sin acceso de root o sin conectarlo a una computadora?

Yo he intentado usar adb logcatde mi PC y que funcionaba bien, así que sé que un montón de mensajes se está registrando.

Sin embargo, el uso logcatde Android Terminal Emulator en mi Nexus 7 no muestra casi ningún resultado y, adb logcatdesde Android Terminal Emulator , inicia el demonio, pero luego dice - waiting for device -y no aparece nada más.

Entonces, ¿es posible acceder a los archivos de registro de Android en mi Nexus 7 sin acceso de root ?

Mark Booth
fuente
@Izzy: el punto de esta pregunta es que todas las soluciones en mi otra pregunta (a la que me vinculé en esta pregunta) requieren acceso de root. Si bien estas soluciones son útiles para aquellos que han rooteado sus dispositivos, quería una solución más específica para aquellos que no han rooteado sus dispositivos.
Mark Booth
Puede encontrar que PhoneHome vale la pena echarle un vistazo
Dori

Respuestas:

12

No, por razones de seguridad, no es posible acceder a los archivos de registro de Android en el Nexus 7 (o cualquier otro dispositivo que ejecute Jelly Bean o superior) sin acceso de root. Google cambió eso con Jelly Bean.

Le sugiero que espere hasta que los lectores logcat como aLogCat y tales se arreglen (es decir, requerirán acceso raíz para mostrar todos los registros).

De AISEC-TR-2012-001-Android-OS-Security.pdf - 3.3 Modelo de permiso de Android :

El permiso READ_LOGS puede sustituir lo siguiente en muchos dispositivos, según la versión de Android y, por lo tanto, las versiones estándar de las aplicaciones instaladas:

  • LEER_CONTACTOS

  • GET_TASKS: cada actividad iniciada se enumera en los registros del sistema

  • READ_HISTORY_BOOKMARKS: abrir nuevas páginas web es una actividad del navegador y, por lo tanto, se registra

  • READ_SMS

Todas las soluciones a continuación requieren acceso de root :

Debe ejecutar logcat como root en un shell o otorgarlo manualmente mediante el comando shell pm (se requiere root) también funciona (consulte XDA , intercambie org.jtb.alogcat.donate con el nombre del paquete de la aplicación):

pm grant org.jtb.alogcat.donate android.permission.READ_LOGS

Esto es para los perezosos y no se sugiere: si estás desesperado, descuidado y perezoso, puedes solucionarlo dando a cada aplicación el permiso READ_LOGS aplicando este truco feo e inseguro ( Chainfire a través de Twitter ):

chmod 04755 /system/bin/logcat

Para citar la publicación G + del desarrollador de CyanogenMod Koushik Dutta :

¿Cambiaron los permisos / comportamiento del Registro de Android en JellyBean?

Parece que si una aplicación ejecuta "logcat" ahora, solo puede ver las entradas de registro creadas por su UID. Las líneas de registro de otros UID no se muestran. Básicamente, parece estar filtrado ahora.

Tengo los mismos permisos que de costumbre. También se confirmó que lo mismo está sucediendo en otras aplicaciones de recopilación de registros.

ce4
fuente
No hay forma sin raíz de lo que sé. Por el bien de la seguridad. Comenzando con JellyBean, el permiso read_logs ya no tiene que otorgarse (cada aplicación solo puede ver sus propios registros de todos modos).
ce4
Gracias por la edición y el enlace a xda, lo integré.
ce4
Gracias por agregar la pm grantopción. Tenga en cuenta que, como ahora digo en mi otra respuesta , debe especificar un paquete ligeramente diferente si no está utilizando la versión de donación de aLogcat :pm grant org.jtb.alogcat android.permission.READ_LOGS
Mark Booth
El documento de referencia hace para explicar cómo READ_LOGSes igual READ_CONTACTSen algunas plataformas. Supongo que eso significa que algunas aplicaciones ponen datos de contacto en los registros, pero eso no es realmente lo mismo READ_CONTACTS. Pero luego diría que el periódico está escrito en un tono alarmista.
Flujo
READ_LOGS pierde mucha más información que solo datos de contacto. Está el nombre del usuario, probablemente la dirección de Gmail, las ubicaciones, las aplicaciones instaladas (incluso el uso de la aplicación), etc. Además: se ha utilizado para leer y extraer direcciones de volcados de pila de demonios del sistema en los días previos a ASLR por exploits raíz. Ahora que están apagados en gran parte (4.1 ±), puede obtener protección contra el enjambre (compárelo con no vacunar a su hijo en una población vacunada libre de enfermedades). Surgieron problemas y Google hizo lo correcto.
ce4
1

Estoy confundido por esto, aunque explicaría algunas cosas.

Al ejecutar la misma aplicación en mi nexus7 y mi galaxy nexus, ambos en jellybean, el teléfono ve la salida de registro de todas las aplicaciones, la tableta no. Esto diría que no es jellybean, es el nexus7. Respaldando esto, acabo de comprobar y ambos tienen diferentes núcleos. La tableta, con una más nueva.

Tal vez sea el núcleo actualizado lo que significa que los registros no aparecen.

Supongo que tendré que rootear después de todo: (

Russ Wheeler
fuente
Eso es interesante Russ, gracias por la información adicional.
Mark Booth
En realidad, ahora me han informado de manera confiable que es porque la aplicación que estoy usando para ver los registros se instaló en mi máquina cuando tenía ICS, por lo que retiene los permisos para ver los registros.
Russ Wheeler
1

He desarrollado una aplicación Logcat que utiliza un enfoque alternativo. Utiliza la función de depuración remota. Primero debe habilitarlo en el teléfono, pero debe hacerlo solo una vez y luego puede usar la aplicación para recuperar todos los registros.

Anton Tananaev
fuente