我已经将设备HTC Evo Design 4G植根,并且尝试adb拉/ data数据,并说“ 0个文件拉0个文件已跳过”我该如何拉根文件夹。

谢谢
iua

评论

您是否先运行adb root?

是的,但是adb root无法成功。没有权限。但是我可以使用adb shell su。它给出#。

#1 楼

/data/data以下的文件和目录受“普通用户”保护,因此,除非ADB守护程序以root模式运行,否则您不能简单地“拉”它们。除了您所引用的文件(/system/buildprop至少对所有应用程序都可读)之外,/data/data下方的文件夹是“不可见的”(根目录除外),因此甚至无法读取。

要在它们上使用adb pull,您需要首先使您的ADB守护程序以root模式运行。根据设备的不同,一个简单的adb root命令可能会执行此操作-但大多数设备都拒绝这样做。在这种情况下,您可以使用chainfire的adbd不安全:在设备上安装此应用,在设备上启动,然后手动切换到“不安全”模式。现在,pull应该会成功。以防万一你想知道。

评论


谢谢你!除了chainfire adbd不安全之外,我是否可以在build属性中设置ro.secure标志?我可以使用adb shell setprop ro.secure 0吗?

–user3734225
2014年7月5日在1:20



我从来没有尝试过,也不知道该标志的用途是什么,所以我无法分辨。 (顺便说一句:如果您认为答案有用,欢迎您“赞成”(SE表示“谢谢”的方式),或者在解决我们的问题时“接受”;)

– Izzy♦
2014年7月5日在18:05

亚行对我不安全的工作:)

–user3734225
2014年7月6日在1:27

#2 楼

如果您的手机扎根,可以通过三种方法解决此问题。第一个是使用不安全的ADBD。

另一个是将其移动到具有根目录的另一个文件夹中,然后从那里拉出它:
br />我认为您可以构建一个脚本,例如:

$ adb shell

shell@android:/ $ su
root@android:/ # mkdir /sdcard/data
root@android:/ # cp /data/data/* /sdcard/data
root@android:/ # exit
shell@android:/ $ exit 

$ adb pull /sdcard/data .
$ adb shell

shell@android:/ $ rm -r /sdcard/data/
shell@android:/ $ exit


并将其保存在某个地方。

最后,第三个选项是chmod -R 1777 /data/data ,但是这样做更加不安全,因此不建议这样做。

评论


请问$ 1 / *是什么意思?是/ data / data目录吗?

– emen
16-10-7在9:37



非常好的答案

–丹·布拉德伯里(Dan Bradbury)
17年11月25日在1:22

使用-r复制递归子目录和文件“ cp -r / data / data / sdcard / data”

– Parvesh Monu
20-2-8在21:03

@Emen $ 1是提供给脚本的第一个参数,在这种情况下,它将引用目录。因此,如果该脚本在名为extractdir.sh的文件中,则可以使用./extractdir.sh / path / to / target / dir进行调用。

–h0r53
20-2-18在16:38

#3 楼

您不能直接拉数据文件夹,因为adb没有文件列表访问权限。如果要拉/ data文件夹,则可以通过恢复来实现([自定义恢复,CWM / TWRP]在设备处于恢复模式时运行adb,希望是自定义恢复)。或以root身份将/ data复制到另一个目录(sdcard)并将其从那里拉出。

评论


谢谢。但是我能够拉/ System文件夹中的build.prop文件。 adb shell su,然后我可以列出根文件夹中的文件。我在Google搜索设置中将ro.secure构建属性读为0,这将有助于提取/ data。这是真的?如果可以的话,有办法吗?

–user3734225
2014年7月4日在7:23



您可以拉出build.prop,因为/ system具有列表权限。您可以在boot.img中更改ro.secure = 0,但这是一个非常复杂的步骤。仅安装自定义恢复并从那里进行操作会更容易。

–Hiemanshu Sharma
2014年7月4日在7:28

非常感谢你!我的主要目的是将法证相关应用程序作为大学的最后一年项目。我真的很害怕,安装自定义恢复将清除设备中的证据。您对这个主题有任何想法吗?

–user3734225
2014年7月4日在7:38

在我之前的评论中添加-adb shell setprop的用途是什么?我不能在这种情况下使用它吗?

–user3734225
2014年7月4日在7:57

依靠手机扎根并打开调试功能的取证恢复程序听起来并不是很有用。

–丹·赫尔姆
2014年7月4日在8:07

#4 楼

第一部分:为ADB PULL准备所有文件

这对我有用:
*确保您使用的是最新的ADB版本。


启动ADB会话:

'infocus $ adb shell'


在ADB中获得一次SU权限会话,您需要做的就是键入“ su”,如下所示:

'shell @ m1:/ $ su'

然后您会注意到“ $”变为“#”,如下所示:

'root @ m1:/#'

-哈希值使您知道您处于SU模式。


在设备的/ sdcard上创建一个文件夹

'root @ m1:/#mkdir / sdcard / data /'

*转到要复制的文件的根目录
-例如,对于我来说,我想对应用程序进行备份/复制并将其存储在计算机上,以便:

'root @ m1:/ data / app#'


如果我“ ls”该文件夹,我将得到的示例:

'root @ m1: / data / app#ls
com.abtnprojects.ambatana-1
com.acr.rootfilemanager-1
com.android.mms-1
com.android.vending-2'


为了通过ADB“ cp”命令进行递归复制,请使用选项“ -R”,由于我想复制其中的所有内容,因此使用通配符“ *”
,如下所示:

'root @ m1:/ data / app#cp -R * / / sdcard / data /'


一旦按下回车键,如果文件很大,显然将需要一段时间来复制文件,因此光标会空转一会儿,看起来好像什么也没做,但是 它是!它正在复制文件,所以不要惊慌!并且不要停止该过程!!!
-如果您只想打开另一个ADB shell会话,然后转到要传输文件的文件夹
,并执行“ ls”检查,则应该看到空文件夹现在正在填充文件。
一旦转移完成,您将获得外壳。
转到“ sdcard / data”,并确保所有内容都被复制为“ ls”:

'root @ m1:/ sdcard / data#ls
com.abtnprojects.ambatana-1
com.acr.rootfilemanager-1
com.amazon.kindle-1
com.android.chrome-1

第二部分:ADB PULL


至此,如果尚未在目标计算机上创建文件夹,请执行此操作。我方便地创建了一个名为“ apps”的文件夹。
现在,让我们一次执行所有文件的难以捉摸的递归ADB PULL:
-确保您已退出ADB会话,因为处于
SU模式下,我们需要退出两次:

'root @ m1:/ sdcard / data#exit''shell @ m1:/ $ exit'


在普通的shell会话中运行“ adb pull”,就不必
使用“ -a”选项,我个人使用它来保持
文件。 -运行命令:

'AtomicusZro $ adb pull -a / sdcard / data / apps /'

您应该看到类似以下内容:

'[69%] /sdcard/data/com.google.android.gms-1/base.apk:74%'

完成后:

'/ sdcard / data /:拉出296个文件。 5.1 MB / s(在221.352s中为1193942288字节)'

瞧!

边注:
。不知道是否重要,但我使用的是Mac。
。如果在ADB会话中,您也无法获得“ su特权”:
第一个:您可能需要授予ADB根访问权限
第二个:“超级用户”,它安装不正确
。仔细检查您的命令

祝您好运。-

评论


我不需要为此扎根吗?

–neverMind9
18年6月1日在13:35

#5 楼

在我的android 7.1设备上工作。
使其正常工作的步骤:


通过leroy在https://nofile.io/f/86605d8qsJs/adbd-Insecure-v2.00下载adb​​d不安全版本。 apk

安装到手机中。
在adb目录中运行adb shell
键入“ su”,以便您可以获取“#”
键入“ setenforce 0”
启用不安全的adbd。 USB调试关闭
从开发人员选项中打开和关闭USB调试
再次关闭不安全的adbd。

您现在可以将adb拉入您的计算机。

希望这会有所帮助


Haris