有没有一种方法可以挂载Android .img文件以访问AVD(Android虚拟设备)内容?

15

在模拟器上开发Android应用时,无法查看AVD(.img)文件系统,让我感到有些盲目。

有没有一种方法可以在Windows或Linux中挂载它,以便至少可以看到文件列表和可能的内容?

如果还能挂载写权限就更好了。

谢谢。

6个回答

15

你可以在Linux中安装该设备:

sudo mount -o loop ~/.android/avd/<myvirt>/sdcard.img <destdir>

1
你能用这个解决方案写入它吗? - Artem Russakovskii
2
是的,在挂载后它是可写的。(不过我总是在虚拟设备关闭时这样做,我不确定这会对正在运行的模拟器产生什么影响。) - Ryan Olson
关于运行模拟器,如果模拟器和您的主机系统都写入SD卡,我几乎可以保证文件系统会损坏。实际上,即使只有一个写入,文件系统对另一个来说也可能看起来已经损坏了。 - Edward Falk

4
“adb shell”是什么?
这将为您提供根Shell(在模拟器上)。

好的,这是一个开始(尽管在Windows上非常痛苦。 TAB键无法工作,而且它非常原始)。有没有可用的编辑器?我尝试了vi,emacs和nano。 - Artem Russakovskii
看起来在这个原始系统中,猫是我的最佳伙伴。还有人建议安装带有vi的busybox,我可能会尝试一下。 - Artem Russakovskii

3

对于MacOS X用户:

$ hdiutil attach ~/.android/avd/Samsung_Nexus_S.avd/sdcard.img

2
对于Windows,我刚刚发现了ImDisk虚拟磁盘驱动程序。
安装此实用程序,然后您就可以挂载sdcard.img。这里有一个不错的教程here

验证通过 - 在Windows下运行良好。谢谢,你救了我的一天。 :) - lexicore

1
另一个选择是使用DDMS(Eclipse SDK)中的文件浏览器,您可以在那里看到整个文件系统,并将文件下载/上传到所需位置。这样,您就不必挂载和处理映像。我尝试过挂载,但很麻烦,例如,如果模拟器正在运行,则无法执行此操作。此外,如果要查看所有内容,则需要挂载每个映像。

1

可以挂载。在Ubuntu下,您可以通过vfat挂载sdcard.img,通过yaffs2挂载system.img和userdata-qemu.img。另请参见:{{link1:“什么是Android文件系统?”}}。

请注意,yaffs2文件系统未包含在标准的Ubuntu内核中。因此,在Ubuntu的情况下,您必须先构建支持yaffs2的自己的内核,然后才能挂载system.img和userdata-qemu.img。或者,您也可以查看yaffs2utils,这些工具允许您从yaffs2映像中提取文件或创建新的映像文件。优点是您不必为使用这些工具构建自己的内核。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接