".img"ファイルの一部のファイルを変更しようとしています。
例:
logo-x.squashfs.img
romfs-x.squashfs.img
safeEnv.img
sign.img
これを行うには、7-Zipを使用して「.img」を抽出し、必要なものを変更しました。しかし、これらの変更されたファイルを7-Zipを使用してアーカイブすることは不可能であったため、これを実行するツールを検索しましたが、元の「.img」を生成できるツールを見つけることができませんでした。
ImgBurnを試してみましたが、元のファイルとは異なるファイルが作成されているようです。また、DDを試してみましたが、ボリュームの代わりにファイルで動作させることはできませんでした。
元の「.img」ファイルを読み、その形式を理解し、新しいファイルから新しいファイルを作成するにはどうすればよいですか?
ベストアンサー1
7-ZipがsquashFSイメージを別々のファイルに変換できることがわかりましたが、これを行うための標準ツールはおそらく次のとおりです
rdsquashfs
。
# Unpack image `foo.img' into directory `foo':
rdsquashfs --unpack-root foo --unpack-path / foo.img
その後、ファイル内のファイルを変更したら、次のようにfoo
再パッケージ化できます
mksquashfs
。
mksquashfs foo foo-updated.img
mksquashfs
上記のように使用すると、元のイメージファイルの一部のメタデータが失われる可能性があります。これがユースケースにとって重要な場合は、元の画像の説明を読み、新しい画像を作成するときに参照として使用することをお勧めします。
# Unpack image `foo.img' into directory `foo':
rdsquashfs --unpack-root foo --unpack-path / foo.img
# Read description from image `foo.img' to file `foo.desc`:
rdsquashfs --describe foo.img >foo.desc
# Create image `foo-updated.img' from directory `foo' and description:
gensquashfs --pack-file foo.desc --pack-dir foo foo-updated.img