В чем разница между установкой SuperSU с помощью Play Store и кастомным рекавери, которое устанавливает его из файла?

Я вижу, что некоторые руководства по рутированию говорят, что рутирование включает в себя:

  1. Загрузите SuperSU в виде zip-файла, который будет доступен для телефона (например, SD-карта).
  2. Разблокируйте загрузчик телефона.
  3. Загрузка в «пользовательский» режим восстановления. Например TWRP или CWM. Либо временно загрузиться с помощью fastboot, либо прошить кастомное рекавери на телефон, а затем загрузиться.
  4. Используйте пользовательский режим восстановления, чтобы установить загруженный zip-файл SuperSU.
  5. Перезагрузите телефон в обычный режим, и root-доступ должен быть А) доступным и Б) управляемым программой SuperSU.

Однако я также вижу, что SuperSU есть и в Play Store . Установка из Play Store не обещает никакого root-доступа. (На самом деле предполагается, что он у вас уже есть.)

Итак, мои вопросы:

  • В чем практическая разница между этими методами установки?
  • Каковы технические различия в действиях или ограничениях?
  • И как метод установки кастомного рекавери может/обеспечивает root-доступ, тогда как метод Play Store не может?

Ответы (1)

Для корневого доступа (обычно) требуется несколько компонентов, которые работают согласованно друг с другом. Несколько упрощенный взгляд на то, что вам нужно:

  • Родной suбинарник. Это можно вызвать из командной строки или из приложений. Это то, что фактически выполняет действие по переключению пользователей и предоставляет процессу root-права.
  • Приложение «привратник», которое регулирует, какие другие приложения и процессы могут вызывать suдля получения привилегий root.

Думайте о приложении SuperSU как о своего рода графическом интерфейсе для suдвоичного файла.

Из-за того, как права доступа к каталогам/файлам настраиваются на Android, вам необходимо иметь suдвоичный файл в своем /systemразделе, чтобы он работал. Размещение в другом месте будет недостаточным, потому что у него не будет разрешений, необходимых для фактического разрешения процессам переключения пользователей.

Обычные приложения (без рута) не могут писать в /system, поэтому само приложение SuperSU не может просто установить suкуда надо. По этой причине у вас не будет root, если вы установите SuperSU из Play Store, не предпринимая никаких других действий. Все, что у вас есть, это внешний интерфейс, но не необходимые базовые части. У вас есть только половина того, что вам нужно для root, и нет возможности получить другую половину только из приложения SuperSU.

Поэтому самый распространенный способ получить suфайл в нужном месте — это установить его из рекавери, так как система восстановления имеет полный доступ к хранилищу устройства и может устанавливать файлы куда угодно. Как только это будет сделано, SuperSU и suмогут общаться друг с другом и предоставлять root-доступ другим процессам.

Файл установки восстановления также устанавливает SuperSU, потому что это удобно, и его установка /systemпредотвращает его стирание при сбросе настроек. Однако при желании можно было установить только suиз рекавери, а затем получить SuperSU из Play Store. Он будет работать нормально. Точно так же вы можете позже обновить SuperSU из Play Store, и он продолжит функционировать (потому suчто на тот момент он уже был установлен).

Вопрос: Даже если у вас есть su в /system, будут ли у вас или приложений root-доступ даже без SuperSU? Возможно, вы захотите перефразировать SuperSU как графический интерфейс и «привратник».
Я думаю, это зависит от того, как suбыл построен двоичный файл. Towelroot использует тот, который не требует дополнительного приложения (одобряет все), но я не уверен, работает ли SuperSU таким образом в отсутствие приложения.
«Из-за того, как права доступа к каталогам/файлам настраиваются на Android, вам необходимо иметь suдвоичный файл в вашем /systemразделе, чтобы он работал». Не могли бы вы предоставить ссылку, которая объясняет эту специальную конфигурацию /systemраздела? Что могут делать включенные двоичные файлы, /systemчто не разрешено для включенных двоичных файлов /data?