9 votos

¿El acceso a logcat necesita Root?

Mi dispositivo ya está rooteado, por eso pregunto.

¿Necesita Root para monitorear el flujo de logcat en el teléfono? ¿Si ejecutara el comando logcat desde un Terminal en el teléfono, funcionaría?

16voto

Joe Shaw Puntos 6386

Estas aplicaciones gratuitas en el Market dicen ser capaces de mostrar su logcat, y no hacen ninguna mención de Root. Sólo debería tomar unos minutos para probarlos:

EDIT: Gracias a @mente por recordarme que estas aplicaciones sólo permiten ver el archivo de registro completo en versiones antiguas de Android. Android 4.1 introdujo un nuevo modelo de seguridad en torno a los archivos de registro que significaba que las aplicaciones sólo podían leer sus propios archivos de registro y las entradas del archivo de registro, y no pueden leer las entradas del archivo de registro escritas por el sistema u otras aplicaciones.

Sin embargo, todavía hay una manera de que el usuario de una aplicación genere un archivo de registro de las entradas de registro recientes de la aplicación para ser enviado a un desarrollador, y para que el propietario de un teléfono conceda permisos para permitir que una aplicación lea el archivo de registro sin Root completo, pero esto requiere el uso de un comando ADB, que por desgracia lo lleva fuera del alcance de la mayoría de los usuarios de teléfonos normales:

Si quieres que el usuario te dé información de depuración, puedes hacer que ellos generar un informe de errores con power + volume down + volume up que incluye los registros y muchos otros datos, y automáticamente trae su aplicación de correo electrónico para enviarlo todo (además de una captura de pantalla). Estábamos discutiendo que deberíamos tener una manera más fácil de generar estos Voy a mirar a añadir algo a la aplicación de configuración.

También he empezado a introducir el concepto de "desarrollo" permiso, que lee los registros se clasifica como. Esto permite que la aplicación solicitar el permiso, pero no obtenerlo en la instalación. Sin embargo, puede concederlo con un comando adb shell una vez instalado. En algún más adelante espero tener una interfaz de usuario en el sistema para hacer esto, pero vamos a pero vamos a retrasar esto para tener cuidado con la forma en que presentamos esto.

Extracto de un publicar en los Grupos de Google por Dianne Hackborn, ingeniera del marco de trabajo de Android. Mi énfasis.

El comando ADB mencionado para conceder a una aplicación permiso 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).

4voto

Amanda Puntos 2408

No es necesario rootear el teléfono para que funcione adb logcat con el SDK de Android, pero acabo de probarlo en mi Emulador de terminal y sí tuve que ser Root (usé el su comando - mi teléfono ya tiene root) para ejecutar logcat en el terminal en mi teléfono.

Así que sí: si tienes Root en tu teléfono puedes ejecutar logcat desde un terminal en tu teléfono.

1voto

MattH Puntos 746

No, no necesitas Root para obtener información de logcat.

Para hacerlo, probablemente quieras descargar el SDK de Android y ejecutar "adb logcat", utilizando la herramienta adb que viene con el SDK. Alternativamente, puedes instalar el plugin de ADT para Eclipse y utilizar su práctico visor de Logcat en streaming.

1voto

Iravanchi Puntos 223

No, no necesitas Root para acceder a logcat. Mi dispositivo (Samsung Galaxy Note, Gingerbread 2.3.6 con ROM de stock) no está rooteado (¡todavía!) y he utilizado las siguientes formas para acceder a logcat en mi dispositivo:

  • Aplicación CatLog
  • Aplicación aLogcat
  • Activar la aplicación SSHDroid y conectarse al terminal del dispositivo mediante un cliente SSH
  • Utilizando el SDK de Android y ejecutando adb logcat

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

1voto

atomontage Puntos 11

Parece que no se puede ejecutar logcat desde el emulador de terminal sin tener Root en el teléfono. En este caso tienes que su primero. AFAIK, viene de los permisos de Android: El Emulador de Terminal simplemente no tiene suficientes permisos para ver el registro del dispositivo. Así que el sistema dice Permiso denegado.

Por otro lado, como han dicho otros, hay un montón de aplicaciones que permiten ver el registro del dispositivo sólo porque piden el permiso.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X