How to mount AOSP .img files?

孤者浪人 提交于 2019-12-03 22:58:27
skoperst

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.

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!