Как именно работает «корень»? Все ли приложения запускаются как root на моем телефоне после рута?


45

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

Если я "получу root" от телефона, запусту ли я телефон как root, когда включу его? Будут ли все приложения теперь работать от имени пользователя root? Или когда они попытаются запустить от имени root, мне нужно будет разрешить им это?

Если Android - это, по сути, Linux, для резервного копирования моего устройства, разве я не смогу просто подключиться к нему с правами root, выполнить полное, tar -cvzf /а затем выполнить scp куда-нибудь? Зачем мне нужен Nandroid и эти полноценные решения?


Возможный дубликат: android.stackexchange.com/questions/236/…
Эль

Смотрите также: android.stackexchange.com/questions/1/...
эль

Ответы:


56

Когда вы запускаете свой телефон, означает ли это, что используется учетная запись «пользователя» (как у меня в Linux / Mac, «/ home /self»)? Существует ли «/ home /self» или подобное в телефонах Android?

Нет. Android был разработан для однопользовательской системы, и многие дизайнерские решения были приняты так, что / home / I'm больше не существует. В Android многопользовательские возможности ядра Linux используются для повышения безопасности, поскольку каждое приложение запускается как отдельный пользователь; поэтому изолировать данные каждого приложения друг от друга.

Если я "получу root" от телефона, запусту ли я телефон как root, когда включу его? Будут ли все приложения теперь работать от имени пользователя root? Или когда они попытаются запустить от имени root, мне нужно будет разрешить им это?

Нет нет да В современных методах рутирования (которые, в основном, являются любыми методами рутирования, за исключением самых ранних), существует приложение «Superuser», которое используется для управления приложениями, которым разрешено получать root-доступ.

Поскольку Android - это Linux, мне интересно иметь доступ к терминалу и некоторым утилитам Unix (ssh, rsync и т. Д.). Я не против использования клавиатуры Bluetooth и vi (для редактирования / etc / hosts, например), если это необходимо. Это возможно? Могу ли я иметь терминал с большим количеством утилит unix (я знаю, что busybox доступен)?

Да, оболочка существует (но это не оболочка bash). Вам может понадобиться установить Terminal Emulator для доступа к нему (некоторые пользовательские ПЗУ устанавливают его по умолчанию) или использовать его в качестве удаленной оболочки с использованием ADB. Поскольку он не использует bash, терминал будет немного отличаться от того, что вы привыкли видеть в обычных дистрибутивах Linux (в частности, он не имеет автозаполнения), а большинство команд оболочки, которые вы считаете «стандартными», не существует или только существует в чрезвычайно босой форме.

Если вы часто используете терминал, можно установить busybox и bash для более привычного восприятия терминала; вы также можете установить утилиты GNU userpace, но вам понадобится довольно дорогой телефон с кучей дискового пространства.

Короче говоря, то, что вы хотите, возможно; хотя многие инструменты не установлены по умолчанию в ПЗУ производителя. Чтобы самостоятельно установить все эти инструменты, потребуется немало усилий, самый простой и быстрый способ - установить собственное ПЗУ с такими инструментами, как CyanogenMod.

Если Android по сути является Linux

Android использует ядро ​​Linux, но это не GNU / Linux и не использует типичные программы пространства пользователя GNU. Вместо этого он использует пользовательское пространство панели инструментов, которое является очень минималистским пользовательским пространством (даже меньше, чем busybox, у toolbox даже нет cp, вместо этого вы должны использовать cat для копирования файлов). Некоторые пользовательские ПЗУ для Android устанавливают busybox по умолчанию.

чтобы сделать резервную копию моего устройства, разве я не смогу подключиться к нему с правами root, сделать полный tar -cvzf / и куда-нибудь? Зачем мне нужен Nandroid и эти полноценные решения?

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


2
«У 99% людей есть терминальная фобия» - грустно, но верно. Но вместо этого я любитель терминалов. Я всегда хочу знать, какие команды выдаются за приложение. Это обрабатывает мои ценные данные в конце концов. Я люблю давать команды самостоятельно, особенно как разработчик.
Midnite

Как OEM использует корневые функции на нерутированном устройстве?
Шлоим Розенблюм
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.