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

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

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

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

public static final String FACTORY_TEST

Поскольку: Уровень API 1

Запуск в качестве теста производителя приложение, работающее как пользователь root. Доступно только тогда, когда устройство работает в тестовом режиме производителя. Постоянное значение: "Android.permission.FACTORY_TEST"

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Опция -c

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

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

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

Ответ 3

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