Android eclipse DDMS-无法访问手机上的数据/数据/来提取文件


77

在测试我的应用程序时,我使用模拟器和自己的手机查看一切是否正常。我的应用程序还在将数据写入共享的首选项和文本文件。

我可以通过DDMSeclipse从模拟器中提取数据,以便读取计算机上的数据文件,但是当我尝试通过DDMS手机上的文件夹打开这些文件夹时,什么也没发生。我单击数据文件夹,但没有任何反应。

我的手机已扎根。有什么办法可以从手机中提取文件?我知道Android会将这些文件夹设为私有,但是必须有一种方法。该模拟器就是这样太慢了。


4
如何在无根电话上执行此操作?
likejudo 2014年

考虑到您需要更改这些文件/文件夹的文件系统权限,我认为这是不可能的。如果没有根设备,则无法完成此操作。
dell116 2014年

Answers:


160

在有设备上,您可以执行以下操作:

  1. 打开cmd
  2. 类型 adb shell
  3. su
  4. 在设备上按“允许”
  5. chmod 777 /data /data/data /data/data/com.application.package/data/data/com.application.package/*
  6. 转到Eclipse中的DDMS视图

之后,您应该能够浏览设备上的文件。

要获取数据库:

  1. chmod 777 /data/data/com.application.package/databases /data/data/com.application.package/databases/*

如果返回permission deniedsu

进入Settings> Developer Options> Root access>Apps and ADB


终于...了。差不多一年后,出现了腹泻病。所以我猜想这个问题与文件系统权限有关吗?
dell116 2012年

3
@Praveenb,我遇到了同样的问题,但是随后我在chmod命令上重复了以下步骤:/data/data/com.application.package/databases /data/data/com.application.packages/databases/*
Tom

6
@peceps:我的电话没有植根。第3步中的命令对我不起作用。它说允许被拒绝。设备中没有“允许”。
Ashwin'9

3
用于chmod -R 777 /data/data/递归地应用此命令
Konstantin Milyutin 2014年

2
当我尝试在“ adb shell”之后运行su时,得到“ su:not found”。(我使用的是无根电话)
Sarang 2014年

6

似乎没有人知道零售Nexus One即使植根后仍无法让您使用DDMS File Explorer浏览文件系统。我们在这里谈论的是真正的手机,而不是模拟器。如果您碰巧拥有Nexus One开发人员电话,则可以使用DDMS Filer Explorer浏览文件系统,但不能使用已经扎根的零售Nexus One。得到它了?

因此,我希望能回答无法使用DDMS File Explorer来浏览扎根零售Nexus One的文件系统的问题。扎根零售Nexus One之后,仍然需要做一些事情才能使用DDMS来使用File Explorer浏览手机File System。不知道是什么 也许有人知道。


阿们,兄弟 我确实想知道什么是地狱根浏览器是做在那里得到....
dell116

7
这是评论,不是答案。
克里斯·斯特拉顿

4

如果给出“权限被拒绝”在adb shell上 -> su ...

某些ROM在安全模式下运行adbd守护程序(adbd没有root访问权限,而su命令甚至在设备上都不显示权限询问对话框)。在这种情况下,当您尝试使用cmd-> adb shell-> su时,将获得“权限被拒绝”。我找到的解决方案是著名的Modchain Chainfire一款名为Adbd Insecure的应用程序。


1
在CyanoGenMod中,转到设置->开发人员选项->根访问权限,并更改为“ adb和应用程序”(默认为“应用程序”)
JRun 2013年

3

您必须编辑数据文件夹的权限。

我在root模式下使用“ Root Explorer”(请参见市场)应用程序。

在顶部选择“以r / w监视”

然后在数据文件夹上按(长按)并找到“权限”选项

有这样的事

        read    write  execute

用户

其他

确保“其他”具有可读取的检查

然后转到Eclpse,然后重试。

对不起,我的英语,希望能对您有所帮助。


1
这是极不明智的!
克里斯·斯特拉顿

2

要设置data文件夹及其所有子文件夹和文件的权限,请执行以下操作:
从ADB文件夹中打开命令提示符:

>> adb shell
>> su
>> find /data -type d -exec chmod 777 {} \;

2

messing around with permissionsandroid FS中的简单得多(
对我而言,这始终感觉像是黑客-因为我相信一定有一种integrated way)只是为了:

允许ADB root accessRestart the deamonroot permissions

  1. 首先,请确保ADB可以在您的设备(或仿真器)上具有root用户访问权限:
    Settings-> Developer Options->Root-Access for ADBApps & ADB
  2. 重新启动具有根权限的ADB服务:
    打开acommand prompt并键入:adb.exe root
  3. 重新启动ADM(Android设备管理器):
    Enjoy浏览所有文件
  4. :要否定这个过程中
    键入adb.exe unroot您的command prompt

@János可能与其有关,因为我正在使用CyanogenMod
Cadburry

1

事件虽然现在回答这个问题还为时已晚,但我将保留对我有用的内容。

Peceps的解决方案无法正常工作,因为SuperUser应用程序不允许“ shell”具有root用户访问权限。因此,我的解决方案是直接使用另一个应用程序,例如RootExplorer,并从中浏览文件夹。


1
我不得不说,在所有列出adb命令,更改权限和摆弄DDMS的答案中,这意味着我浪费了整个晚上(我本可以花时间看足球)……这是唯一,最好,最简单的解决方案实际上,这使我可以读取数据库。非常感谢和感谢。
SimonH

1

如果它在adb shell上显示“权限被拒绝”-> su ...

转到“开发人员选项”->根访问权限->“应用和ADB”


我使用的HTC,似乎无法找到开发商选择Root权限
潘卡Nimgade

0

当我说文件系统时,我指的是整个文件系统。但是您只能在零售电话上浏览文件系统的一部分,甚至可能浏览大部分文件系统,但不能浏览./data。很抱歉造成任何混乱。

这让我感到震惊,因为我植根了零售Nexus One和开发者/未锁定的Nexus One。自从我扎根零售Nexus One以来,我不知道为什么我无法像开发人员Nexus One那样浏览整个文件系统。


-3

如果您需要在手机上进行操作,则可以使用终端仿真器和标准的linux命令。

例:

  1. su
  2. 光盘数据
  3. cd com.yourappp
  4. ls或cd进入cache / shared_prefs

http://www.appbrain.com/app/android-terminal-emulator/jackpal.androidterm


不,您不需要这样做。
Octavian A. Damiean

3
@ Octavian-您是在告诉我,您可以通过DDMS中的文件资源管理器从真实电话而不是模拟器中提取文件吗?每当我在文件资源管理器中单击“数据”文件夹时,它都不会填充树。如果您使用的是模拟器而不是真实的电话,则下面的答案仅对我有用。
dell116

1
如果需要访问数据文件夹,则必须使用root用户的设备。
Siddharth_Vyas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.