Как запросить root-доступ в Android?

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


person Michell Bak    schedule 03.09.2011    source источник
comment
Вы ориентируетесь на нативную платформу или пытаетесь сделать это на Java?   -  person Keith Layne    schedule 04.09.2011
comment
Я пытаюсь сделать это на Java :-)   -  person Michell Bak    schedule 04.09.2011


Ответы (2)


Просто выполните команду su и внутри этой Process у вас будут привилегии суперпользователя:

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

Полный пример см. в этой записи в блоге.

person dacwe    schedule 03.09.2011
comment
Итак... Я делаю это до получения информации о каталоге, например о папках и т. д.? - person Michell Bak; 04.09.2011
comment
Спасибо, попробую! :-) - person Michell Bak; 04.09.2011
comment
Значит, у рутированных телефонов нет пароля root? - person Keith Layne; 04.09.2011
comment
@keith Lane: когда вы запускаете su, запускается приложение Superuser, которое может удовлетворить запрос. - person dacwe; 04.09.2011
comment
-1 Этот ответ вводит в заблуждение. Опубликованный код абсолютно ничего не даст, так как только процесс, запущенный su, будет фактически работать от имени пользователя root. Само приложение для Android не переключается на запуск от имени пользователя root. Приведенный здесь код только запускает корневую оболочку, которая немедленно завершает работу из-за отсутствия какой-либо работы. - person Chris Stratton; 01.06.2013
comment
@ChrisStratton: я четко заявляю, что в этом процессе у вас будут привилегии root. Как это вводит в заблуждение? - person dacwe; 01.06.2013
comment
В рамках какого процесса? Который умирает, ничего не делая? Как кто-то должен понять это из этого ответа? Вместо этого они думают, что это означает вызывающий процесс. Люди цитируют этот ответ по ошибке в другом месте. - person Chris Stratton; 01.06.2013
comment
Крис Стрэттон прав, этот ответ переоценен и не совсем отвечает на вопрос. - person xmen; 09.06.2013
comment
Я получаю Вызвано: java.io.IOException: Невозможно запустить программу su: ошибка = 13, Отказано в доступе. Как я могу настроить свой эмулятор, чтобы получить это разрешение? - person sadat; 03.04.2020

ПРЕДУПРЕЖДЕНИЕ

ЭТОТ МЕТОД БОЛЬШЕ НЕ ДЕЙСТВИТЕЛЬЕН Начиная с версии 5.0

Большинство корневых устройств используют Superuser или SuperSU. Если вы хотите использовать root-права в своем приложении, вы должны запросить разрешение суперпользователя в манифесте приложения.

<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />

Для получения более подробной информации вы должны проверить HOW-To SU от Chainfire (автор SuperSU) и изучить пример исходного кода libsuperuser(https://github.com/Chainfire/libsuperuser)

person liuyix    schedule 08.08.2013
comment
"Due to changes in Android 5.0 Lollipop, this permission has been deprecated and is completely ignored from SuperSU v2.30 onwards" – Как использовать SU - person Ashish Tanna; 11.03.2015