5 votos

Depuración de Android-Boot Loops: ¿Hay alguna manera de obtener un registro de información sin ADB? ¿Puede el emulador incluso ayudar?

Posible duplicado:
¿Mensajes de arranque de Android para la depuración?

Relacionado con este post que he creado: ¿Genera el emulador de Android algún tipo de archivo de registro al que pueda acceder si se bloquea?

He estado buscando y tratando de averiguar si hay alguna manera en absoluto para obtener algún tipo de información de depuración o cualquier tipo de mensajes del núcleo de un teléfono Android si ¿se queda atascado en un estado de bucle de arranque? Eso significa que el teléfono se queda atascado en la pantalla de inicio de "Google", luego se bloquea, luego va a eso, luego se bloquea.

Sé que el teléfono tiene varias etapas de carga de arranque, pero para mí, incluso para averiguar por qué mi imagen del sistema / kernel modificado está haciendo que el teléfono se bloquee, tengo que saber al menos donde el teléfono está fallando?

¿Hay algún tipo de registro que el emulador de Android tal vez escupe que muestra que va a través de las etapas de arranque: es decir, la etapa 1 del cargador de arranque, la etapa principal del cargador de arranque, el kernel que se carga, el proceso de inicialización, Zygote, Zygote inicializar Dalvik VM, la ejecución del servidor del sistema, entonces el arranque completado (cuando el ACTION_BOOT_COMPLETE se levanta la bandera/evento).

He intentado modificar init.rc para hacer eco de los comandos a un registro de arranque (pero no funcionó, aunque no sé si el teléfono llega a esa etapa, todo lo que tengo es una pantalla de inicio inútil), he probado cualquiera de las cosas de ADB, pero por supuesto ADB no funciona si el teléfono no llega a un estado estable, el Linux dmesg comando sólo funciona para mostrar que el teléfono conectado a través de USB, y los desarrolladores de Android han optado por no al menos explicar que sólo ellos tienen ese tipo de herramientas de desarrollo. ¿Puede alguien orientarme sobre qué puedo hacer para depurar el proceso de arranque? Tiene que haber algún tipo de registro al que pueda acceder con el emulador al menos.

En otras palabras, ¿cómo puede alguien obtener algún tipo de registro de su teléfono/emulador si se queda atascado en un bootloop?

Para más información, mi versión del kernel que creo que he descargado para la construcción de mi teléfono es la versión 3.x del kernel de Linux (el kernel de stock sacado del tuna y utilizando el proyecto "omap"), para Android Galaxy Nexus (maguro), siendo la plataforma Android 4.0.3 ICS.

5voto

Nick Pierpoint Puntos 7976

Sabrás si el núcleo se ha colgado, la luz led se queda encendida y no va más allá.

En cuanto a tu pregunta, tienes que ser más claro y específico ya que no lo sabemos y ya que has publicado una pregunta similar antes. Usted no ha indicado, qué dispositivo es, qué versión de Android es, qué kernel es, todos los que se dejan fuera y así jugar un juego de adivinanzas aquí.

  • ¿Es el ramdisk no creado correctamente?
  • ¿Es la dirección utilizada para el arranque incorrecta?
  • ¿La ROM está construida para VMSPLIT 3G y el kernel está construido con VMSPLIT 2G o viceversa?
  • ¿Qué chipset es? Kernel ARMv7 con ROM compilada para ARMv6...
  • ¿El kernel está arrancando realmente? En caso afirmativo, ¿cómo lo sabe?

Hay demasiadas cosas aquí para especular.

Editar:

Este bit está relacionado con la depuración a nivel del kernel.

La única manera en que puedes conozca si el kernel está realmente arrancando en primer lugar es usar un cable USB a TTY Serial con pinouts JTAG en una pequeña placa de circuito recortada/soldada a la parte trasera del dispositivo en cuestión, y tener el driver serial compilado en el kernel y tratar la consola como un dispositivo tty, y leer de ella vía minicom o hyperterminal para ver la secuencia de arranque.

En cuanto a los bucles de arranque,

La causa de los bucles de arranque se debe a la propia ROM, la secuencia de inicialización está fallando en alguna parte. Ahora tenga cuidado :), el kernel en sí mismo, puede arrancar en bucle también debido al mal funcionamiento del controlador, el pánico y se reinicia a sí mismo.

Así que la pregunta es, ¿cuál es? ¿Es el kernel el que se reinicia por sí solo o ha pasado esa fase y ha empezado a cargar la ROM? Si está en la fase de carga de la ROM, entonces algo en la inicialización se está bloqueando, cuando la ROM se bloquea, envía una señal para apagar SurfaceFlinger, AudioFlinger, adb daemon, MedaServices, etc.

Lo que puedes hacer es lo siguiente: en el init.rc donde tienes esto:

service console /system/bin/sh
    console
    disabled
    user shell

Cambiar disabled a enabled , la próxima vez, Android te arrojará a la consola, es decir, sin interfaz gráfica conocida.

Además, busque las líneas que contienen servicemanager Si el demonio adbd está en la lista, quítelo ya que lo que sucede es la cláusula directiva critical y onrestart ¡hará que no tenga ninguna facilidad adb!

0 votos

He editado mi post para reflejar detalles más específicos del sistema.

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