14

我将 Nexus One 与 USB 连接。

当我访问 DDMS 的文件资源管理器时,如果我点击“data”文件夹,名称“data”旁边的小加号会消失 2-6 秒,然后重新出现,但不会显示文件夹“data”的内容!

这里还有一些其他信息:

  • 文件夹数据有权限 drwxrwx--x

  • 我的电脑的操作系统是 Windows XP

  • Eclipse v. 3.5.2

  • 安卓 SDK 1.6

4

3 回答 3

9

如果 adbd 守护程序以 root 身份运行,您可以使用基于 adb 的工具(例如 DDMS 文件资源管理器或 adb shell)浏览 /data。

如果不是,您可以通过完整路径名直接访问 /data 及其子项下的一些文件,但您无法浏览(或“cd”到)大多数文件夹,包括 /data 本身。

“root”作为一个非官方的过程意味着不同的事情并产生不同的结果——即,adbd 可能会或可能不会以 root 身份运行。

如果在 /init.rc 等启动脚本中将 ro.secure 设置为 0,adbd 将以 root 身份运行,但这在用户设备上可能不是一个好主意。它在模拟器上设置为 0,这就是您可以在那里浏览 /data 的原因。

最后,请注意 /init.rc 通常包含在打包到内核中的 ramdisk 映像中 - 您无法在手机上真正编辑它,但必须离线修改映像,将其重新附加到内核,然后重新闪他们。虽然如果你有某种工作的“su”黑客,你可以暂时更改属性并重新启动 adbd。

于 2011-05-17T19:36:31.547 回答
6

在此链接 ( http://denniskubes.com/2012/09/25/read-android-data-folder-without-rooting/ ) 中,Dennis Kubes 展示了一种无需 root 访问即可访问应用程序数据文件夹的方法。

原来有一个简单的解决方案,run-as 命令。

run-as com.your.package ls -l /data/data/com.your.package
run-as com.your.package rm /data/data/com.your.package/databases/mydatabase.db

这将允许您将命令作为您的应用程序运行。您还可以在交互模式下使用 run-as。

run-as com.your.package
shell@android:/data/data/com.your.package $ ls
cache
databases
lib
shared_prefs
rm databases/mydatabase.db

交互模式会将您放入应用程序的数据文件夹中。您可以从那里导航。

于 2014-07-16T13:30:47.820 回答
2

我认为没有人真正理解这个问题。Giorgio 可以使用 DDMS 文件资源管理器浏览手机上的 ./data 文件夹。Pentium10 谈到在手机上需要 root 访问权限。

好吧,我是零售 Nexus One 和开发者 Nexus。我一直可以使用 DDMS 文件资源管理器来浏览我的开发人员手机上的 ./data 文件夹,但不能在我的零售手机上浏览。所以我扎根我的零售电话会有所帮助。我没有。

所以底线是零售手机和开发手机有所不同。在完成更多研究之前,您将无法浏览手机上的数据文件夹。

希望这可以帮助。

于 2011-05-17T18:32:32.120 回答