Estoy tratando de averiguar si Android (es decir, Galaxy Nexus, Nexus S y/o Motorola Xoom) viene 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 para determinar qué tan lejos llega el teléfono de uno en las etapas de inicio antes de que se bloquee (como el cargador de arranque de la primera etapa, el cargador 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 la 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 alterar el hardware)? ¿O de algún foro donde se haya hecho mi pregunta pero de una forma más oscura?
Este ha sido un problema frustrante recientemente, por lo que cualquier ayuda sería muy apreciada.
Hay un par de maneras de hacer esto:
cat /proc/last_kmsg > /sdcard/last_kernel_message_log.txt
dmesg > /sdcard/kernel_boot_log.txt
adb logcat
desde su Windows cmd o terminal 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 de uno en las etapas de arranque antes de que se bloquee , esos métodos deberían ayudar. La cuestión es que debe ser bastante rápido para obtener 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 el adb logcat
, la otra, para tomar el registro en el momento en que logcat comienza a desplazarse.
Editar:
TENGA en cuenta que existen diferencias con el uso de adb
y fastboot
!
fastboot
funciona de manera diferente, solo se usa para flashear imágenes en particiones específicas 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 "habla" directamente con el cargador de arranque. Algo que no se puede hacer como un usuario normal. Aquí está la ayuda para el uso de fastboot
.
$ sudo fastboot
usage: fastboot [ <option> ] <command>
commands:
update <filename> reflash device from update.zip
flashall flash boot + recovery + system
flash <partition> [ <filename> ] write a file to a flash partition
erase <partition> erase a flash partition
getvar <variable> display a bootloader variable
boot <kernel> [ <ramdisk> ] download and boot kernel
flash:raw boot <kernel> [ <ramdisk> ] create bootimage and flash it
devices list all connected devices
continue continue with autoboot
reboot reboot device normally
reboot-bootloader reboot device into bootloader
help show this help message
options:
-w erase userdata and cache
-s <serial number> specify device serial number
-p <product> specify product name
-c <cmdline> override kernel commandline
-i <vendor id> specify a custom USB vendor id
-b <base_addr> specify a custom kernel base address
-n <page size> specify the nand page size. default: 2048
Un uso bien conocido de fastboot
es para flashear, por ejemplo, para flashear una imagen de recuperación: sudo fastboot flash recovery recovery.img
, otro es para flashear directamente una imagen sin procesar, sudo fastboot flash system system.img
. Para obtener más información sobre el caso del desarrollo del kernel, al usar this fastboot boot new_kernel
, esto descarga temporalmente un nuevo kernel y arranca usándolo sin tocar el propio 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, system.img tenía 162 Mb, e intenté actualizarlo pero fastboot se negó! Para eludir la limitación, tuve que crear un archivo zip CWM flashable para hacer eso y moverse eso! )
Practique la precaución y asegúrese de que la partición sea correcta y verifique dos veces y verifique nuevamente, si es necesario, aléjese de la computadora, tome un descanso, regrese nuevamente y vuelva a verificar nuevamente, aquí es donde puede salir terriblemente mal, flashea el archivo incorrecto en la partición incorrecta... bueno, se encoge de hombros
cache
y data
- ¡No soy responsable de nada malo si continúas! E intente flashear la ROM nuevamente a través de CWM. Aún mejor , olvídate del fastboot y usa CWM para borrar tanto el caché como los datos , parece que el bootloop se debe a un caché o datos dañados...fastboot
no siempre requiere acceso de root, al menos no en algunas distribuciones de Linux. Simplemente puede indicar a las personas que usen sudo o administrador si se les niega el permiso.Puede utilizar LiveBoot. Está en Google Play Store. Hará justo lo que usted está pidiendo.
Puede acceder a la recuperación en esa pantalla, le permite acceder a algunos archivos de registro a los que no puede acceder una vez que se inicia el teléfono. Lo que está tratando de solucionar estará en estos registros previos al arranque.
ryan conrado
9lanzador de excepciones9
ryan conrado
9lanzador de excepciones9