通过Android应用程序执行脚本

时间:2014-08-04 21:12:58

标签: android shell

我有一个Android应用程序,我已经安装为系统应用程序(在/ system / app中),它意味着执行一个shell脚本,传递用户在应用程序中设置的一些变量。 我正在使用的代码是:

public void onClick(View v) {

                        try{
                            Log.i("MyActivity", "trying");
                            Process su = Runtime.getRuntime().exec("su");
                            DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());

                            outputStream.writeBytes("busybox chroot /uoa /bin/createuser.sh " + username.getText().toString() + " " + password.getText().toString());
                            outputStream.flush();

                            outputStream.writeBytes("exit\n");
                            outputStream.flush();
                            su.waitFor();
                        }catch(IOException e){
                            Log.e("MyActivity", e.toString());
                        }catch(InterruptedException e){
                            Log.e("MyActivity", e.toString());
                        }
            } 

但是我收到错误:

  

E / MyActivity(1872):java.io.IOException:写入失败:EPIPE(破碎   管)

脚本没有被执行。我知道脚本有效,因为我可以通过adb shell运行命令。

  

busybox chroot / uoa /bin/createuser.sh testuser test

另外,如何从脚本中获取输出以进行记录?

0 个答案:

没有答案