Como extrair o boot.img?

12

Estou tentando ver o conteúdo em um arquivo boot.img de uma imagem do Android.

Eu pesquisei e encontrei este artigo para extrair system.img , mas não funciona para boot.img . Ao tentar fazer isso por boot.img , está mostrando o seguinte:

Invalid sparse file format at header magi
Failed to read sparse file

simg2img é usado apenas para extrair system.img ?

  1. Em caso afirmativo, existe algum outro método para extrair boot.img ?
  2. Se não, qual é o problema para não extrair boot.img ?
por Dhasneem 13.02.2013 / 11:06

4 respostas

16

boot.img é um pequeno arquivo (ish) que contém duas partes principais.

          * kernel(important for android)
          * ramdisk( a core set of instruction & binaries)

Descompacte boot.img:

Ele contém os seguintes passos:

  1. Faça o download da ferramenta usando wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz

  2. Extraia o arquivo usando tar xvzf android_bootimg_tools.tar.gz .

    Contém two binários:

           * unpackbootimg
           * mkbootimg
    

3.Em seguida, execute ./unpackbootimg -i <filename.img> -o <output_path>

It will contain,

           * boot.img-zImage     ----> kernel
           * boot.img-ramdisk.gz ----> ramdisk

Também podemos extrair o ramdisk usando o seguinte comando

gunzip -c boot.img-ramdisk.gz | cpio -i

Depois de alterar os arquivos, podemos novamente compactar esses arquivos como boot.img usando mkbootimg

Divirta-se!

    
por 19.02.2013 / 13:54
5

boot.img não é uma imagem do sistema de arquivos compactado como system.img . Ele é lido pelo gerenciador de inicialização e contém pouco mais que uma imagem de kernel e uma imagem de ramdisk.

Algumas distribuições binárias enviam as imagens do kernel e do ramdisk separadamente. Nesse caso, você não precisa fazer nada com boot.img , apenas gere uma nova com mkbootimg .

Se você precisar extrair informações de um boot.img , tente split_bootimg (por William Enck , através de o wiki do Android ).

    
por 14.02.2013 / 01:25
3

Eu uso o opensuse. Eu instalei o abootimg. Se você deseja extrair (boot | recovery) .img, execute:

abootimg -x (boot|recovery).img

Então você obtém os próximos arquivos: bootimg.cgf, zImage e initrd.img Se você quiser embalar a imagem, execute tal

abootimg --create (boot|recovery).img -f bootimg.cfg -k zImage -r initrd.img

Então você vai ter (boot | recovery) .img

Aproveite

    
por 10.11.2016 / 09:58
0

Você pode usar a seguinte ferramenta para extrair e reempacotar a imagem de inicialização do Android

$ git clone https://github.com/cfig/Android_boot_image_editor.git

copie seu boot.img para o repositório git clonado. Executar:

$ ./gradlew unpack

A primeira vez que você precisa baixar as bibliotecas necessárias da internet, seja paciente. Você pode obter o conteúdo em "build / unzip_boot /", assim:

build/unzip_boot/
├── bootimg.json (boot image info)
├── kernel
├── second (2nd bootloader, if exists)
├── boot.img.avb.json (AVB only)
└── root
    
por 01.08.2018 / 17:28