How to mount AOSP .img files?

2019-04-02 10:54发布

I generate *.img by building AOSP.

Like ramdisk.img,boot.img etc.

I want to mount this file. I'm using Ubuntu.

2条回答
爱情/是我丢掉的垃圾
2楼-- · 2019-04-02 11:30

You cannot mount boot.img file, as it's not a valid filesystem

The boot.img file contains ramdisk and kernel binary (zImage) and possibly dt.img (device tree).

There is an excellent open source project: mkbootimg_tools at GitHub. You can use it to split the boot.img file and unpack the ramdisk.

查看更多
虎瘦雄心在
3楼-- · 2019-04-02 11:43

simg2img

Some Android images are compressed by default for some builds. This is the case for example of the HiKey960 build with lunch hikey960-eng, but not for emulator builds e.g. with lunch aosp_x86_64-eng.

You must first usesimg2img to decompress them:

simg2img system.img out.img
sudo losetup --show -f -P out.img
sudo mount /dev/loop0 /mnt/loop0

simg2img lives under ./out/host/linux-x86/bin/simg2img, and gets added automatically to PATH by lunch.

Note however that this is not the case for all the images, e.g. boot.img.

If you skip simg2img, you get the error:

NTFS signature is missing.
Failed to mount '/dev/loop3': Invalid argument
The device '/dev/loop3' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

when trying to mount.

It appears that the compressed format is something that fastboot can understand.

Also mentioned at: https://stackoverflow.com/a/9675784/895245

Tested in Ubuntu 16.04 host, at branch repo init -b android-8.1.0_r1.

查看更多
登录 后发表回答