android - 无需 root 即可读写根文件夹

标签 android file-io

我看到了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/

相关文章:

java - 无法在 fragment 中声明按钮

java - TableLayout 中表格行的索引

java - 将 TextView 添加到 LinearLayout 不起作用

java - 当应用程序意外退出时处理文件锁定

python - 将随机数写入Python文件并使用换行符连接

java - 内部 JAR 使用文件系统上的文件

android - AsyncTask 从很多地方调用了很多

ruby - 如何在 Ruby 中逐行读取数据?

asp.net - 最大文件扩展长度

android - 无法创建 nomedia 文件