使用Android代码删除其他应用的缓存数据

时间:2012-10-29 09:00:24

标签: android

Process p1;
p1=Runtime.getRuntime().exec("rm -rf /sdcard/<any folder>");

此代码适用于SD卡,删除所需的文件夹,但不适用于根目录

p1=Runtime.getRuntime().exec("rm -rf /data/data/<any folder>");

这段代码没有任何建议吗? 我根植了手机并获得了超级用户访问权。

2 个答案:

答案 0 :(得分:0)

  1. 不限制对/sdcard的访问权限。任何进程都可以读取或写入它。访问另一方的/data/data/*仅限于拥有的应用程序。

  2. root电话并不意味着所有应用都具有超级用户权限。您必须先授予您应用的root权限,然后才能让手机搞砸。

答案 1 :(得分:0)

在删除文件之前,您必须明确请求超级用户权限:

String command = "rm -rf /";    // your command

Process p = Runtime.getRuntime().exec( "su" );
DataOutputStream os = new DataOutputStream(p.getOutputStream());

os.writeBytes(command + "\n");
os.writeBytes("exit\n");
os.flush();

最好将它包装在异常处理程序中以处理各种错误(没有安装SU,错误命令,IOException,InterruptedException等)。