Las imágenes de la partición del logotipo son datos de píxeles de 32 bits en bruto, posiblemente bgra o rgba, comprimidos con zlib pero con sin cabecera de compresión .
Sáltate la cabecera de 512 bytes, y esto es lo que ves (el tuyo será diferente, esto es de un teléfono BLU Dash X2).
00000200: 2700 0000 f929 1300 a400 0000 012e 0000 '....)..........
00000210: 3b36 0d00 05bb 0d00 4e07 0e00 4a09 0e00 ;6......N...J...
00000220: d709 0e00 b20b 0e00 060e 0e00 8f0f 0e00 ................
00000230: ac11 0e00 0814 0e00 3c15 0e00 d517 0e00 ........<.......
00000240: 451a 0e00 2b1d 0e00 d82b 0e00 763b 0e00 E...+....+..v;..
00000250: f84a 0e00 a959 0e00 4d67 0e00 3874 0e00 .J...Y..Mg..8t..
00000260: 1382 0e00 4f91 0e00 f6a0 0e00 6bb0 0e00 ....O.......k...
00000270: f90b 0f00 0068 0f00 bcc3 0f00 9b1c 1000 .....h..........
00000280: d573 1000 9cca 1000 6223 1100 647e 1100 .s......b#..d~..
00000290: c8da 1100 f536 1200 ae89 1200 658b 1200 .....6......e...
000002a0: 9cfc 1200 78da ecdd 3daf e458 42c7 e1fe ....x...=..XB...
Los números son enteros de 32 bits, y el primero en el offset 0x200 es 0x27, o 39, imágenes en la partición del logo. 0x1329f9 es la longitud total de los datos; el resto de la partición probablemente se rellene con ceros. Los siguientes 39 enteros son los desplazamientos de cada imagen, por ejemplo la primera está en el desplazamiento 0xa4, más 0x200 para tener en cuenta la cabecera, y tienes 0x2a4. Así que puedes ver los primeros 12 bytes de datos en la salida xxd de arriba, 0x78 0xda 0xec 0xdd...
El tamaño de la imagen será el siguiente desplazamiento menos "este" desplazamiento: en este caso, 0x2d01 - 0xa4 = 0x2d5d, o 11613 decimal.
Así que ahora tienes lo que necesitas para extraer la primera imagen: dd if=/tmp/logo.bin of=/tmp/img1.z bs=1 skip=$((0x2a4)) count=11613
Para descomprimirlo, como no tiene cabecera, hay que añadir una: printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" | cat - /tmp/img1.z | gzip -dc >/tmp/img1.dat
.
A continuación, puede mostrarlo utilizando ImageMagick: display -size 360x$(($(stat -c %s /tmp/img1.dat)/$((360*4)))) rgba:/tmp/img1.dat
La información procede de rigacci.org . Niccolo incluye un script en Python que extrae todas las imágenes por ti.