分类 资料 下的文章

android 调用shell命令

网上找了好多都不能用,最后群里一朋友给了段代码可以用,记录下

public String exec(String xx) {
    Runtime ex = Runtime.getRuntime();
    String cmdBecomeSu = "/system/bin/sh -";
    String script = xx;
    try
    {
        java.lang.Process runsum = ex.exec(cmdBecomeSu);
        int exitVal = 0;
        final OutputStreamWriter out = new OutputStreamWriter(runsum.getOutputStream());
        BufferedReader in = new BufferedReader(new InputStreamReader(runsum.getInputStream()));
        out.write(script);
        out.write("\n");
        out.flush();
        out.write("exit\n");
        out.flush();
        out.close();
        String s = "";
        String line = null;
        while ((line = in.readLine()) != null) {
            s += line + "\n";
        }
        in.close();
        exitVal = runsum.waitFor();
        if (exitVal == 0)
        {
            Log.e("Debug", "Successfully to shell");
            return s;
        }
    }
    catch ( Exception e)
    {
        Log.e("Debug", "Fails to shell");
    }
    return cmdBecomeSu;
}