На рутированном устройстве Android я попытался запустить команду cat, которая читает журнал ядра, следующим образом:
Process p = Runtime.getRuntime().exec("su");
p = Runtime.getRuntime().exec("/system/bin/cat /proc/kmsg");
Команда su была успешно выполнена, но не cat.Я попытался прочитать вывод команды с помощью getInputStream (), но там ничего не было, как показано ниже:
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((read = err.read(buffer)) > 0)
{ //read error to buffer
catOutput.append(buffer, 0, read);
}
in.close();
Я использовал тот же код с командой ls вместо отображения журнала ядра, он работал просто отлично ипокажи мне результат.
Интересно, какую ошибку я получаю, и хотел увидеть сообщение об ошибке в оболочке при выполнении команды cat.Пробовал p.getErrorStream (), но он не дает мне никакого результата.Может ли кто-нибудь помочь мне с этим?Благодарю.