boot.imgを抽出する方法は?

boot.imgを抽出する方法は?

boot.imgAndroidイメージでファイルの内容を表示しようとしています。

Googleで見つけました。この記事抽出しようとしsystem.imgましたが、動作しません。以下が表示されます。boot.imgboot.img

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

ただsimg2img抽出用ですかsystem.img

  1. もしそうなら、それを抽出する別の方法がありますかboot.img
  2. そうでない場合、抽出しないとどうなりますかboot.img

答え1

boot.img2つの主要部分を含む小さなファイルです。

  • カーネル(Androidにとって重要)
  • RAMディスク(コア命令とバイナリセット)

開梱boot.img:

これには次のステップが含まれます。

  1. このツールをダウンロードして使用してください

    wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz
    
  2. 抽出されたファイルの使用

    tar xvzf android_bootimg_tools.tar.gz
    

    これには2つのバイナリが含まれています。

    • unpackbootimg
    • mkbootimg
  3. その後実行

    ./unpackbootimg -i <filename.img> -o <output_directory>
    

    内容は次のoutput_directoryとおりです。

    • boot.img-zImage(核心)
    • boot.img-ramdisk.gz(仮想ディスク)

次のコマンドを使用してRAMディスクを抽出することもできます。

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

ファイルを変更したら、次のようにboot.imgファイルを再パッケージ化できます。mkbootimg

答え2

インストールする abootimg(パッケージとして利用可能です。Debian/UbuntuそしてSUSEを開く)。

抜粋(boot|recovery).img:

$ abootimg -x (boot|recovery).img
$ ls
boot.img  bootimg.cfg  initrd.img  zImage

修正(boot|recovery).img後に再梱包するには、次の手順を実行します。bootimg.cfgzImageinitrd.img

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

答え3

boot.imgそのような圧縮ファイルシステムイメージではありませんsystem.img。ブートローダによって読み取られ、カーネルイメージとラムディスクイメージのみが含まれます。

一部のバイナリディストリビューションでは、カーネルとラムディスクのイメージを別々に提供しています。この場合、何もする必要はなく、boot.imgRebuildを使用して新しいものを作成するだけですmkbootimg

から情報を抽出する必要がある場合は、boot.img以下を試してください。split_bootimg(通過ウィリアムエンク、渡すAndroidウィキ)。

答え4

次のツールを使用して、Androidブートイメージを抽出して再パッケージ化できます。

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

boot.imgを複製されたgitリポジトリにコピーします。ランニング:

$ ./gradlew unpack

初めて実行するには、インターネットから必要なライブラリをダウンロードする必要があります。しばらくお待ちください。次のように "build/unzip_boot/"からコンテンツを取得できます。

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

関連情報