I generate *.img by building AOSP.
Like ramdisk.img,boot.img etc.
I want to mount this file. I'm using Ubuntu.
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
.
来源:https://stackoverflow.com/questions/26137795/how-to-mount-aosp-img-files