Подтвердить что ты не робот

Возможно ли выполнить команды adb через приложение для Android?

Можно ли сказать, могут ли команды adb выполняться через мое приложение для Android. Если можно выполнить, как это можно реализовать?

Любая помощь? Оценка...

4b9b3361

Ответ 1

Вы можете сделать это с помощью этого:

Process process = Runtime.getRuntime().exec("your command");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));

Не забудьте окружить его инструкцией try и catch.

Edit:

@Phix прав, ProcessBuilder лучше использовать.

Ответ 2

Обычные приложения для Android имеют разные привилегии для процессов, запущенных через adb, например, процессы, запущенные с помощью adb, разрешены для захвата экрана, тогда как обычных приложений нет. Таким образом, вы можете выполнять команды из своего приложения через Runtime.getRuntime(). Exec, но у них не будет таких же привилегий, как если бы вы выполнили из оболочки adb.

Ответ 3

adb shell, вызванный в Runtime.getRuntime(). exec не работает под пользователем оболочки. Он предоставляет оболочку, но с тем же владельцем процесса (например, u0_a44). Это причина, по которой вся команда не работает.