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

问题描述 投票:0回答:4

我正在尝试使用

Android Adb Command Prompt
将应用程序容器内的文件夹复制到本地 Windows 文件夹。该设备运行的是 Android 5.1.1 并且未 root

adb pull
cp
不起作用。如何复制文件夹?

以下方法不起作用:

方法1

adb shell
adb pull /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs C:/temp/test

错误:找不到设备

在外壳内你看不到做什么

adb pull
。请参阅此处

方法2

DDMS 无法访问

data
文件夹。

方法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 shell copy adb
4个回答
4
投票

你几乎已经解决了问题。由于此类存储是安全的,因此您需要执行一个额外步骤。您需要将文件从安全位置复制到设备的 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/

就是这样。

我真的很感谢你提出问题的方式。祝你好运。


0
投票

您正在尝试获得对实际 Android 设备上 /data 分区的读取权限。即使应用程序文件夹是您的,如果没有 root 访问权限,这种事情也是不可能的。因为除非您使用模拟器,否则不会授予并且无法授予读取 /data 分区的权限。在模拟器上,默认开发者具有管理员权限,可以访问数据分区进行读写。在实际设备上你不能。不能使用 adb,不能使用 DDMS。

所以基本上来说,任何需要访问 /data 下这些文件的东西都行不通。无论你起诉cp命令还是pull命令。当你的内核读取到以 /data/... 开头的路径的开头时,它会说:哎呀,没有办法。


0
投票

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


0
投票

这是我2024年的建议。

使用 Android Studio Giraffe | 2022年3月1日补丁1, 您可以在设备管理器中访问内部数据目录。

在/data/data/[你的包名]中找到你要查找的文件,然后你就可以将其保存在你的电脑本地了。

Screenshot of Android Studio Giraffe 2022.3.1 Patch 1

© www.soinside.com 2019 - 2024. All rights reserved.