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