如何在linux下挂载android img文件?

时间:2011-12-29 04:06:00

标签: android rom

最近,我对android rom感兴趣,我想改变并重建它们 所以,我在我的XOOM上做了一些测试,很容易在机器上闪现一些东西 我从MOTOROLA获得了一些ROM(http://developer.motorola.com/products/software/), 它们是一些img文件,我想知道里面是什么,我希望解压它们。

我尝试了 unyaffs ,它说broken img file 我尝试安装它们,它在system.img上工作得很好,我可以在里面获取文件。

当我想按mount -o loop userdata.img /mnt/userdata(与system.img相同)挂载userdata.img时,它会告诉我mount: you must specify the filesystem type所以我尝试了mount -t ext2 -o loop userdata.img /mnt/userdata,它说{{ 1}}

那么,如何从mount: wrong fs type, bad option, bad superblock on...内部获取文件?

5 个答案:

答案 0 :(得分:29)

请参阅答案:http://omappedia.org/wiki/Android_eMMC_Booting#Modifying_.IMG_Files

首先你需要"解压缩" userdata.img simg2img,然后您可以通过循环设备安装它。

答案 1 :(得分:20)

我找到了一个简单的解决方案:http://andwise.net/?p=403

引用

(略微调整以提高可读性)


  

这适用于所有想要解压缩并修改原始 system.img 的人,您可以使用恢复进行闪存。    system.img (例如,您从Google工厂图片中获取)表示一个稀疏的ext4循环安装文件系统。   它被安装到您设备的 / system 中。请注意,本教程适用于ext4文件系统。例如,您可能拥有yaffs2的系统映像。

     

它安装在Galaxy Nexus上的方式:

/dev/block/platform/omap/omap_hsmmc.0/by-name/system /system ext4 ro,relatime,barrier=1,data=ordered 0 0
  

先决条件:

     
      
  • Linux机器或虚拟机
  •   
  • simg2img和make_ext4fs二进制文件,可以从linux软件包下载 android-tools-fsutils
  •   
     

步骤:

     

system.img 和2个二进制文件放在一个目录中,并确保二进制文件具有exec权限。

     

第1部分 - 安装文件系统

mkdir sys
./simg2img system.img sys.raw
sudo mount -t ext4 -o loop sys.raw sys/
  

然后你将系统分区安装在'sys /'中,你可以在'sys /'中修改你想要的任何内容。例如de-odex apks和framework jar。

     

第2部分 - 创建一个新的可闪烁系统映像

sudo ./make_ext4fs -s -l 512M -a system new.img sys/
sudo umount sys
rm -fr sys
  

现在您只需输入:

即可
fastboot flash system new.img

答案 2 :(得分:2)

在Android文件系统中,“system.img”和“userdata.img”是VMS Alpha可执行文件。 “system.img”和“userdata.img”具有根文件系统上的/ system和/ data目录的内容。它们使用yaffs2文件系统映射到NAND设备上。现在,yaffs2映像文件无法安装在linux PC上。如果可以,也许你有一些没有包装在yaffs2文件系统中的rom。您可以通过执行以下命令来检查这些rom文件:

file <system.img/userdata.img>

如果显示“VMS Alpha可执行文件”,则可以使用“unyaffs”将其解压缩。

答案 3 :(得分:0)

另一种选择是使用DDMS中的文件资源管理器(Eclipse SDK),您可以在那里看到整个文件系统,并将文件下载/上传到所需的位置。这样您就不必安装和处理图像。只需记住将设备设置为USB可调试(来自开发人员工具)

答案 4 :(得分:-2)

我发现Furius ISO mount最适合我。我使用的是基于Debian的发行版Knoppix。我一直用它来打开system.img文件。

Furius ISO装载:https://packages.debian.org/sid/otherosfs/furiusisomount

&#34;当我想通过mount -o loop userdata.img / mnt / userdata(与system.img相同)挂载userdata.img时,它告诉我mount:你必须指定文件系统类型所以我试试mount -t ext2 -o loop userdata.img / mnt / userdata,它表示mount:错误的fs类型,错误的选项,错误的超级块... ...

那么,如何从userdata.img内部获取文件?&#34; 要加载.img个文件,您必须选择循环并加载.img Select loop

接下来选择mount Select mount

Furius ISO挂载处理将.img文件加载到/ home / dir的所有其他选项。