Esto está relacionado con esta pregunta pero como he hecho algunos progresos desde entonces y me he encontrado con algunos problemas bastante diferentes que significarían que tendría que reescribirlo para que fuera una pregunta totalmente diferente, he decidido hacer una nueva pregunta. Como en esa pregunta, algo de información sobre el dispositivo:
- Es un BLU ADVANCE 4.0
- La placa es Mediatek MT6572
- La versión de Android es 4.2.2
- La versión del núcleo es 3.4.5
- Tengo acceso a root
He estado intentando hacer una copia de seguridad de ciertas particiones de mi teléfono (boot.img, system.img, recovery.img) pero me he encontrado con algunos problemas.
He encontrado copias de seguridad en internet para este modelo, he hecho copias de seguridad con MTK Droid Root and Tools y he intentado leer directamente desde /dev/bootimg y /dev/recovery. Me he encontrado con diferentes problemas. Hay tres principales y los incluyo todos aquí ya que creo que están relacionados. Voy a empezar con el que es consistente en todos estos:
Número 1
La parte del kernel de mi boot.img parece ser demasiado pequeña (unos 18.0KiB - no es correcto, ¿verdad?) y termina con un montón de mensajes de error antes del GZIP 1F8B que creo que marca el inicio del ramdisk. Aquí están los mensajes:
System halted.
Attempting division by 0!...
Uncompressing Linux.....
decompressor returned an error..
done, booting the kernel...
invalid distance too far back...
invalid distance code...
invalid literal/length code.
incorrect header check..
unknown compression method..
invalid window size.invalid block type..
invalid stored block lengths....
too many length or distance symbols.
invalid code lengths set....
invalid bit length repeat...
invalid literal/lengths set.
invalid distances set...
incorrect data check....
Out of memory while allocating output buffer....
Out of memory while allocating input buffer.
Out of memory while allocating z_stream.
Out of memory while allocating workspace....
Not a gzip file.
header error....
read error..
uncompression error........
Las nuevas líneas son de mi parte, traté de formatearla lo mejor que pude. Estoy un poco confundido acerca de lo que está pasando aquí, ya que sólo estoy leyendo la imagen - no debería haber mensajes de error. ¿Estoy viendo listas de posibles errores en el kernel?
Número 2
No puedo extraer el contenido del ramdisk en los núcleos de tamaño adecuado (quiero comprobar que las copias de seguridad funcionaron correctamente) como en esta guía para desempaquetar imágenes de arranque Cuando ejecuto este comando:
gunzip -c ../your-ramdisk-file | cpio -i
Me aparecen los siguientes mensajes (un montón como el primero y terminando con los dos últimos):
cpio: Malformed number (�K�����
gzip: ../ramdisk.gz: decompression OK, trailing garbage ignored
cpio: premature end of file
y no se emite ningún archivo nuevo. Tenga en cuenta que puedo descomprimir el archivo omitiendo el bit cpio y redirigiendo la salida y producirá un archivo que contiene algún texto reconocible en un editor hexadecimal, así que asumo que la extracción fue exitosa.
Número 3
El boot.img leído desde /dev/bootimg, aunque parece ser válido al principio, es muy, muy grande - lo paré en 3.0GiB+. Como referencia, la que encontré en Internet y la que generé con MTK Droid Tools y Root son de 6,0MiB. Al truncarlo a 500MiB pude encontrar la misma estructura del kernel que en los otros, aunque no estaba seguro de dónde terminaba el ramdisk así que no pude comprobarlo de forma fiable.
Supongo que mi pregunta es básicamente: ¿qué pasa con mi boot.img? ¿Es válido (a pesar de los errores y la incapacidad de extraer el ramdisk) y seguro para utilizarlo como copia de seguridad?