Или как мне рутировать устройство без рутера?
Инструкции по рутированию для устройств Android, которые я видел, обычно имеют следующую форму:
- Скачать
Gingerbreak.apk
- Запустите Gingerbreak, нажмите «корневое устройство»
- Наблюдайте, что
Superuser.apk
это было волшебным образом установлено, возможно, наряду сbusybox
другими вещами, и наслаждайтесь своей добротой.
Я хочу знать следующее: как на самом деле происходит укоренение? Что делает Gingerbreak?
Я понимаю конечный результат рутирования:
su
присутствует и работаетSuperuser.apk
установлен и контролирует доступ кsu
- Присутствуют различные утилиты, предоставляемые BusyBox (необязательно?)
Я также думаю, что понимаю основную идею о том, как Gingerbreak запускается - он использует локальную уязвимость повышения привилегий и использует свои новые возможности для развертывания Superuser и всего остального, что необходимо.
Так что, если я не ошибаюсь в некоторых из представленных мной выше понятий, суть того, что я хочу знать, - это то, что делает установщик root для развертывания и активации Superuser. Кажется, что простого размещения Superuser.apk
в нужном месте будет недостаточно - как получить разрешенный root-доступ? Как он подключается, чтобы ограничить доступ для других приложений?
Что делает Gingerbreak после эксплойта, чтобы включить и защитить корневой доступ?
Ответы:
Что обычно делают APK и эксплойты:
В качестве примера на этой странице подробно рассказывается, как эксплойт rageagainstthecage пытается получить повышенные привилегии.
источник
После долгих раскопок я наконец понял это. Я был не прав насчет того, где магия - это не в сценарии установщика; все, что нужно сделать, это поместить
su
иSuperuser.apk
двоичные файлы в нужное место и установить их разрешения. Так что это на самом деле так же просто, как удаление файлов на месте и установка разрешений. Нет волшебной проводки.Магия происходит в
su
двоичном формате (см. Источник, а также этот вопрос ). Я (неправильно) думал, что этоsu
был стандартsu
, и что что-то было каким-то образом подключено к умеренному доступу к этому двоичному файлуSuperuser.apk
.Неправильно. То, что на самом деле происходит, гораздо проще: Superuser предоставляет пользовательскую реализацию,
su
которая аутентифицирует доступ через Superuser и его авторизованную базу данных приложений.Таким образом, процесс рутирования так же прост, как сказал @Sparx. Развернутое программное обеспечение содержит магию.
источник
su
само по себе это вовсе не волшебство, единственное волшебство в том, что ОС обрабатывает его специально. Все, что нужно сделать, это вернуть «OK» или «Not OK», когда ОС спросит, разрешать ли конкретному приложению повышать разрешения. Если он отсутствует или всегда возвращает «Not OK», то обычные приложения никогда не смогут получить root. Таким образом, рутирование - это в основном процесс размещенияsu
двоичного файла, который иногда может возвращать «ОК», в защищенное место в системе, которое не должно позволять это делать.all that has to do is put the su and Superuser.apk binaries in the right place and set their permissions
как будто это было бы легко без подвига, подвиг - это магия.