Comment extraire boot.img?

Jessaie de voir le contenu dun fichier boot.img à partir dune image Android.

Jai cherché sur Google et trouvé cet article pour extraire system.img, mais cela ne fonctionne pas pour boot.img. Lorsque vous essayez de faire cela pour boot.img, il affiche ce qui suit:

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

Est-ce que simg2img est utilisé uniquement pour extraire system.img?

  1. Si oui, y en a-t-il dautres méthode pour extraire boot.img?
  2. Sinon, quel est le problème pour ne pas extraire boot.img?

Commentaires

Réponse

boot.img est un petit fichier (ish) qui contient deux parties principales.

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

Décompressez boot.img:

Il contient les étapes suivantes:

  1. Téléchargez loutil en utilisant wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz

  2. Extrayez le fichier en utilisant tar xvzf android_bootimg_tools.tar.gz.

    Il contient two binaires:

     * unpackbootimg * mkbootimg 

3.Ensuite, exécutez ./unpackbootimg -i <filename.img> -o <output_path>

It will contain, * boot.img-zImage ----> kernel * boot.img-ramdisk.gz ----> ramdisk 

Nous pouvons également extraire ramdisk, en utilisant la commande suivante

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

Après avoir changé les fichiers, nous pouvons à nouveau compresser ces fichiers sous boot.img en utilisant mkbootimg

Amusez-vous bien!

Commentaires

  • Jobtiens une erreur à la troisième étape sil vous plaît aidez-moi … le terminal dit que la commande unpackbootimg est introuvable
  • Obtenir la même erreur pour létape 3 sur Mint 17 ici. Jai essayé de les exécuter par sudo et après chmod 755 en vain.
  • À létape 3, assurez-vous que output_path existe déjà, sinon unpackbootimg va segfault.
  • Le lien pour loutil est mort.
  • Correction pour: " commande unpackbootimg introuvable ", vous exécutez un binaire 32 bits sur une machine 64 bits sans dépendances 32 bits. Installez-les avec " apt-get install gcc-multilib "

Réponse

boot.img nest pas une image de système de fichiers compressée comme system.img. Il est lu par le chargeur de démarrage et contient un peu plus quune image du noyau et une image du disque virtuel.

Certaines distributions binaires expédient les images du noyau et du disque virtuel séparément. Dans ce cas, vous navez rien à faire avec boot.img, il vous suffit den régénérer un nouveau avec mkbootimg.

Si vous avez besoin dextraire des informations dun boot.img, essayez split_bootimg (par William Enck , via le wiki Android ).

Commentaires

  • Le lien vers split_bootimg nest plus valide.
  • @NathanOsman Remplacé par un lien à la copie sur la page de William Enck '.

Réponse

Jutilise opensuse. Jai installé abootimg. Si vous voulez extraire (boot | recovery) .img exécutez tel:

abootimg -x (boot|recovery).img 

Ensuite, vous obtenez les fichiers suivants : bootimg.cgf, zImage et initrd.img Si vous voulez empaqueter limage, vous exécutez tel

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

Alors vous « obtiendrez (boot | recovery) .img

Appréciez

Réponse

Vous pouvez utiliser loutil suivant pour extraire et reconditionner limage de démarrage Android

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

copiez votre boot.img dans le référentiel git cloné. Exécuter:

$ ./gradlew unpack 

Lors de la première exécution, vous devrez télécharger les bibliothèques nécessaires sur Internet, soyez patient. Vous pouvez obtenir le contenu sur « build / unzip_boot / », comme ceci:

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

Commentaires

  • Voici la réponse, car ce code et ce projet sont actuels et maintenus.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *