前言

在开发Android过程中,经常需要从设备中取回文件,而Android为了安全考虑,其中的/data/data路径下的文件通常是不可见的。本文将介绍如何修改该文件夹的权限并取回数据,以及其中可能遇到的问题。


第一步:确保手机已经Root

这一步非常关键,也没有什么技术含量,现成的Root工具很多,直接拿来用就好了(什么,你要自己写?大牛慢走,不送)。这里要注意,选用Root工具的时候一定要谨慎,尽量选用信誉好的软件,避免给自己的设备带来危险。


第二步:修改文件夹权限

设备Root之后,连接上电脑,使用adb shell命令进入命令行,然后使用chmod 修改权限,见下图:

wKioL1OClMmid4o8AABpWOKX1Sg355.jpg

如果没有Root就进入这一步,则会报错“su命令不存在”,如下图:

wKiom1OClReAC9FkAABY4_Wxz6Q899.jpg

遇到这种情况,直接换个工具Root就好了。


第三步:取回文件

如果第二步成功,现在可以进入/data/data取回文件,使用命令adb pull <android-dir> <pc-dir>。这里,pc-dir可以指定绝对路径,也可以是相对路径。如果在win7系统cmd下使用相对路径,得到的文件将被保存在你进入adb的路径下,即cmd的工作路径。如果是直接运行adb,则在adb.exe的路径下。不过我个人还是比较喜欢使用绝对路径。

wKiom1OCn6iw5vrtAABqA1UgOlQ962.jpg

wKioL1OCn3zSSI6UAAB6yJ0sRt0731.jpg

如果在执行的时候报错“failed to copy XXX: Permission denied”,那说明目标的权限没有设置好,可以对目标继续chmod甚至逐级chmod,直到在shell下使用普通用户就能看到权限为777,再退出shell,即可进行pull。

如果使用Eclipse,则第三步可以很简单:打开File Explorer,找到目标文件再点击pull即可。

wKioL1OCoGqxDU3xAALQMRfv1gs633.jpg

本文就到这里。