Что именно «Re-root System (SuperSU)» делает с вашим телефоном в Philz Touch Recovery?

Я попытался вручную получить root права на свой телефон, загрузив соответствующий двоичный файл su в /system/bin и /system/xbin. Я смог нажать их через adb в рекавери, который является корневым (не знаю почему). Оказавшись в своем телефоне, я выполнил chmodd 755 для обоих и набрал su --installи su --daemon&. После этого я попытался setenforce 0.

Все вроде бы работало, но когда я перезагрузился, у меня не было рута. Так что я вернулся в рекавери, использовал опцию "re-root", и это сработало. Почему это?

Ответы (1)

Согласно исходному коду, доступному на GitHub, восстановление выполняет целый ряд операций, помимо простого запуска демона в фоновом режиме, копирования двоичного файла su в /system/xbin и изменения его разрешений. Как можно понять, изучив этот скрипт install-su , то, что делает восстановление, заключается в том, чтобы сначала выполнить операцию очистки для приложений корневого менеджера, которые, возможно, уже были установлены.

После этого выполняется операция копирования соответствующих файлов, а именно бинарного файла su (который вызывается каждый раз, когда вы запрашиваете привилегии суперпользователя), 99SuperSUDaemon (выполнение которого зависит от init.d ), настроенного файла install-recovery.sh (для принудительного демон для запуска на Jelly Bean) и SuperSU.apk (корневой менеджер).

После этой фазы сценарий использует ранее определенные функции set_perm (сочетающая в себе chmod и chown и служащая для определения владельца и разрешений) и ch_con (которая помечает файлы как системные). Последнее, вероятно, является причиной сбоя вашей ручной процедуры: вы не изменили контекст файлов, которые вы отправили, поэтому они не были распознаны как системные файлы.