如何删除root app / app / files?

时间:2012-11-21 08:58:45

标签: android file root file-handling

我的手机扎根了。我正在尝试做一个非常简单的程序。该程序应从app / app文件夹中删除文件。我怎样才能做到这一点?我是新手,所以示例代码很有价值。

3 个答案:

答案 0 :(得分:3)

如果您的手机是root用户,则可以通过su以root身份发出命令 - 前提是su二进制文件存在且位于PATH - 因为Android是Linux的变体。只需通过Runtime.exec()执行删除命令,超级用户应该处理权限提示。

以下是我使用from this question的一个简单示例:

process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(command + "\n");
os.writeBytes("exit\n");
os.flush();
process.waitFor();

答案 1 :(得分:1)

您可以使用以下方法以递归方式删除文件夹中的所有文件。

private void DeleteRecursive(File fileOrDirectory) {
    if (fileOrDirectory.isDirectory())
        for (File child : fileOrDirectory.listFiles())
        {
            child.delete();
            DeleteRecursive(child);
        }

    fileOrDirectory.delete();
}

答案 2 :(得分:1)

在他的github上,Chainfire提供sample implementationShell类,您可以使用该类以root身份执行rm命令。 rm命令是删除文件(和文件夹)命令的Linux变体。

代码段:

if(Shell.SU.available()){
   Shell.SU.run("rm /data/app/app.folder.here/fileToDelete.xml"); //Delete command
else{
   System.out.println("su not found");

或者如果您某些 su二进制文件可用,您只需运行删除命令(注释行)并跳过检查

来源:How-To SU