最近,我对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...
内部获取文件?
答案 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的所有其他选项。