Продолжаем первую часть статьи. Ссылка на первую часть есть выше.
Есть два метода, которые собственно и являются одними из методов получения root доступа на Android устройствах.
Первый и очевидный - отредактировать файл самой прошивки специальным образом и прошить её в устройство с компьютера. Так собственно и работают некоторые "рутовалки", которые прошивают "скрипт" из рекавери режима (на деле прошивают часть раздела).
Второй - очень старый эксплоит, он работал только в Android версий до 2.2 включительно. Он использует ошибку в ADB. Изначально ADB всегда запускается от root'а. А затем права сбрасываются. Вот кусок кода из этого старого ADB:
Из него следует, что он читает значение ro.secure. Если там стоит 1 (production build), только дальше по тексту кода права сбрасываются до уровня пользователя (setgid/setuid).
Эксплоит использовал простую особенность функций setuid/setgid - если нет ресурсов для смены владельца процесса, смена владельца не происходит. А проверки на это в коде ADB нет! Следовательно эксплоит просто занимал все ресурсы и потом перезапускал ADB. Бах, и он не смог понизить привилегии и остался с правами root. Получен временный root - можно дальше уже и постоянный делать.
Конечно второй метод уже давно устарел, но как говориться для исторической справки, да и вообще полезно будет знать как оно устроено в целом. Тем более, что про такие вещи по русски вы нигде не прочитаете.
Надеюсь вам было интересно, а вопросы и подробности вы как всегда сможете сможете выяснить в комментариях!
Комментарии (2)
чётка
Офигеть чётка
И всё?
Так как или хотя бы какой файл отредактировать в первом способе?..
Добавить комментарий