Как я могу получить права root через Android SDK?

Я изучаю Android программирование, и я хочу сделать приложение, которое должно работать как root. Логично было бы добавить корневое разрешение в манифест Android.

Я видел этой ссылке в документации, и особенно отметил на FACTORY_TEST разрешение:

public static final String FACTORY_TEST

Since: API Level 1

выполнить, как производителем тест приложение, запущенное от имени пользователя root. Только доступно, когда устройство запуск в тестовом режиме производителя. постоянное значение: "андроид.разрешение.FACTORY_TEST"

Это лучший способ?

Если невозможно использовать SDK, как я могу заставить работать "корневое" приложение?

3 ответов


что вам нужно сделать, это что-то вроде:

Process root = Runtime.getRuntime().exec("su");

Это заставляет суперпользователя показывать, что позволяет либо разрешить, либо заблокировать его от корневого доступа. Этот подход может не работать, если пользователь не коренится. здесь это способ проверить его.


сначала позволяет нам получить основы правильно. Android запуск ядра Linux под ним. Теперь, если вам нужно запустить свой процесс на нем с привилегиями суперпользователя (запустите его как root), единственный способ выполнить ваш процесс-через command line потому что это единственный способ напрямую взаимодействовать с ядром. Также вам нужно использовать su перед запуском любой команды. Также как Крис упомянул в своем комментарии на 1-й ответ!--8-->

Process process = Runtime.getRuntime().exec("su");

почти ничего не добьется. Он просто попросит супер использовать привилегию с помощью диалога. Что вы можете сделать, это вместо того, чтобы просто исполнителем su вы можете выполнить свой процесс с su следующим образом

Process process = Runtime.getRuntime().exec(new String[] { "su", "-c", yourCommand});

опция-c

среди наиболее часто используемых вариантов su является-c, который говорит su to execute the command that directly follows it on the same line. Такая команда выполняется как новый пользователь, а затем окно терминала или консоль, из которой был запущен su, немедленно возвращается в учетную запись бывшего пользователя после завершения выполнения команды или после того, как любая программа, которую он запустил, была закрыта.(более подробная информация)

Альтернативный Вариант

альтернатива вышеуказанному методу еще один способ, который может работать, - использовать командную строку для копирования приложения в . Затем ваше приложение будет работать автоматически с правами root (такими же, как системные приложения)(подробнее о разделах Android)


SDK не предлагает способ запуска приложения от имени root.