7 votos

¿Cómo depurar el bucle de arranque?

Tengo un Samsung Galaxy S4 Mini LTE (también conocido como GT-i9195 o serranoltexx - esto no es GT-i9195i o serranoveltexx ).

Comportamiento actual: cuando el teléfono está apagado, al pulsar el botón de encendido aparece la pantalla de arranque normal con el texto amarillo habitual en la esquina superior izquierda sobre el kernel personalizado ("Set Warranty Bit : kernel"). La pantalla permanece en esta vista durante unos 20 segundos, se convierte en negro, el motor de vibración funciona durante dos cortos períodos y el sistema se reinicia. Supongo que el sistema no puede arrancar hasta que el hardware watchdog reinicie el sistema debido al tiempo de espera. Si arranco con Volume down + Home + Power sostenida, el teléfono entra en el modo de descarga como de costumbre. Y si arranco con Volume up + Home + Power celebrada, el teléfono entra en el modo de recuperación (TWRP versión 3.3.1.0), donde todo parece funcionar como de costumbre, también. Estaba ejecutando LineageOS 16 (Android 9.0) con la aplicación de SELinux activada con los parches de seguridad de junio de 2019. El sistema tiene XXUCOL3 el firmware del módem si no recuerdo mal.

Al final, puedo arrancar con éxito en el modo de descarga y en el recovery TWRP. Sin embargo, el sistema comenzó a fallar para arrancar al sistema normal después del ciclo normal de apagado y reinicio y el sistema estaba funcionando bien antes del apagado. ¿Hay alguna forma de diagnosticar y posiblemente solucionar el problema sin borrar todos los datos?

Pasos que ya he probado:

  • Borrar la caché de Art/Dalwik, la partición de caché y la partición del sistema y volver a instalar la imagen completa del sistema a través de TWRP.
  • Cómo quitar la batería
  • Arrancando con la tarjeta SIM y la sdcard quitadas

Realmente quiero entender por qué sucedió esto para evitarlo en el futuro. Realmente no quiero tener un dispositivo que aleatoriamente entra en este estado y la única manera de arreglarlo es borrar todo el dispositivo. Ser capaz de llevar el sistema actual a un estado utilizable sin un borrado completo sería un buen bono porque evita reconfigurar todos los ajustes y aplicaciones de nuevo.

Y sí, sé que este dispositivo es viejo y tuve que reemplazar previamente la placa base debido a que el chip emmc falló, pero realmente me gusta el factor de forma y ningún proveedor está proporcionando hoy en día un dispositivo similar. Si Sharp Aquos R2 compact no tuviera muescas en la pantalla sería mi próximo teléfono.

0 votos

Esto puede ser causado por un error de software en la última versión de la ROM que estoy usando: forum.xda-developers.com/galaxy-s4-mini/orig-development/ - otras personas también están informando acerca de los problemas que el sistema ya no se inicia después de apagar. Todavía no se conoce ninguna solución que no sea borrar todos los datos.

0 votos

Vea la respuesta más abajo. Resultó que se podía arreglar a través de adb en TWRP sin borrar los datos.

5voto

JonTheNiceGuy Puntos 376

En la práctica, la única forma de depurar los primeros bucles de arranque es leer el registro del kernel de la siguiente manera:

Pasos mínimos para conseguir el log si tienes adb y TWRP funcionando:

  1. Cuando el dispositivo esté arrancando, mantenga pulsado VOLUMEN ARRIBA + INICIO hasta que el bucle de arranque se repita y aparezca el texto azul "RECOVERY" en la esquina superior izquierda (la secuencia de teclas específica variará dependiendo del hardware actual, pero lo anterior debería ser correcto para los dispositivos Samsung). La parte importante es que usted tiene que entrar en la recuperación TWRP directamente después de un arranque fallido y los pasos exactos para hacer esto dependen del hardware. El ejemplo anterior debería ser correcto para todos los dispositivos Samsung con botón de inicio de hardware.

  2. Conecte el teléfono al ordenador con un cable USB y espere a que TWRP termine de arrancar (el orden para conectar el teléfono y el arranque de TWRP no es importante).

  3. Extraer el registro del kernel del arranque fallido. Ejecute lo siguiente en la línea de comandos del ordenador central:

El comando requerido para el host linux:

adb shell cat /proc/last_kmsg > ~/Desktop/boot-loop-kernel-log.txt

El comando requerido para el host de Windows:

adb shell cat /proc/last_kmsg > %UserProfile%/Desktop/boot-loop-kernel-log.txt

Terminará con un archivo llamado boot-loop-kernel-log.txt en su escritorio que contiene el registro del kernel del arranque fallido.

Esto funciona porque /proc/last_kmsg contiene el contenido de la memoria del anillo de registro del kernel de arranque anterior (esto funciona porque el kernel mantiene este registro en una dirección de memoria conocida y el siguiente arranque guarda el contenido de esa área de memoria antes de escribir el nuevo registro en la misma ubicación). Algunos proveedores colocan el anillo de registro del núcleo de arranque anterior en el archivo /sys/fs/pstore/console-ramoops o cat /sys/fs/pstore/console-ramoops-0 por lo que es posible que tenga que hacer

adb shell cat '/sys/fs/pstore/console-ramoops*' > ~/Desktop/boot-loop-kernel-log.txt

pero la idea sigue siendo la misma. Obviamente, si el hardware sobrescribe toda la memoria con ceros en el arranque, esto no puede funcionar.

En mi caso concreto de bucle de arranque, el problema se debía a que la corrección de color de "Live Display" fallaba durante el proceso de arranque si se había cambiado su configuración respecto a la predeterminada. Con ese problema específico, la solución fue arrancar a la recuperación y ejecutar lo siguiente como Root

rm /data/vendor/display/.displaymodedefault

Versión larga de las instrucciones para adquirir el registro de arranque durante un bucle de arranque: https://forum.xda-developers.com/showthread.php?t=1520508

0 votos

¿y si Android no llega a conectarse a adb?

0 votos

Android recovery El modo utiliza diferentes partición de arranque que el arranque normal por lo que debe ser capaz de entrar en TWRP que proporciona el apoyo ADB. Si, por ejemplo, has flasheado una ROM errónea (técnicamente has flasheado la partición del SO, pero los fans de Android lo llaman "ROM" por alguna razón) y también Si el código de recuperación es incorrecto, no podrá seguir los pasos anteriores. Algunos equipos (por ejemplo, los modernos Qualcomm) soportan el arranque de la imagen de recuperación a través del cable USB utilizando fastboot modo. Para un arranque erróneo+recuperación, yo recomendaría buscar brick recovery combinado con el nombre de su hardware (por ejemplo gt-i9195 ).

0 votos

No, lo que quiero decir es que ya tengo acceso a /data partición pero no encuentro nada útil allí. También Samsung no tiene en el modo de recuperación.

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