0 votos

Fastboot se queda atascado en la fase de envío del sistema

Siento que mi antiguo móvil con android 2 o 3 se ha brickeado ya que se queda atascado en el logo de inicio cada vez, pero puedo entrar fácilmente en el modo fastboot donde puedo completar los siguientes comandos como:

fastboot devices
fastboot flash recovery recovery.img
fastboot flash splash splash.img
fastboot flash userdata userdata.img

Pero cada vez que ejecuto el siguiente comando

fastboot flash system system.img

El comando fastboot se queda atascado en

Enviando 'system' (124183 KB)

Puedo borrar fácilmente el sistema pero no puedo flashearlo.

0 votos

¿Has actualizado adb a la última versión en tu portátil? Las versiones antiguas no pueden manejar archivos grandes.

0 votos

Sí, a la última versión lanzada, es decir Android Debug Bridge versión 1.0.41 Versión 29.0.5-5949299 Instalado como /usr/bin/adb

2 votos

Arranca en recuperación y escribe system.img usando dd.

0voto

alecxs Puntos 29

Arrancar en modo de recuperación desde fastboot, una vez en twrp ingresa a la terminal de adb, o usa -> Avanzado -> Terminal

fastboot boot recovery.img
adb shell

cuidado con dd especialmente verifica dos veces el nombre de la partición y el tamaño de la partición.

en tu /etc/recovery.fstab puede que solo haya un enlace simbólico pero no te preocupes, puedes usarlo dd apuntará a la partición real.

cat /etc/recovery.fstab
ls -l /dev/block/bootdevice/by-name/system
dd if=/external_sd/system.img of=/dev/block/mmcblk0p99

si el tamaño del archivo es mayor que el tamaño de la partición, se recomienda encarecidamente agregar parámetros de tamaño de bloque y conteo para limitar el proceso de escritura al tamaño máximo de la partición, de lo contrario tu partición de caché y userdata puede ser destruida.

cuidado, los archivos más grandes de 4 GiB no se pueden copiar en una tarjeta MicroSD, así que en su lugar usa adb push.

adb push system.img /dev/block/mmcblk0p99

¿Cómo puedo ver la tabla de particiones internas de Android?

si no estás seguro de si tu system.img es una imagen comprimida o comprimida con LZ, puedes verificar el encabezado para ver el tipo de sistema de archivos / magia de partición
ext4: 0xEF53 en el desplazamiento 0x438
f2fs: 0xF2F52010 en el desplazamiento 0x400

hexdump -C -n1088 system.img | grep 53.ef
hexdump -C -n1032 system.img | grep 10.20.f5.f2

si se encuentra alguna de estas magias, la imagen se puede montar en bucle para probar, de lo contrario, necesitas convertir el archivo primero con simg2img o sdat2img

3 votos

Usar 1024 bytes como tamaño de bloque es una mala elección para el almacenamiento flash. El tamaño interno de los chips flash suele ser más grande (en el rango de 4-8K). Escribir con un tamaño de bloque más bajo puede resultar en bloques flash que necesitan ser escritos múltiples veces. Por lo tanto, un tamaño de bloque de 8192 y un recuento reducido preservarán el flash y también pueden aumentar la velocidad de escritura.

0 votos

Gracias, no sabía eso. Siempre estaba usando 1k porque es fácil de comparar con el tamaño de bloque de salida de /proc/partitions y df

0 votos

¿Estás seguro de esto: de lo contrario, la partición de caché y userdata puede ser destruida?

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