Как создавать приложения для Android с рут-доступом? - PullRequest
28 голосов
/ 25 марта 2011

Я обнаружил, что существует так много приложений, которым требуется root-доступ.

Как им удалось создать эти приложения?Где они нашли весь ресурс?Есть ли официальный документ о root доступе?Или понадобится какой-нибудь хакерский путь?

А какие виды доступа требуют корневого доступа?Является ли прокси одним из них?Я не нашел никакой документации о доступе к прокси.

=== ОБНОВЛЕНИЕ ===

Я думаю, что некоторые люди ошибаются по моему вопросу.Я знаю, что телефон должен быть рутирован для получения root-доступа.но я хочу выяснить, какие сервисы нужны для root-доступа?Некоторым я вижу беспроводную привязку, другой - очистить кеш (нужен ли даже root-доступ только для очистки кеша?), А другие приложения там.Есть ли список преимуществ, которые я получаю от root-доступа?

Ответы [ 5 ]

22 голосов
/ 25 марта 2011

Вам необходимо установить su в телефоне (конечно).Подробности здесь: http://forum.xda -developers.com / showthread.php? T = 682828

И использовать его так же просто, как запустить команду su.Вот пример, который я использую для перезагрузки телефона программно (скопировано из этого ответа: Android 2.2: перезагрузка устройства программно )

try {
    Runtime.getRuntime().exec("su");
    Runtime.getRuntime().exec("reboot");
} catch (IOException e) {
} 
4 голосов
/ 09 декабря 2013

Должно работать на большинстве версий:

try {
    Runtime.getRuntime().exec("su -c reboot");
} catch (IOException e) {
} 
2 голосов
/ 25 марта 2011

Многие приложения зависят от сценария / команды оболочки с префиксом su.

Я не думаю, что есть способ запросить другой контекст или повысить привилегии в Android API.

0 голосов
/ 07 декабря 2018

Используйте эту функцию и используйте ее в любом месте вашего проекта

 public static void sudo(String... strings) {
    try {
        Process su = Runtime.getRuntime().exec("su");
        DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());

        for (String s : strings) {
            outputStream.writeBytes(s + "\n");
            outputStream.flush();
        }

        outputStream.writeBytes("exit\n");
        outputStream.flush();
        try {
            su.waitFor();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        outputStream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

Использование вышеупомянутой функции и использование любого типа команд оболочки с пользователями root

  sudo("iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080");
0 голосов
/ 20 августа 2015

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

...