android - 需要在 Runtime.getRunTime().exec 上执行多个命令

标签 android runtime.exec

public void uninstallApp(String packageName){
       try {

                String[] command = new String[4];
                command[0] = "su";
                command[1] = "mount -o remount,rw /system";
                command[2] = "rm " + packageName;
                command[3] = "reboot";
                Runtime run = Runtime.getRuntime();
                run.exec(command);

                Log.d("DELETED", packageName);

    } catch (Exception e) {
        // TODO Auto-generated catch block
        Log.e("ERROR ON DELETE", e.getMessage());
    }
}

这是我的代码。此方法接收 apk 的路径,我需要做的是执行这些命令但不丢失权限。我的意思是,如果我在一个进程中执行“su”,然后在另一个进程中执行“mount”。 “mount”将没有“su”访问权限。所以我需要在一个进程中执行所有这些命令。那是行不通的。 :\

最佳答案

找到解决方案

StringBuilder cmdReturn = new StringBuilder();

try {
    ProcessBuilder processBuilder = new ProcessBuilder("su","-c mount -o remount,rw /system ; rm " + packageName + " ; reboot");
    Process process = processBuilder.start();

    InputStream inputStream = process.getInputStream();
    int c;
    while ((c = inputStream.read()) != -1) {
        cmdReturn.append((char) c);
    }

    Log.d("CMD RESPONSE", cmdReturn.toString());

} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

关于android - 需要在 Runtime.getRunTime().exec 上执行多个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29308980/

相关文章:

java - 模拟 Runtime.getRuntime()?

java - 使用 Runtime.getRuntime().exec() 重定向不起作用

java - 不幸的是 MyApp 已停止。我该如何解决这个问题?

android - Google hangouts v2.3 增加语音通话功能

android - 多语言支持在 android 中使用 sharedpreference 不起作用

android - 离线 Android 开发指南

java - 错误找不到符号变量 ID

java - ProcessBuilder 的问题

java - 如果命令返回错误,是否可以防止在运行命令后自动关闭 cmd?

java - 从java程序执行运行时cmd