Как запустить скрипт bash от активности Android - PullRequest
2 голосов
/ 23 ноября 2011

Я новый разработчик приложений для Android
Я хочу знать, как запустить скрипт bash из моей активности на Android

Я сделал это, что нашел здесь

public void RunAsRoot(String[] cmds) {
    Process p = Runtime.getRuntime().exec("su");
    DataOutputStream os = new DataOutputStream(p.getOutputStream());            
    for (String tmpCmd : cmds) {
       os.writeBytes(tmpCmd+"\n");
    }           
    os.writeBytes("exit\n");  
    os.flush();
}

но теперь я получил много ошибок, подобных этой:

http://i.stack.imgur.com/4N4KC.png

1 Ответ

2 голосов
/ 17 декабря 2011

Я считаю, что вам просто нужно окружить их блоком try / catch , это правило Java, попробуйте этот код:

public void RunAsRoot(String[] cmds) {
    Process p = null;
    try {
        p = Runtime.getRuntime().exec("su");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    DataOutputStream os = new DataOutputStream(p.getOutputStream());            
    for (String tmpCmd : cmds) {
       try {
        os.writeBytes(tmpCmd+"\n");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    }           
    try {
         os.writeBytes("exit\n");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }  
    try {
        os.flush();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Во-вторых, вручную выполните su, затем идентификатор команды, чтобы увидеть, может ли он стать пользователем root, на всякий случай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...