如何在Android应用程序中运行shell脚本?

时间:2010-09-27 20:39:42

标签: android

我正在尝试为运行一系列shell命令的root用户编写一个Android应用程序,或者如果更好的话就编写一个shell脚本,并显示输出...任何人都能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:8)

此代码段需要root访问权限,但会将给定的String作为shell命令执行

void execCommandLine(String command)
{
    Runtime runtime = Runtime.getRuntime();
    Process proc = null;
    OutputStreamWriter osw = null;

    try
    {
        proc = runtime.exec("su");
        osw = new OutputStreamWriter(proc.getOutputStream());
        osw.write(command);
        osw.flush();
        osw.close();
    }
    catch (IOException ex)
    {
        Log.e("execCommandLine()", "Command resulted in an IO Exception: " + command);
        return;
    }
    finally
    {
        if (osw != null)
        {
            try
            {
                osw.close();
            }
            catch (IOException e){}
        }
    }

    try 
    {
        proc.waitFor();
    }
    catch (InterruptedException e){}

    if (proc.exitValue() != 0)
    {
        Log.e("execCommandLine()", "Command returned error: " + command + "\n  Exit code: " + proc.exitValue());
    }
}