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

Android画像のboot.imgファイルのコンテンツを表示しようとしています。

グーグルで検索してこの記事を見つけてsystem.imgを抽出しましたが、boot.imgboot.imgに対してこれを実行しようとすると、次のように表示されます。

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

simg2imgsystem.imgの抽出にのみ使用されますか?

  1. その場合、他に何かありますかboot.imgを抽出する方法?
  2. そうでない場合、boot.imgを抽出しない場合の問題は何ですか?

コメント

回答

boot.imgは、2つの主要部分を含む小さな(ish)ファイルです。

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

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を使用してファイルを抽出します。

    twoバイナリが含まれています:

     * unpackbootimg * mkbootimg 

3.次に、./unpackbootimg -i <filename.img> -o <output_path>

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

を実行します。

次のコマンドを使用してramdiskを抽出することもできます

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

ファイルを変更した後、

楽しんでください!

コメント

  • 3番目のステップでエラーが発生します助けてください…ターミナルにunpackbootimgコマンドが見つかりませんと表示されます
  • ここでMint17の手順3で同じエラーが発生します。 sudoを使用し、chmod755の後で実行してみました。
  • 手順3で、output_pathが既に存在することを確認します。存在しない場合は、unpackbootimgはsegfaultになります。
  • ツールのリンクが無効になっています。
  • 修正:" unpackbootimgコマンドが見つかりません"、32ビット依存関係のない64ビットマシンで32ビットバイナリを実行しています。 " apt-get install gcc-multilib "

回答を使用してインストールします

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

一部のバイナリディストリビューションでは、カーネルイメージとRAMディスクイメージが別々に出荷されます。その場合、boot.imgで何もする必要はなく、mkbootimgで新しいものを再生成するだけです。

boot.imgから情報を抽出する必要がある場合は、 split_bootimg William Enck Android wiki 経由)

コメント

  • split_bootimgへのリンクは無効になりました。
  • @NathanOsmanリンクに置き換えられましたWilliam Enck 'のページのコピーに移動します。

回答

opensuseを使用します。abootimgをインストールしました。(boot | recovery).imgを抽出する場合は、次のように実行します。

abootimg -x (boot|recovery).img 

次に次のファイルを取得します:bootimg.cgf、zImage、initrd.imgイメージをパックしたい場合は、そのように実行します

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

次に、(boot | recovery).imgを取得します。

お楽しみください

回答

次のツールを使用して、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 

コメント

  • このコードとプロジェクトは最新で維持されているため、これが答えです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です