【问题标题】:Use adb pull to copy app's file from phone (not rooted)使用 adb pull 从手机复制应用程序的文件(未植根)
【发布时间】:2015-06-02 09:26:33
【问题描述】:

我使用 MacBook 作为我的开发机器。我的安卓手机没有root。我想将我的 Android 应用程序文件从手机复制到我的 MacBook。我尝试了以下方法:

  1. 将 Android 手机连接到 MacBook(已启用开发者选项)

  2. adb pull /data/data/com.my.app/app_data/data ~/Documents/my/app/

其中/data/data/com.my.app/app_data/data是手机上的文件路径,~/Documents/my/app/是MacBook上的目录路径。

但上面的adb pull 命令显示Permission denied

我也试过在adb shell下使用su,但也不管用:

~$ adb shell
shell@xyz:/ $ su
/system/bin/sh: su: not found

那么,如何将我的应用程序的内部文件复制到我的 MacBook 目录?

【问题讨论】:

    标签: android adb


    【解决方案1】:

    在非 root 手机上,您无法访问应用私有数据目录 (/data/data/com.my.app)。

    提取数据的唯一方法是使用adb backupp创建应用数据的备份:

    adb backup -f mybackup.ab com.my.app

    要从创建的备份存档中提取信息,您可以使用Android Backup Extractor。它将 Android 备份存档转换为 tar 存档文件。

    注意:如果应用程序在其清单中指定不允许备份,则所描述的方式不起作用。在这种情况下,唯一的办法就是root手机。

    【讨论】:

      【解决方案2】:

      您必须使用adb shell 导航到您的文件。

      然后复制到sdcard:

      cat yourfile > /sdcard/yourfile

      然后退出 adb shell 就可以拉取了:

      adb pull /sdcard/yourfile

      【讨论】:

      • 对!但是你有错字应该是 cp 而不是 cat 吗?
      • 也许cp 也可以。我一直用cat 来做这件事。试试看然后告诉我 ;)
      • 无论如何它不会在非root手机上工作,因为/data/data/不能通过adb访问(在当前设备上)。
      • 尝试在 adb shell 中使用 run-as your.app.package 而不是导航到 /data/data/whatever
      猜你喜欢
      • 2012-01-28
      • 2015-09-28
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      • 1970-01-01
      • 2021-03-20
      • 2021-03-03
      相关资源
      最近更新 更多