Это немного поздно, но здесь есть несколько способов сделать это.
1)
Вместо использования su в качестве отправной точки используйте /system/bin/sh.
и после звонка
rt.exec("/system/bin/sh");
Вы должны удерживать Выходной поток и Входной поток, чтобы давать дальнейшие команды.
После того, как вы выполнили команду, вы должны повторить магическую строку типа "--- EOF ---" и прекратить чтение ввода после чтения этой строки. Если у вас этого нет, вы получите функцию чтения из блокировки InputStream.
2) Передайте данные в собственный процесс, который вы написали, который просто перемещает данные в ваше приложение Android с завершающим символом или строкой, прикрепленной к концу.
Я не совсем уверен, как это сделать, но по сути он такой же, как и предыдущий метод, который опирается на ваше нативное приложение в качестве посредника.
Это приблизит вас к функционирующему «Эмулятору терминала».
3) Если вы не хотите настоящего Ternimal Emulator, то нет другого способа сделать это, кроме как: использовать собственное приложение, которое открывает соединение с псевдотерминалом.
Вот некоторые основные сведения о том, как открыть pty: ссылка
Terminal Emulator - проект с открытым исходным кодом, использующий эту технику.
Взгляните здесь