我的设备已经植根,现在我想.sh
从我的 android 应用程序运行一个文件。我尝试使用以下代码,但它没有提供预期的输出:
Process process = Runtime.getRuntime().exec("sh /data/local/tmp/xyz.sh");
如果我.sh
从 adb 运行文件,它对我来说工作正常。
试试下面的代码。
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();
}
这个片段对我有用,我希望这可以帮助你。
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();