Extraindo o Image descompactado do arquivo uImage

Estava procurando uma forma simples de extrair o cabeçalho do uImage. A forma mais simples é usar o dd e dar um skip nos primeiros 64 bytes do uImage (ou 64 + 8 no caso de uImage para ARM), mas encontrei o script simples que verifica o tipo do uImage e cria o zImage:

http://buffalo.nas-central.org/wiki/How_to_Extract_an_uImage

Outra alternativa é utilizar o uImage.py

Agora é só extrair o conteúdo do zImage para ter o Image do kernel:

$ arm-linux-objdump -EL -b binary -D -m armv5t zImage | grep 8b1f
    31e4:	00088b1f 	andeq	r8, r8, pc, lsl fp
   28404:	6c8b1f44 	stcvs	15, cr1, [fp], {68}

$ dd if=zImage of=myImage.gz bs=1 skip=12772
1454876+0 records in
1454876+0 records out
1454876 bytes (1.5 MB) copied, 2.4514 s, 593 kB/s

$ gunzip myImage.gz 
gzip: myImage.gz: decompression OK, trailing garbage ignored

Mais informações sobre o header do uImage, leia este post:
http://www.isysop.com/unpacking-and-repacking-u-boot-uimage-files/

Fonte da dica de como descompactar o zImage:
http://openinkpot.org/wiki/Documentation/ZImageFormat

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s