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