问题
I generate *.img by building AOSP.
Like ramdisk.img,boot.img etc.
I want to mount this file. I'm using Ubuntu.
回答1:
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.
回答2:
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