我想使用su来启动命令并读取其输出。 我试过这段代码:
String line;
Process cat=Runtime.getRuntime().exec("su -c \"cat /etc/media_codecs.xml\"");
BufferedReader catStream= new BufferedReader(new InputStreamReader(cat.getInputStream()));
BufferedReader catSerr= new BufferedReader(new InputStreamReader(cat.getErrorStream()));
cat.waitFor();
while((line=catSerr.readLine())!=null)
{
System.out.println(line);
}
while((line=catStream.readLine())!=null)
{
System.out.println(line);
}
如果我在adb shell中手动插入此命令,它可以工作,但是使用此代码,手机会要求我获得root权限,如果我接受,我只能读取此字符串给stderr:
tmp-mksh:cat /etc/media_codecs.xml:not found
并没有stdout输出。为什么呢?