我看到了app (我无意做广告)可以备份存储在根文件夹中的其他应用程序文件。我很好奇无需root它是如何工作的。
我尝试过几种方法,例如
File file = new File(PATH);
并使用adb pull和push
p = Runtime.getRuntime().exec("adb pull PATH");
但他们没有成功。
问题:他们是如何完成该应用程序的?是因为愤怒的小鸟提供了一些特殊的权限吗?
最佳答案
您可以在某些设备上使用 run-as
将命令作为特定包执行。 Google 已在 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
权限。
关于android - 无需 root 即可读写根文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18693283/