¿El acceso a logcat necesita root?

9

Mi dispositivo ya está rooteado, por eso lo pregunto.

¿Necesita root para monitorear la transmisión de logcat en el teléfono? Si ejecuté el comando logcat desde una Terminal en el teléfono, ¿funcionaría?

Wulfbane
fuente

Respuestas:

15

Estas aplicaciones gratuitas en el mercado afirman poder mostrar su logcat, y no hacen mención de root. Solo debería tomar unos minutos para probarlos:

EDITAR: Gracias a @mente por recordarme que estas aplicaciones solo le permitirán ver el archivo de registro completo en versiones anteriores de Android. Android 4.1 introdujo un nuevo modelo de seguridad en torno a los archivos de registro que significaba que las aplicaciones solo podían leer sus propios archivos de registro y entradas de archivo de registro, y no podían leer las entradas de archivo de registro escritas por el sistema u otras aplicaciones.

Sin embargo, todavía hay una manera para que el usuario de una aplicación genere un archivo de registro de las entradas de registro recientes de la aplicación que se enviarán a un desarrollador, y para que el propietario de un teléfono otorgue permisos para permitir que una aplicación lea el archivo de registro sin root completo, pero esto requiere que use un comando ADB, que desafortunadamente lo saca del alcance de la mayoría de los usuarios normales de teléfonos:

Si desea que el usuario le brinde información de depuración, puede hacer que generen un informe de error con encendido + bajar volumen + subir volumen que incluye los registros y muchos otros datos, y automáticamente muestra su aplicación de correo electrónico para enviarlo todo (más una captura de pantalla). Estábamos discutiendo que deberíamos tener una forma más fácil de generar esto también, voy a ver cómo agregar algo a la aplicación de configuración.

También comencé a presentar el concepto de un permiso de "desarrollo", que se lee como registros . Esto permite que la aplicación solicite el permiso, pero no lo obtenga en la instalación. Sin embargo, puede otorgarlo con un comando adb shell una vez que esté instalado. En algún momento más tarde espero tener una interfaz de usuario en el sistema para hacer esto, pero vamos a esperar para tener cuidado con la forma en que presentamos esto.

Extracto de una publicación en Grupos de Google de Dianne Hackborn, ingeniera de estructuras de Android. Mi énfasis

El comando ADB mencionado para otorgar permiso a una aplicación para leer los registros es:

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

Esta configuración debería sobrevivir a los reinicios y actualizaciones de la aplicación (pero no a las desinstalaciones / reinstalaciones).

GAThrawn
fuente
A partir de Android 4.1, necesita acceso de root para leer otros registros de aplicaciones. El desarrollador de CatLog publicó una explicación . Suponga que estas aplicaciones funcionan para <4.1 versiones
mente
1
Este acceso directo no funciona en mi Android 4.1.2
mente
Creé
HRJ
4

No necesita rootear su teléfono para ejecutar adb logcatcon el SDK de Android, pero lo probé en mi emulador de terminal y tuve que ser root (utilicé el sucomando: mi teléfono ya está rooteado) para ejecutar logcat en el Terminal en mi teléfono.

Entonces sí: si tiene root en su teléfono, puede ejecutar logcat desde una terminal en su teléfono.

Amanda
fuente
1

No, no necesita root para obtener información de logcat.

Para hacerlo, probablemente desee descargar el SDK de Android y ejecutar "adb logcat", utilizando la herramienta adb que viene con el SDK. Alternativamente, puede instalar el complemento ADT Eclipse y usar su práctico visor Logcat de transmisión.

Eric Mill
fuente
Quiero hacer esto desde el teléfono, no desde una máquina remota con el SDK
Wulfbane
1

No, no necesita root para acceder a logcat. Mi dispositivo (Samsung Galaxy Note, Gingerbread 2.3.6 con stock ROM) no está rooteado (¡todavía!) Y he utilizado las siguientes formas para acceder al registro en mi dispositivo:

  • Aplicación CatLog
  • aplicación aLogcat
  • Aplicación SSHDroid activada y conectada al terminal del dispositivo mediante un cliente SSH
  • Usando Android SDK y corriendo adb logcat

Sin embargo, la aplicación Terminal no le permite ejecutar logcat, y le da "permiso denegado". No estoy seguro de por qué.

Iravanchi
fuente
sí, en pan de jengibre ... pero Android de hoy hace requerir raíz.
NH.
1

Parece que no puede ejecutar logcat desde Terminal Emulator sin tener root en su teléfono. En este caso tienes que su primero. AFAIK, proviene de permisos de Android: Terminal Emulator simplemente no tiene suficientes permisos para ver el registro del dispositivo. Entonces el sistema dice Permiso denegado.

Por otro lado, como dijeron otros, hay muchas aplicaciones que le permiten ver el registro del dispositivo solo porque solicitan el permiso.

atomontage
fuente
0

La aplicación Información del sistema Android tiene la capacidad de generar información de registro en la pantalla que, por lo que puedo decir, es la misma información de registro que escupe logcat.

Bill Best
fuente
¿Tienes un enlace a esa aplicación, no puedo encontrarla en el mercado?
GAThrawn
@GAThrawn En caso de que todavía estés interesado: página de inicio y enlaces de Google Play Store .
Zuul
0

Logcat no necesita root. Simples: es un estándar de facto en todos los ámbitos con respecto a las diferentes versiones de Android y es parte de Android independientemente de si está rooteado o no, y es un medio estándar para diagnosticar problemas como, por ejemplo, instalar una aplicación, el la aplicación se cierra, te quejas al desarrollador de dicha aplicación, hay muchas posibilidades de que el desarrollador te pregunte "envía el logcat" sin importar si estás rooteado o no.

aLogCat es una forma de recopilar la información, con la opción de iniciar sesión en el diseño de la página web o en texto sin formato, tenga en cuenta que si programa que se registre con cierta frecuencia, como cada 15 minutos, la tarjeta SD se llenará con bastante rapidez.

Otro aspecto, el uso de logcat dependerá del kernel en términos de cuánto puede almacenar: en cualquier kernel utilizado por la ROM, la fuente para el registro desde un nivel de kernel, donde reserva la memoria para el servicio logcat. se puede encontrar drivers/staging/android/logger.cusando las definiciones apropiadas, por ejemplo:

DEFINE_LOGGER_DEVICE (log_main, LOGGER_LOG_MAIN, 64 * 1024) DEFINE_LOGGER_DEVICE (log_events, LOGGER_LOG_EVENTS, 256 * 1024) DEFINE_LOGGER_DEVICE (log_radio, LOGGER_LOG_RADIO, 64 * 1024) DEFINE_LOGGER_DEVICE (log_system, LOGGER_LOG_SYSTEM, 64 * 1.024)

Nuevamente, el kilometraje variará, algunos desarrolladores de tales ROM elegirán minimizar el consumo para reducir los gastos generales de memoria ...

t0mm13b
fuente