读取和写入没有root的根文件夹

时间:2013-09-09 07:22:51

标签: android file-io

我看过一个app(我不是故意做广告)可以备份存储在根文件夹中的其他应用程序文件。我很好奇它是如何工作的没有root

我尝试了几种方法,比如

File file = new File(PATH);

并使用adb pull and push

p = Runtime.getRuntime().exec("adb pull PATH");

但他们没有成功。

问题:他们是如何完成应用的?是因为angrybirds提供了一些特殊权限吗?

2 个答案:

答案 0 :(得分:3)

您可以在某些设备上使用run-as来执行特定包的命令。谷歌已经在Jelly Bean上修复了这个问题,因此它不再适用:

adb shell
run-as app.package.name \
cp /data/data/package.name/file.txt /sdcard/
exit
adb pull /sdcard/file.txt ~/

Here是一篇很好的文章,解释了没有root权限的Android中的文件访问权限,包括上述脚本的单行内容。

详细介绍了如何使用新的backup命令:

backup -f ~/data.ab -noapk app.package.name

如何提取生成的.ab文件的内容:

dd if=data.ab bs=1 skip=24 | openssl zlib -d | tar -xvf -

您很可能需要android.permission.BACKUP权限。

答案 1 :(得分:0)

对于您的应用程序必须具有管理员权限,您必须绑定设备管理员

android:permission="android.permission.BIND_DEVICE_ADMIN"