有什么方法可以访问/data/data中的文件并将它们复制到存储卡中?我没有root访问权限。

#1 楼

没有root访问权,您有2个选择。这两个选项(可能)都允许您访问特定应用的文件,例如/data/data/com.app.packagename文件夹。如果应用程序是可调试的,则可以在adb shell中使用run-as命令(有关什么是adb以及如何安装的更多信息,请参见此处)

adb shell
run-as com.your.packagename` 
cp /data/data/com.app.packagename/



如果应用程序不可调试,则可以使用Android的备份功能。

adb backup -noapk com.app.packagename


现在将提示您“解锁设备并确认备份操作”。最好不要提供密码,否则将更难以读取数据。只需单击“备份我的数据”。您计算机上生成的“ backup.ab”文件包含android备份格式的所有应用数据。基本上,这是一个压缩的tar文件。本页说明如何使用OpenSSL的zlib命令解压缩它。
您可以使用adb restore backup.db命令还原备份。



评论


这是否也适用于具有android:allowbackup =“ false”的应用程序?

–键六
2015年1月9日在9:40

@Drejon不,我认为在这种情况下它不会起作用(但是我尚未测试过,所以我不确定100%)。

– THelper
2015年1月9日在10:54

我确定某些情况下不允许备份。创建所有应用程序的备份时,他们只是不备份任何内容。 AFAIK,某些应用程序可能会提供文件的受限子集,甚至可能提供自定义内容,因此请不要将其始终视为/ data / data中目录的1:1。顺便说一句,BlackBerry强迫我使用一些密码,但是可以解密(如果您有密码)。我想我已经使用了sourceforge.net/projects/adbextractor。

– v6ak
18年3月13日在20:56

我设法用adb backup -noapk com.app.packagename来获取它。您将获取backup.ab,那么您将需要转换为tar(使用7zip打开它)。您可以使用sourceforge.net/projects/adbextractor进行转换-里面的罐子叫abe.jar。然后,您可以运行命令java -jar abe.jar解压backup.ab backup.tar

–伊戈尔·武科维奇(IgorVuković)
19 Jun 10'在8:01



如果adb备份产生一个很小的文件(41-47字节),则可能是APK标记为allowBackup = 0。运行aapt dump xmltree what.apk AndroidManifest.xml | grep allowBackup。

–乔纳森·莱因哈特(Jonathon Reinhart)
20年5月4日,0:10

#2 楼

某些轻量级工具可以备份Android应用程序的数据(.db文件)或通过USB调试直接访问,即使有些电话未启用UMS