Android Shell Run doShellCommand(String[] cmds, StringBuilder log, boolean runAsRoot, boolean waitFor)

Here you can find the source of doShellCommand(String[] cmds, StringBuilder log, boolean runAsRoot, boolean waitFor)

Description

do Shell Command

License

Open Source License

Declaration

public static int doShellCommand(String[] cmds, StringBuilder log,
            boolean runAsRoot, boolean waitFor) throws Exception 

Method Source Code

//package com.java2s;
/* See LICENSE for licensing information */

import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
    public static int doShellCommand(String[] cmds, StringBuilder log,
            boolean runAsRoot, boolean waitFor) throws Exception {

        Process proc = null;/*from w  w w.jav a  2 s. c  o  m*/
        int exitCode = -1;

        if (runAsRoot)
            proc = Runtime.getRuntime().exec("su");
        else
            proc = Runtime.getRuntime().exec("sh");

        OutputStreamWriter out = new OutputStreamWriter(
                proc.getOutputStream());

        for (int i = 0; i < cmds.length; i++) {
            // TorService.logMessage("executing shell cmd: " + cmds[i] +
            // "; runAsRoot=" + runAsRoot + ";waitFor=" + waitFor);

            out.write(cmds[i]);
            out.write("\n");
        }

        out.flush();
        out.write("exit\n");
        out.flush();

        if (waitFor) {

            final char buf[] = new char[10];

            // Consume the "stdout"
            InputStreamReader reader = new InputStreamReader(
                    proc.getInputStream());
            int read = 0;
            while ((read = reader.read(buf)) != -1) {
                if (log != null)
                    log.append(buf, 0, read);
            }

            // Consume the "stderr"
            reader = new InputStreamReader(proc.getErrorStream());
            read = 0;
            while ((read = reader.read(buf)) != -1) {
                if (log != null)
                    log.append(buf, 0, read);
            }

            exitCode = proc.waitFor();

        }

        return exitCode;

    }
}

Related

  1. executeCommand(String command)
  2. normalShell(String normalCommand)
  3. runAsRoot(String[] commands)
  4. runSimpleCommand(String command, String directory)
  5. findProcessId(String command)
  6. findProcessIdWithPidOf(String command)
  7. findProcessIdWithPS(String command)
  8. execRootCmd(String cmd)