Про production build и root. Часть 2.

Android girl

Продолжаем первую часть статьи. Ссылка на первую часть есть выше.

Есть два метода, которые собственно и являются одними из методов получения root доступа на Android устройствах.

Первый и очевидный - отредактировать файл самой прошивки специальным образом и прошить её в устройство с компьютера. Так собственно и работают некоторые "рутовалки", которые прошивают "скрипт" из рекавери режима (на деле прошивают часть раздела).

Второй - очень старый эксплоит, он работал только в Android версий до 2.2 включительно. Он использует ошибку в ADB. Изначально ADB всегда запускается от root'а. А затем права сбрасываются. Вот кусок кода из этого старого ADB:

Код ADB

Из него следует, что он читает значение ro.secure. Если там стоит 1 (production build), только дальше по тексту кода права сбрасываются до уровня пользователя (setgid/setuid).

Эксплоит использовал простую особенность функций setuid/setgid - если нет ресурсов для смены владельца процесса, смена владельца не происходит. А проверки на это в коде ADB нет! Следовательно эксплоит просто занимал все ресурсы и потом перезапускал ADB. Бах, и он не смог понизить привилегии и остался с правами root. Получен временный root - можно дальше уже и постоянный делать.

Конечно второй метод уже давно устарел, но как говориться для исторической справки, да и вообще полезно будет знать как оно устроено в целом. Тем более, что про такие вещи по русски вы нигде не прочитаете. smiley

Надеюсь вам было интересно, а вопросы и подробности вы как всегда сможете сможете выяснить в комментариях!

Оцените статью: 
В среднем: 4.8 (голос 31)