root в Linux (або будь-якій Unix-подібній системі) - це просто користувач з User ID 0. Програма su (яка насправді означає "Switch User", а не "Super User") - це лише програма для запуску іншої програми з іншою ідентифікатор користувача, ніж стартова програма (за замовчуванням - uid 0, що є користувачем root). Android не використовує традиційний / etc / passwd, однак він все ще використовує Linux User ID та Group ID для управління дозволами.
Якщо ви хочете перехопити su запити, щоб ви могли запитати пароль або застосовувати інші правила, вам потрібно буде замінити / sbin / su на власну версію su. Альтернативний підхід - це описаний тут: http://www.koushikdutta.com/2008/11/fixing-su-security-hole-on-modified.html, однак для цього потрібні додатки для співпраці шляхом вистрілення намірів, коли вони хочуть змінити користувача.
Рамка безпеки Android є більш-менш такою: кожен встановлений додаток працює за власним ідентифікатором користувача (вибраним під час встановлення), а дозволи на додаток реалізуються як групи користувачів.
Чи можу я змінити пароль root після вкорінення мого пристрою Android, просто ввівши "passwd"?
Android не використовує / etc / passwd, тому у нього також немає passwd
програми.
як працює процес вкорінення? я маю на увазі, що програми "одним кліком" роблять на моєму телефоні?
Я не впевнений у тому, який саме процес я знаю, ви, мабуть, хочете попросити розробників вкорінюватися. Однак я гадаю, що це просто скасовує перевірку безпеки, яка спочатку не дозволяє розробнику встановити 0.
І я розробник, то як я можу знайти приховані API (наприклад, iOS) для вкоріненої розробки додатків?
Оскільки Android є відкритим кодом, в Android немає справді прихованого API. Однак існують деякі неопубліковані або недокументовані API, ви можете переглянути це у вихідному коді Android . Однак ці API не стосуються кореневих розробок, як правило, вони вже не готові до API, які ще не готові або занадто локалізовані для конкретних цілей, що не є корисним для публічного розробника (або, можливо, Google просто ще не зрозумів їх корисності) . Ви не обмежуєте користуватися цими API, але оскільки це не офіційно підтримувані API, вони можуть зникнути або порушити сумісність у майбутньому. Якщо вам потрібно використовувати ці API, переконайтеся, що ваш додаток граціозно працює.