Estoy tratando de averiguar si Android (es decir, Galaxy Nexus, Nexus S y / o Motorola Xoom) vienen con algún tipo de capacidad para producir un registro de "arranque". (algo así como la pantalla de inicio de Linux) Sería inmensamente útil determinar qué tan lejos llega el teléfono en las etapas de inicio antes de que falle (como el gestor de arranque de la primera etapa, el gestor de arranque principal, luego la carga del kernel, etc.). ¿Alguien sabe cómo habilitar el teléfono para escupir este archivo de registro o habilitar un modo de arranque "detallado" (e imprimir mensajes reales en el terminal de la computadora Linux a la que tiene conectado el teléfono)?
Mi teléfono se atasca en un "bucle de arranque" con mi compilación modificada actual y me gustaría depurarlo si es posible.
Alternativamente, ¿alguien sabe de recursos útiles o tutoriales que expliquen cómo "piratear" fácilmente el teléfono para hacer esto (sin meterse con el hardware)? ¿O de algún foro donde mi pregunta puede haber sido formulada pero de una forma más oscura?
Este ha sido un problema frustrante reciente, por lo que cualquier ayuda sería muy apreciada.
fuente
Respuestas:
Hay un par de formas de hacer esto:
cat /proc/last_kmsg > /sdcard/last_kernel_message_log.txt
dmesg > /sdcard/kernel_boot_log.txt
adb logcat
desde su cmd de Windows o terminal de Linux, se colgará esperando que el dispositivo se conecte, ahora encienda el teléfono inteligente. El logcat debería comenzar a desplazarse entonces.Dado que expresó interés en averiguar qué tan lejos llega el teléfono en las etapas de arranque antes de que se bloquee , esos métodos deberían ayudar. La cuestión es que debes ser bastante rápido para tomar el registro del kernel (los dos primeros métodos que se muestran arriba).
Lo que haría es esto, en mi caja Arch Linux, dos ventanas de terminal, una para
adb logcat
la otra, para tomar el registro en el momento en que logcat comienza a desplazarse.Editar:
Tenga en cuenta que hay diferencias con el uso de
adb
yfastboot
!fastboot
funciona de manera diferente, solo se usa para flashear imágenes en particiones especificadas, y está más relacionado con el proceso del cargador de arranque, es decir, puede comprender el mecanismo del cargador de arranque. También requiere que:La razón por la que lo requiere es porque omite ciertas entradas / salidas del hardware y, por lo tanto, no "habla" en el
adb
protocolo, sino que es "hablar" directamente con el gestor de arranque. Algo que no se puede hacer como usuario normal. Aquí está la ayuda para el uso defastboot
.A-uso conocido bien de
fastboot
es para destellar por ejemplo, a parpadear una imagen de recuperación:sudo fastboot flash recovery recovery.img
, otro es a parpadear directamente una imagen sin procesar,sudo fastboot flash system system.img
. Para más sobre el caso del desarrollo del kernel, usando estofastboot boot new_kernel
, esto descarga temporalmente un nuevo kernel y arranca usando eso sin tocar el arranque del cargador de arranque.También hay una limitación en el tamaño de una imagen en bruto que requiere ser flasheada, cuando digo imagen en bruto, me refiero a un archivo que tiene una
.img
extensión, la imagen no debe exceder los 128Mb. ( Descubrí esto cuando desarrollé ics4blade, después de que se completó la compilación, el system.img era 162Mb, ¡y traté de flashearlo pero fastboot se negó! Para evitar la limitación, tuve que crear un archivo zip CWM flashable para hacerlo y moverse eso! )Tenga cuidado y asegúrese de que la partición sea correcta y vuelva a verificar y vuelva a verificar, si es necesario, aléjese de la computadora, tómese un descanso, regrese nuevamente y vuelva a verificar, aquí es donde puede salir terriblemente mal, flashear el archivo incorrecto en la partición incorrecta ... bueno, se encoge de hombros
fuente
cache
y ladata
partición: ¡no soy responsable de nada desagradable si continúas! E intente actualizar la ROM nuevamente a través de CWM. Aún mejor , se olvidan de fastboot y el uso de CWM para limpiar tanto la memoria caché y los datos , parece que el bootloop se debe a una caché de datos o borked ...Puedes usar LiveBoot. Está en Google Play Store. Hará exactamente lo que está pidiendo.
fuente