¿Cómo extraer boot.img y recovery.img de Sony Xperia E4 Dual?

Acabo de comenzar a interesarme en portar una rom personalizada en un dispositivo Android y requiere que tenga una copia de seguridad/volcado de boot.img y recovery.img de mi dispositivo. Tengo Sony Xperia E4 Dual (E2115).

Los siguientes son detalles sobre mi dispositivo:

Compilación del kernel: 24.0.B.5.14
Procesador: MT6582
Placa: arima82_w_s_kk
Versión de Android: 4.4.4

/proc/dumchar_info:

Part_Name   Size    StartAddr   Type    MapTo
preloader    0x0000000000080000   0x0000000000000000   2   /dev/misc-sd
mbr          0x0000000000080000   0x0000000000000000   2   /dev/block/mmcblk0
ebr1         0x0000000000080000   0x0000000000080000   2   /dev/block/mmcblk0p1
pro_info     0x0000000000300000   0x0000000000100000   2   /dev/block/mmcblk0
nvram        0x0000000000500000   0x0000000000400000   2   /dev/block/mmcblk0
protect_f    0x0000000000a00000   0x0000000000900000   2   /dev/block/mmcblk0p2
protect_s    0x0000000000a00000   0x0000000001300000   2   /dev/block/mmcblk0p3
seccfg       0x0000000000020000   0x0000000001d00000   2   /dev/block/mmcblk0
uboot        0x0000000000080000   0x0000000001d20000   2   /dev/block/mmcblk0
ta           0x0000000000200000   0x0000000001da0000   2   /dev/block/mmcblk0
ltalabel     0x0000000001000000   0x0000000001fa0000   2   /dev/block/mmcblk0p4
fotakernel   0x0000000001400000   0x0000000002fa0000   2   /dev/block/mmcblk0
bootimg      0x0000000001400000   0x00000000043a0000   2   /dev/block/mmcblk0
sec_ro       0x0000000000600000   0x00000000057a0000   2   /dev/block/mmcblk0p5
misc         0x0000000000080000   0x0000000005da0000   2   /dev/block/mmcblk0
logo         0x0000000000300000   0x0000000005e20000   2   /dev/block/mmcblk0
ebr2         0x0000000000080000   0x0000000006120000   2   /dev/block/mmcblk0
expdb        0x0000000000080000   0x00000000061a0000   2   /dev/block/mmcblk0
tee1         0x0000000000080000   0x0000000006220000   2   /dev/block/mmcblk0
tee2         0x0000000000080000   0x00000000062a0000   2   /dev/block/mmcblk0
apps_log     0x0000000000800000   0x0000000006320000   2   /dev/block/mmcblk0p6
android      0x0000000083400000   0x0000000006b20000   2   /dev/block/mmcblk0p7
cache        0x000000000c800000   0x0000000089f20000   2   /dev/block/mmcblk0p8
usrdata      0x000000013a060000   0x0000000096720000   2   /dev/block/mmcblk0p9
bmtpool      0x0000000000000000   0xffffffffff3f00a8   2   /dev/block/mmcblk0
Part_Name:Partition name you should open;
Size:size of partition
StartAddr:Start Address of partition;
Type:Type of partition(MTD=1,EMMC=2)
MapTo:actual device you operate

Por lo que sé, bootimg es lo que estoy buscando. Convertí el tamaño y la dirección de inicio de hexadecimal a decimal e intenté volcarlo usando:

dd if=/dev/block/mmcblk0 of=/sdcard/boot.img bs=4096 skip=17312 count=5210

Pero cuando trato de descomprimirlo usando unpackbootimg u otras herramientas de desempaquetado, aparece un error que indica que boot.img no es una imagen de arranque válida. ¿Que me estoy perdiendo aqui?

He visto en la web que las imágenes del sistema creadas con dd no son válidas, pero este no es el caso con las imágenes de arranque y recuperación y las personas han volcado con éxito estas particiones usando este método. Estoy usando Ubuntu y me encantaría saber si hay otros métodos para lograrlo.

¿ Puedes agregar la salida de ls -l /dev/block/platform/*/by-name/?
@MatthewRead no existe tal archivo o directorio en mi dispositivo.
Hmm, tal vez verifique si hay algo similar.find /dev -name "by-name"
echo $((0x0000000001400000/4096))= 5120no5210

Respuestas (2)

Use esta herramienta para extraer desde una PC
MTK Droid Tools Latest.zip

Y para Android... Use una herramienta de copia de seguridad como Flashify en PlayStore

Enlace Flashify PlayStore

y vaya a copias de seguridad, Kernel de copia de seguridad y recuperación...
Luego navegue a almacenamiento interno> android> com.cgollner.flashify> archivos> copias de seguridad y copie los archivos...

Estos archivos pueden llamarse boot.emmc.win y recovery.emmc.win.
Estos archivos deben cambiarse de nombre a .img y parpadean... En mi mtk esto funciona...

He probado las herramientas MTK Droid desde una máquina virtual con Windows 7. Dice "Estructura de ROM desconocida, copia de seguridad NO posible!" Incluso Flashify falló en este caso. :'(

Los archivos boot.img de Sony son de alguna manera diferentes de lo que la mayoría de los programas, como unmkbootimg y variaciones de unpack-bootimg, esperan que sean. Todavía estoy en el proceso de resolver este acertijo gigantesco por mí mismo. Pero pude volver a empaquetar boot.img del formato Sony a un formato estándar de android boot.img. Ahora unmkbootimg, por ejemplo, puede deshacerlo. Magisk ahora también puede parchearlo para habilitar la raíz.

Para hacer eso vas a necesitar Android Image Kitchen

Una vez que lo tenga, suponiendo que esté en la AIK-Linuxcarpeta, ejecute sudo AIK-Linux/repackimg.sh --local <path to boot.img>el archivo que obtuvo con dd. Eso producirá un nuevo boot.img que se puede usar conunmkbootimg

Algunos antecedentes

Hay un cierto problema con esto. Mi teléfono (Sony Xperia L 1 ) no arranca eso. ¡Peor aún! ¡Ni siquiera arranca el stock boot.img!

No tengo root, así que no pude usar dd. Obtuve kernel.elf (boot.img) del firmware que descargué con XperiFirm. Pero intentar arrancarlo (sin flashear) con fastboot no funciona. Falla con un error: FAILED (remote: 'invalid kernel & ramdisk address: images overlap')Arrancar la imagen reempaquetada con Android Image Kitchen no arroja ningún error. Pero mi teléfono no puede iniciarlo y simplemente se reinicia.

PD Soy muy consciente de que esta pregunta es antigua.