Android画像のboot.img
ファイルのコンテンツを表示しようとしています。
グーグルで検索してこの記事を見つけてsystem.img
を抽出しましたが、boot.img
。boot.img
に対してこれを実行しようとすると、次のように表示されます。
Invalid sparse file format at header magi Failed to read sparse file
simg2img
はsystem.img
の抽出にのみ使用されますか?
- その場合、他に何かありますか
boot.img
を抽出する方法? - そうでない場合、
boot.img
を抽出しない場合の問題は何ですか?
コメント
回答
boot.imgは、2つの主要部分を含む小さな(ish)ファイルです。
* kernel(important for android) * ramdisk( a core set of instruction & binaries)
boot.imgを解凍します:
次の手順が含まれています。
-
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz
-
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
aを試してください。 >( 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
コメント
- このコードとプロジェクトは最新で維持されているため、これが答えです。
boot.img
を解凍して編集するにはどうすればよいですか?