A partir de Android 5, el in-kernel registrador conductor es obsoleto que expuso los buffers del anillo a través de /dev/log/*
dispositivos de carácter. En su lugar, un demonio de registro del espacio de usuario llamado logd gestiona los buffers "main", "system", "radio", "events" y "crash". Los búferes opcionales "security" (por ejemplo, para adb shell
/ push
/ pull
de registro) y en userdebug
construye el "núcleo" (para klogd
) y "stats" (para las estadísticas de los registros) se añadieron posteriormente. logd
cubre principalmente la funcionalidad de su homólogo de escritorio syslogd pero también incluye klogd y parcialmente auditd para obtener los registros del subsistema SELinux del kernel. El comportamiento del demonio de registro se controla a través de diferentes propiedades .
Las aplicaciones y los procesos nativos escriben sus registros en los búferes correspondientes a través del socket /dev/socket/logdw
(haciendo uso de liblog funciones). logcat
lee los búferes de /dev/socket/logdr
mientras controla el demonio y los buffers a través de /dev/socket/logd
de la toma de corriente. Utilice -g
/ -G
para obtener y establecer el tamaño de los búferes individuales:
-g, --buffer-size
Get the size of the ring buffer.
-G <size>, --buffer-size=<size>
Set size of log ring buffer, may suffix with K or M.
También hay una opción en las opciones de desarrollador: Tamaño de los búferes del registrador (que también establece la propiedad persist.logd.size
) para establecer el mismo tamaño para todos los búferes.
persist.logd.size
se lee desde /data/property/
que no está disponible a menos que /data
está montado y descifrado (en caso de FDE). Pero a veces los búferes pueden desbordarse incluso antes de eso, por lo que la solución es establecer ro.logd.size
(a través de default.prop
/ build.prop
o directamente en algunos *.rc
) antes del logd
se inicia el servicio.
0 votos
Supongo que dejarlo conectado al ordenador con
adb logcat > my_log_file.log
¿Correr no es una opción?