Android设备管理器:“转移错误:权限被拒绝”

时间:2015-07-19 14:28:20

标签: android

我正在尝试提取我的应用程序数据库文件,我可以看到我拥有数据库文件“-rwxrwxrwx”中的所有权限,我是由chmod -r 777 /data/data/com.example.myapp提供的,但我无法做到,当我尝试拉动它时,我不断得到上述错误,而且设备管理器一直在崩溃。

我得到的错误:

  

[2015-07-19 19:48:44 - ddms]传输错误:权限被拒绝

     

[2015-07-19 19:48:44]选择失败:权限被拒绝

我正在使用Android Studio,我的设备具有root访问权限,而且我在Mac上。

这就是我想要提取的内容:

enter image description here

编辑:当我运行以下命令时,我收到此错误Package 'com.example.hackbot' has corrupt installation

run-as com.example.hackbot chmod /data/data/com.example.hackbot/databases/HackBotDB

任何帮助都很有价值。

干杯

3 个答案:

答案 0 :(得分:7)

这很容易做到:

  1. 插入您的设备,然后从命令行或终端
  2. 运行adb shell
  3. 进入shell run-as com.myapplication.packagname
  4. 然后cd进入数据库文件夹cd databases
  5. 然后运行cat my_datbase_name.db > /sdcard/my_database_name_temp.db
  6. 再次运行exit然后再次exit以返回正常的终端提示
  7. 运行adb pull /sdcard/my_database_name_temb.db,应该是
  8. 您可以下载sqlitebrowser来查看此数据

答案 1 :(得分:4)

adb shell linux用户和你的app linux用户不同。因此,出于安全原因,您无法从adb获取私有应用数据,但您可以像您一样制作副本。我同意,这是混乱和不洁,但它是这样设计的。所以我的建议是将Stetho添加到您的应用中。您可以从Chrome监控您的数据库,以及获取其他调试信息。

答案 2 :(得分:-1)

  1. 使用Android模拟器运行应用程序然后转到 - >工具 - > android设备监视器 对话框将打开转到文件资源管理器 - >数据文件夹 (授予数据文件夹权限)
    • 使用开始菜单打开cmd
    • 转到sdk文件夹(例如,C:\ Users \ android-sdks \ platform-tools>)
    • 输入adb shell
    • chmod 777 / data
    • chmod 777 /data/data/in.co.gesardisplays.www.rwfiles/files/gesar.txt 更改将受到adb monitor
    • 的影响
  2. 将文件拉到文件夹
    • 退出shell
    • 按照上一步1.2
    • 进行操作
    • 输入adb root
    • adb pull /data/data/in.co.gesardisplays.www.rwfiles/files/    选择你的文件点击一个文件图标,它将位于文件浏览器的右上角