Як саме працює «root»? Чи всі програми запускаються як root на моєму телефоні після вкорінення?


45

Я читав про вкорінення телефону, але в мене виникають певні сумніви щодо поняття: коли ви купуєте телефон Android від оператора, у вас немає «кореневого» доступу. Коли ви запускаєте телефон, чи означає це, що використовується "обліковий запис" користувача (як у мене в Linux / Mac, "/ home /self")? Чи існує "/ дім / я" або подібне в телефонах Android?

Якщо я "виконуватиму" телефон, чи запускатиму його як корінь, коли його вмикаю? Чи всі програми тепер працюватимуть як root? Або коли вони намагаються запустити як root, мені потрібно буде дозволити їх так?

Якщо Android є по суті Linux, щоб створити резервну копію свого пристрою, чи не можу я просто мати змогу підключитися до цього корінця, зробити повний tar -cvzf /і потім зробити кудись десь? Навіщо мені потрібно мати Nandroid і ці повноцінні рішення?


Можливий дублікат: android.stackexchange.com/questions/236/…
але

Дивіться також: android.stackexchange.com/questions/1/…
але

Відповіді:


56

Коли ви запускаєте телефон, чи означає це, що використовується "обліковий запис" користувача (як у мене в Linux / Mac, "/ home /self")? Чи існує "/ дім / я" або подібне в телефонах Android?

Ні. Android був розроблений для однокористувацької системи, і багато дизайнерських рішень було прийнято таким, що / додому / я більше не існує. В Android, багатокористувацькі можливості ядра Linux використовуються для підвищення безпеки, запускаючи кожну програму як власного користувача; тому ізолюючи дані кожної програми один від одного.

Якщо я "виконую" телефон, чи запускатиму його як корінь, коли його вмикаю? Чи всі програми тепер працюватимуть як root? Або коли вони намагаються запустити як root, мені потрібно буде дозволити їх так?

Ні, ні, так. У сучасних методах вкорінення (в основному це всі способи вкорінення, за винятком самих ранніх), існує програма під назвою "Superuser", яка використовується для управління програмами, яким дозволено отримувати кореневий доступ.

Оскільки Android - це Linux, мені цікаво отримати доступ до терміналу та деяких утилітів unix (ssh, rsync тощо). Я не проти використовувати клавіатуру Bluetooth і vi (наприклад, для редагування / etc / hosts). Чи можливо це? Чи можу я мати термінал з великою кількістю утилітів Unix (я знаю, що доступна зайнята скринька)?

Так, оболонка існує (але це не bash shell). Вам може знадобитися встановити термінальний емулятор, щоб отримати доступ до нього (деякі спеціальні ROM встановлюють його за замовчуванням) або використовувати його як віддалену оболонку за допомогою ADB. Оскільки він не використовує bash, термінал буде дещо відрізнятися від того, що ви звикли бачити в звичайних дистрибутивах Linux (особливо, у нього немає автоматичного завершення), а більшість команд оболонки, які ви вважаєте "стандартними", не існує або тільки існує в надзвичайно босоніжній формі.

Якщо ви багато використовуєте термінал, можна встановити зайняту скриньку та башти для більш звичного терміналу; ви також можете встановити утиліти простору користувачів GNU, але вам знадобиться досить високий клас телефону з великою кількістю дискового простору.

Коротше кажучи, те, що ви хочете, можливо; хоча багато інструментів не встановлено за замовчуванням на ROM-виробниках. Щоб встановити всі ці інструменти самостійно, потрібна велика робота. Найпростіший і найшвидший шлях - це встановлення користувальницького ПЗУ, який забезпечує такі інструменти, як CyanogenMod.

Якщо Android по суті є Linux

Android використовує ядро ​​Linux, але це не GNU / Linux і не використовує типові програми GNU користувачів. Натомість він використовує простір користувачів наборів інструментів, що є дуже мінімалістичним простором користувачів (навіть менше, ніж у зайнятій скриньці, у панелі інструментів навіть немає CP, вам доведеться використовувати cat замість копіювання файлів). Деякі власні Android-ROM встановлюють зайняту скриньку за замовчуванням.

щоб створити резервну копію свого пристрою, чи не можу я просто мати змогу підключитися до цього корінства, зробити повний tar -cvzf / і їх кудись зробити? Навіщо мені потрібно мати Nandroid і ці рішення для повних ударів?

що по суті те, що робить Nandroid (строго кажучи, резервне копіювання Nandroid більше схоже на резервне копіювання з dd, а не на tar, хоча, за винятком набагато зручнішого графічного інтерфейсу. Більшість людей, навіть енергетичні користувачі, не люблять вводити складні команди на маленькій клавіатурі або підключати зовнішню клавіатуру кожного разу, коли вони хочуть робити резервну копію (і 99% у світі має термінальну фобію). Набагато простіше просто запустити додаток і натиснути кнопку, а все зробити для вас.


2
"99% у світі має Термінал-фобію" - сумно, але правда. Але я натомість любитель терміналів. Я завжди хочу знати, які команди видаються за додатком. Це обробка моїх цінних даних після закінчення. Я люблю видавати команди самостійно, особливо як розробник.
midnite

Як ОЕМ використовує кореневі функції на не вкоріненому пристрої?
Shloime Rosenblum
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.