我的应用程序是一个系统应用程序。我需要的是为所有其他应用程序执行干净的数据。据我所知,所有应用程序的数据存储在/ data / data中。有没有办法以编程方式删除/ data / data中的所有文件夹/文件?
我知道如何从adb中做到这一点:
adb shell
# rm -r /data/data
这就是我在代码中尝试这样做的方式:
Process process;
try {
process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("mount -o remount,rw -t rfs /dev/stl5 /data; \n");
os.writeBytes("rm -r /data/data; \n");
os.writeBytes("mount -o remount,ro -t rfs /dev/stl5 /data; \n");
return;
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:3)
根据定义,您的应用不能成为系统应用,除非您已根植手机。对于非root电话,您无权访问其他应用程序的数据,除非他们将数据写入公共区域并使其成为世界可写的。即便如此,您的应用也应该避免接触任何不属于您的应用。
如果您在adb中执行此操作会发生什么?您可以使其他应用停止正常工作。
然而,你问的编程相当于“如果我把手指插在灯座上会发生什么?”我们中间明智的做法是得出结论,我们没有义务回答你,因为你实际上有机会这样做。
答案 1 :(得分:2)
我不知道这是否有效,但即使这样,你的程序肯定需要root(su / superuser)才能搞乱那个位置。