Kuinka purkaa boot.img?

Yritän nähdä boot.img -tiedoston sisältöä Android-kuvasta.

Googlen ja löysin tämän artikkelin purkamaan system.img, mutta se ei toimi boot.img. Kun yrität tehdä tätä kohteelle boot.img, se näyttää seuraavan:

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

Käytetäänkö simg2img vain system.img purkamiseen?

  1. Jos on, onko olemassa muuta menetelmä purkaa boot.img?
  2. Jos ei, mikä ongelma on, jos boot.img ei pureta?

kommentit

Vastaa

boot.img on pieni (ish) tiedosto, joka sisältää kaksi pääosaa.

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

Pura boot.img:

Se sisältää seuraavat vaiheet:

  1. Lataa työkalu käyttämällä wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz

  2. Pura tiedosto käyttämällä tar xvzf android_bootimg_tools.tar.gz.

    Se sisältää two binaareja:

     * unpackbootimg * mkbootimg 

3.Sitten suorita ./unpackbootimg -i <filename.img> -o <output_path>

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

Voimme purkaa myös ramdisk-levyn seuraavalla komennolla.

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

Tiedostojen muuttamisen jälkeen voimme pakata tiedostot uudestaan boot.img-tiedostoon mkbootimg

Pidä hauskaa!

Kommentit

  • Saan virheitä kolmannessa vaiheessa auta minua … päätelaite sanoo, että unpackbootimg -komentoa ei löydy
  • Saman virheen saaminen Mint 17: n vaiheesta 3 täällä. Yritti ajaa niitä sudolla ja chmod 755: n jälkeen turhaan.
  • Varmista vaiheessa 3, että output_path on jo olemassa, muuten unpackbootimg erottelee.
  • Työkalun linkki on kuollut.
  • Korjaa: " unpackbootimg -komentoa ei löydy ", käytät 32-bittistä binaaria 64-bittisessä koneessa ilman 32-bittisiä riippuvuuksia. Asenna ne " apt-get install gcc-multilib "

Answer

boot.img ei ole pakattu tiedostojärjestelmän kuva, kuten system.img. Käynnistyslatain lukee sen, ja se sisältää vain ytimen ja ramdisk-kuvan.

Jotkut binaarijärjestelmät toimittavat ytimen ja ramdisk-kuvat erikseen. Siinä tapauksessa sinun ei tarvitse tehdä mitään boot.img -palvelun kanssa, vain uudistaa uusi tiedostolla mkbootimg.

Jos haluat poimia tietoja tiedostosta boot.img, kokeile split_bootimg (kirjoittanut William Enck , Android-wikin kautta ).

Kommentit

  • Linkki osoitteeseen split_bootimg ei ole enää voimassa.
  • @NathanOsman Korvattu linkillä William Enck ' -sivun kopioon.

Vastaa

Käytän opensuse-ohjelmaa. Olen asentanut abootimg-ohjelman. Jos haluat purkaa (boot | recovery) .img-ohjelman, toimi seuraavasti:

abootimg -x (boot|recovery).img 

Sitten saat seuraavat tiedostot : bootimg.cgf, zImage ja initrd.img Jos haluat pakata kuvan, suoritat sellaisen

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

Sitten saat (käynnistys | palautus) .img

Nauti

Vastaa

Voit purkaa ja pakata Android-käynnistyskuvan seuraavalla työkalulla

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

kopioi boot.img kloonattu git-arkisto. Suorita:

$ ./gradlew unpack 

Ensimmäisellä kerralla sinun on ladattava tarvittavat libit Internetistä, ole kärsivällinen. Saat sisällön osoitteesta build / unzip_boot /, kuten tämä:

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

Kommentit

  • Tämä on vastaus, koska tämä koodi ja projekti ovat ajan tasalla ja ylläpidossa.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *