root в Linux (или любой Unix-подобной системе) - это просто пользователь с идентификатором пользователя 0. Программа su (которая фактически означает «Сменить пользователя», а не «Супер пользователя») - это просто программа для запуска другой программы с другим ID пользователя, чем у запускающей программы (по умолчанию uid 0, то есть для пользователя root). Android не использует традиционный / etc / passwd, однако для управления разрешениями он все еще использует идентификатор пользователя Linux и идентификатор группы.
Если вы хотите перехватывать запросы su, чтобы вы могли запрашивать пароль или применять другие правила, вам нужно заменить / sbin / su своей собственной версией su. Альтернативный подход описан здесь: http://www.koushikdutta.com/2008/11/fixing-su-security-hole-on-modified.html, хотя это потребует сотрудничества приложений путем запуска Intent, когда они захотят поменять пользователя.
Платформа безопасности Android более или менее похожа на это: каждое установленное приложение запускается со своим собственным идентификатором пользователя (выбирается во время установки), а разрешения приложения реализуются в виде групп пользователей.
Могу ли я изменить пароль root после рутирования моего устройства Android, просто набрав "passwd"?
Android не использует / etc / passwd, поэтому у него также нет passwd
программы.
как работает процесс рутирования? я имею в виду, что приложения "одним щелчком мыши" делают с моим телефоном?
Я не совсем уверен с точным процессом сам, вы, вероятно, хотите обратиться к рутированию разработчиков. Тем не менее, я предполагаю, что это просто отменяет проверку безопасности, которая изначально мешала разработчику установить 0.
И я разработчик, так как я могу найти скрытые API (например, iOS) для разработки корневых приложений?
Поскольку Android является открытым исходным кодом, в Android нет действительно скрытого API. Тем не менее, есть некоторые неопубликованные или недокументированные API, вы можете найти это в исходном коде Android . Однако эти API-интерфейсы не относятся к корневым разработкам, они, как правило, находятся в разработке API-интерфейсы, которые еще не готовы или слишком локализованы для конкретной цели, что бесполезно для публичного разработчика (или, возможно, Google просто еще не осознал их полезность) , Вы не ограничены в использовании этих API, но так как они не являются официально поддерживаемыми API, они могут исчезнуть или нарушить обратную совместимость в будущем. Если вам нужно использовать эти API, убедитесь, что ваше приложение работает корректно.