0

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

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

如果我.sh从 adb 运行文件,它对我来说工作正常。

4

2 回答 2

1

试试下面的代码。

     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();
    }

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

于 2017-10-01T08:51:22.190 回答
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();
于 2017-10-01T07:28:24.653 回答