Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件夹从Android应用复制到本地Windows目录_Android_Shell_Copy_Adb - Fatal编程技术网

将文件夹从Android应用复制到本地Windows目录

将文件夹从Android应用复制到本地Windows目录,android,shell,copy,adb,Android,Shell,Copy,Adb,我正在尝试使用Android Adb命令提示符将应用程序容器中的文件夹复制到本地Windows文件夹。该设备正在运行Android 5.1.1,并且没有根目录 adb pull或cp不工作。如何复制文件夹 以下方法不起作用: 方法1 adb shell adb pull /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs C:/temp/test 错误:找不到设备 在外壳内部,您看不到要执行的操作adb pull。看 方法2

我正在尝试使用Android Adb命令提示符将应用程序容器中的文件夹复制到本地Windows文件夹。该设备正在运行Android 5.1.1,并且没有根目录

adb pull
cp
不工作。如何复制文件夹

以下方法不起作用:

方法1

adb shell
adb pull /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs C:/temp/test
错误:找不到设备

在外壳内部,您看不到要执行的操作
adb pull
。看

方法2

DDMS无法访问
数据
文件夹

方法3

adb shell
run-as DroidSample.DroidSample
cp /files/MetroLog/MetroLogs/ C:/temp/test
cp:/files/MetroLog/MetroLogs/:无此类文件或目录

方法4

adb shell
run-as DroidSample.DroidSample
cp /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs/ C:/temp/test
cp:/data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs是一个目录(未复制)

也不起作用

方法5

adb shell
run-as DroidSample.DroidSample
chmod 777 /files/MetroLog/MetroLogs
exit
exit
adb pull /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs C:/temp/test
adb shell run-as DroidSample.DroidSample
chmod 700 /files/MetroLog/Metrologs
远程对象“/data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs”不存在

所以也不起作用

方法6

adb shell
mkdir /sdcard/tmp
cp /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs /sdcard/tmp
cp:/data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs:权限被拒绝

也不起作用

方法7

这是唯一一件能起一半作用的事

adb exec-out run-as DroidSample.DroidSample cat "files/MetroLog/MetroLogs/Log - 20160509.log" > C:/temp/test/test.log
但这里我没有原始文件,我还必须知道确切的文件名。除此之外,我发现我没有换行符,我必须对每个文件都这样做。这不是我想要的


所以我没什么主意了。如何访问内部存储的文件并将其复制?

您正试图获得对实际android设备上的/数据分区的读取权限。如果没有根用户访问权限,即使应用程序文件夹是你的,也不可能做到这一点。因为读取/数据分区的权限未授予,也无法授予,除非您使用的是仿真器。在emulator上(默认情况下,emulator具有开发人员的管理员权限),您可以访问数据分区进行读写。在实际设备上,您不能。不与亚洲开发银行合作,不与DDMS合作


所以基本上说,任何需要访问/data下的那些文件的东西都是行不通的。无论您使用cp命令还是pull命令。当内核读取以/data/…开头的路径开始时。。。上面写着:哎呀,不行。

您正在尝试访问android设备的/data文件夹,该文件夹在无根设备中无法访问

你几乎解决了这个问题。由于这种类型的存储是安全的,您需要执行另外一个步骤。您需要将文件从安全位置复制到设备的SD卡。然后,您可以通过usb或android pull将其复制到任何地方。下面是我成功执行的命令序列

adb shell
run-as DroidSample.DroidSample
cd shared_prefs
cp  DroidSample.DroidSample_preferences.xml /sdcard/DroidSample.DroidSample_preferences.xml
exit
exit
adb pull /sdcard/DroidSample.DroidSample_preferences.xml C:/test/
就这样


我真的很感激你发表问题的方式。祝你好运。

试着看看这个,这里有一个答案对我很有用。问题是如何从
数据
文件夹中为无根设备访问文件。我能够以com.packagename cat source>destination的身份从
data
文件夹中访问文件。为什么这样做?它在emulator上工作。不在实际设备上。它永远无法在实际设备上工作。您和adb都没有/数据分区的读取权限。查看我的答案。在设备上再次尝试,结果正常。也许是因为调试版本?很可能是,但我对此表示怀疑。就你最初的问题而言,你列出的所有方法都不起作用。无法授予您对数据分区的访问权限。@测试是的,这是因为调试Build。这应该标记为answer。。也适用于非根目录手机(但适用于应用程序的调试版本)。不适用于live app