Android:如何在app中执行shell命令'rm'

时间:2013-09-09 10:21:23

标签: android shell

我可以轻松地使用adb shell中的'rm / data / system / [file]',但是从应用程序中这不起作用。

命令'du','ls','echo'在代码中工作正常,但命令'rm'不起作用。它甚至没有在SD卡上工作。

我尝试过的代码:

1)

String[] cmd = { "/system/bin/sh", "-c", "rm -r /sdcard/1" }; 
    try {

        Process process = Runtime.getRuntime().exec(cmd);//execute command

        //read the output of command
        InputStreamReader reader = new InputStreamReader(process.getInputStream()); 
.....

2)与(1)相同的代码,用“su”代替“/ system / bin / sh”

3)

process=Runtime.getRuntime().exec("/system/bin/sh");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("rm -r /sdcard/1\n");
os.flush();
os.writeBytes("exit\n");
os.flush();
process.waitFor();

4)与(3)相同的代码,用'su'代替'/ system / bin / sh'

2 个答案:

答案 0 :(得分:0)

在开发人员模式下进入启动设置,使用.anr文件调试,然后使用dex文件编译inertpreteor以开始启动rm命令

答案 1 :(得分:0)

您可以删除应用字段结构中的文件

我的意思是:/data/data/com.mycompany.myapp

[由于需要sudo,我不确定您是否可以删除其他位置的文件]

所以,就去喜欢:

String cmd="rm -f /data/data/com.mycompany.myapp/myfile.txt";
try
  {
  Runtime.getRuntime().exec(new String[]{"sh","-c",cmd});
  }
  catch(Exception e){}
  • -f 强制删除 [可选]
  • 例外 {} 由您决定