将文件夹从 Android 应用程序复制到本地 Windows 目录
Copy folder from Android app to local Windows directory
我正在尝试使用 Android Adb Command Prompt
将应用程序容器内的文件夹复制到本地 Windows 文件夹。该设备是 运行 Android 5.1.1 并且 未 root。
adb pull
或 cp
无效。如何复制文件夹?
以下方法无效:
方法一
adb shell
adb pull /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs C:/temp/test
error: device not found
在 shell 内你看不到 adb pull
。参见 here。
方法二
DDMS 无法访问 data
文件夹。
方法 3
adb shell
run-as DroidSample.DroidSample
cp /files/MetroLog/MetroLogs/ C:/temp/test
cp: /files/MetroLog/MetroLogs/: No such file or directory
方法 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 is a directory (not copied).
This 也不起作用。
方法 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
remote object '/data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs' does not exist
所以 this 也不起作用。
方法 6
adb shell
mkdir /sdcard/tmp
cp /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs /sdcard/tmp
cp: /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs: Permission denied
This 也不起作用。
方法 7
唯一半途而废的就是这个
adb exec-out run-as DroidSample.DroidSample cat "files/MetroLog/MetroLogs/Log - 20160509.log" > C:/temp/test/test.log
但是在这里我没有得到原始文件,我也必须知道确切的文件名。此外,我松散了换行符,我必须为每个文件执行此操作。这不是我想要的。
所以我 运行 没主意了。如何访问内部存储的文件并将它们复制过来?
您正在尝试获取对实际 android 设备上的 /data 分区的读取权限。如果没有 root 访问权限,这样的事情是不可能的,即使应用程序文件夹是你的。由于读取 /data 分区的权限未授予且无法授予,除非您使用的是模拟器。在默认情况下具有开发人员管理员权限的模拟器上,您可以访问数据分区进行读写。在实际设备上你不能。不适用于 adb,不适用于 DDMS。
所以基本上来说,任何需要访问 /data 下的那些文件的东西都不会起作用。不管你是 cp 命令还是 pull 命令。当您的内核读取以 /data/... 开头的路径开头时,它会说:哎呀,不行。
您正在尝试访问 android 设备的 /data 文件夹,该文件夹在 unrooted 设备中无法访问。
你的问题差不多解决了。由于这种存储是安全的,您需要执行一个额外的步骤。您需要将文件从安全位置复制到设备的 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/
就是这样。
非常感谢您发布问题的方式。祝你好运。
我正在尝试使用 Android Adb Command Prompt
将应用程序容器内的文件夹复制到本地 Windows 文件夹。该设备是 运行 Android 5.1.1 并且 未 root。
adb pull
或 cp
无效。如何复制文件夹?
以下方法无效:
方法一
adb shell
adb pull /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs C:/temp/test
error: device not found
在 shell 内你看不到 adb pull
。参见 here。
方法二
DDMS 无法访问 data
文件夹。
方法 3
adb shell
run-as DroidSample.DroidSample
cp /files/MetroLog/MetroLogs/ C:/temp/test
cp: /files/MetroLog/MetroLogs/: No such file or directory
方法 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 is a directory (not copied).
This 也不起作用。
方法 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
remote object '/data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs' does not exist
所以 this 也不起作用。
方法 6
adb shell
mkdir /sdcard/tmp
cp /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs /sdcard/tmp
cp: /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs: Permission denied
This 也不起作用。
方法 7
唯一半途而废的就是这个
adb exec-out run-as DroidSample.DroidSample cat "files/MetroLog/MetroLogs/Log - 20160509.log" > C:/temp/test/test.log
但是在这里我没有得到原始文件,我也必须知道确切的文件名。此外,我松散了换行符,我必须为每个文件执行此操作。这不是我想要的。
所以我 运行 没主意了。如何访问内部存储的文件并将它们复制过来?
您正在尝试获取对实际 android 设备上的 /data 分区的读取权限。如果没有 root 访问权限,这样的事情是不可能的,即使应用程序文件夹是你的。由于读取 /data 分区的权限未授予且无法授予,除非您使用的是模拟器。在默认情况下具有开发人员管理员权限的模拟器上,您可以访问数据分区进行读写。在实际设备上你不能。不适用于 adb,不适用于 DDMS。
所以基本上来说,任何需要访问 /data 下的那些文件的东西都不会起作用。不管你是 cp 命令还是 pull 命令。当您的内核读取以 /data/... 开头的路径开头时,它会说:哎呀,不行。
您正在尝试访问 android 设备的 /data 文件夹,该文件夹在 unrooted 设备中无法访问。
你的问题差不多解决了。由于这种存储是安全的,您需要执行一个额外的步骤。您需要将文件从安全位置复制到设备的 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/
就是这样。
非常感谢您发布问题的方式。祝你好运。