39

最近,我对android rom很感兴趣,我想改变和重建它们。
所以,我在我的 XOOM 上做了一些测试,很容易将一些东西刷入机器。
我从 MOTOROLA ( http://developer.motorola.com/products/software/ ) 那里得到了一些 ROM,它们是一些 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,它说mount: wrong fs type, bad option, bad superblock on...

那么,如何从内部获取文件userdata.img呢?

4

5 回答 5

40

查看答案: http: //omappedia.org/wiki/Android_eMMC_Booting#Modifying_.IMG_Files

首先你需要用 解压userdata.imgsimg2img然后你可以通过循环设备挂载它。

于 2012-03-12T22:37:12.820 回答
24

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

引用

(稍作调整以提高可读性)


这适用于所有想要解压缩和修改可以使用恢复刷新 的原始system.img的人。system.img(例如,您从谷歌工厂图像中获得)代表一个稀疏的 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 apk 和框架 jar。

第 2 部分 – 创建新的可闪存系统映像

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

现在您可以简单地键入:

fastboot flash system new.img

于 2012-04-21T12:28:31.907 回答
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”来提取它。

于 2012-04-03T03:23:26.387 回答
0

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

于 2013-01-15T11:34:42.613 回答
-2

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

Furius ISO 支架:https://packages.debian.org/sid/otherosfs/furiusisomount

“当我想通过 mount -o loop userdata.img /mnt/userdata (与 system.img 相同)挂载 userdata.img 时,它告诉我 mount:你必须指定文件系统类型,所以我尝试 mount -t ext2 - o 循环 userdata.img /mnt/userdata,它说 mount: wrong fs type, bad option, bad superblock on...

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

接下来选择 mount 选择 mount

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

于 2015-12-17T00:52:25.813 回答