2

我见过一个应用程序(我不是要宣传),它可以备份存储在根文件夹中的其他应用程序文件。我很好奇它是如何在没有 root的情况下工作的。

我尝试了几种方法,例如

File file = new File(PATH);

并使用 adb pull 和 push

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

但他们并不成功。

问题:他们是如何完成应用程序的?是因为愤怒的小鸟提供了一些特殊的权限吗?

4

2 回答 2

3

您可以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 ~/

是一篇很好的文章,解释了没有 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许可。

于 2013-09-09T07:27:44.473 回答
0

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

android:permission="android.permission.BIND_DEVICE_ADMIN"
于 2013-09-09T07:30:39.690 回答