如何从Android应用程序运行.sh文件?

时间:2017-10-01 07:24:35

标签: android adb adb-shell

我的设备已植根,现在我想从我的Android应用程序运行.sh文件。我尝试使用以下代码,但它没有提供预期的输出:

Process process = Runtime.getRuntime().exec("sh /data/local/tmp/xyz.sh");

如果我从adb运行.sh文件,它对我来说很好。

2 个答案:

答案 0 :(得分:0)

Process process = Runtime.getRuntime().exec("sh /data/local/tmp/xyz.sh");
Scanner stdout = new Scanner(process.getInputStream());
while (stdout.hasNextLine()) {
    Log.i("stdout", stdout.nextLine());
}
stdout.close();
Scanner stderr = new Scanner(process.getErrorStream());
while (stderr.hasNextLine()) {
    Log.e("stderr", stderr.nextLine());
}
stderr.close();

答案 1 :(得分:0)

请尝试以下代码。

     try{
        Process root = Runtime.getRuntime().exec("su");
        DataOutputStream os = new DataOutputStream(root.getOutputStream());
        os.writeBytes("sh /system/bin/xyz.sh \n");
        os.flush();
     }
    catch (IOException e) {
        e.printStackTrace();
    }
    catch (SecurityException se){
        se.printStackTrace();
    }

这个片段对我有用,我希望这可以帮到你。