Что именно такое superuser.apk и su?

32

Я много читал о рутировании Android-устройств. Я действительно хочу точно знать, что происходит на каждом этапе, прежде чем приступить к процессу.

Я немного смущен тем, откуда берутся файлы superuser.apk и su. Это не официальные файлы Google, а файлы, созданные (случайным образом) человеком. Тем не менее, насколько безопасны эти файлы?

Из исследований у меня есть общее понимание их цели. Мне было интересно, знает ли кто-нибудь, что это за файлы (исполняемые файлы? Скрипты?), Что они содержат и как они обычно работают.

Благодарность!

kaspnord
источник
Связанный: Как работает Magisk?
Ирфан Латиф

Ответы:

32

su(сокращение от Switch User) - двоичный исполняемый файл. Он используется в Android и других системах * nix, чтобы позволить процессу изменить учетную запись пользователя, с которой он связан. Причина, по которой это важно с точки зрения рутинга, заключается в том, что suбез каких-либо других параметров пользователь переключится на пользователя root, а это означает, что процессы, которым для его функциональности требуется разрешение root, должны вызываться su(поскольку по умолчанию они не запускаются пользователем root).

Superuser - это приложение для Android (.apk - это пакет приложений для Android). Он работает как своего рода «привратник» в suдвоичном коде. Приложения, которые пытаются вызвать, suбудут вынуждены маршрутизировать через Superuser, который затем предложит пользователю, если это неизвестное или новое приложение. Затем пользователь имеет возможность одобрить или запретить доступ suи, при необходимости, помнить Superuser о своем решении, чтобы он мог автоматически применять его для последующих вызовов этого приложения. При этом единственными приложениями, которым предоставлены права root, являются те, которые выбирает пользователь.

Источник обоих приложений доступен на Github и может быть изучен / проверен любым желающим (Superuser здесь , su здесь ).

Вы можете найти более подробную информацию - а также журналы изменений - на сайте Superuser .

Другие похожие вопросы по энтузиастам Android:

eldarerathis
источник
1
Я действительно ценю подробный ответ и ссылки! Благодарность!
kaspnord
1
Есть ли альтернативы / эквиваленты этим файлам для целей рутирования Android?
kaspnord
1
@kaspnord: Нет, suэтот же файл используется для других операционных систем linux / unix, и альтернативы этому нет, но может быть для superuser.apk. Почему вы хотите альтернативу?
Кириас
3
Мне просто любопытно, так как эти файлы, хотя и благословлены сообществом открытого исходного кода, по-видимому, не имеют какого-либо стандарта (т. Е. Официально не принадлежат Google). Итак, это заставляет меня думать, что другие люди могут создавать другие варианты тех же файлов. Лично я хочу точно знать, что я использую и вставляю в свое устройство, а не полагаться на решения других, где я не могу со 100% уверенностью знать, какие файлы содержатся.
Каспнорд
11

Исходный код для суперпользователя доступен на GitHub, основной автор суперпользователя является Адам Черенки ( ChainsDD ) и Koushik Датт ( Коуш , также автор Clockwork Recovery).

Кушик Датта объяснил в своем блоге как работает Superuser.apk ; обратите внимание, что пост относится к самому раннему воплощению приложения Superuser, с тех пор многое изменилось, и кое-что из того, что было написано там, больше не подходит для современной реализации superuser / su, но основы должны быть такими же.

И su, и Superuser, безусловно, могут быть заменены альтернативами, но на самом деле это мало что даст, поскольку средство, которое использует su (т.е. системные вызовы exec () и setuid ()), доступно для любых исполняемых файлов, учитывая, что исполняемый файл имел правильную биты прав доступа (т.е. бит setuid установлен в root). По сути, su - очень простая программа, она просто порождает процесс как другой пользователь; настоящая проверка безопасности выполняется ядром.

Итак, пока вы получаете официальное, неизмененное приложение su и superuser, и они правильно установлены с соответствующим разрешением, вам не о чем беспокоиться, они открыты и безопасны, вы можете проверить источник закодируйте себя в github. Однако, безусловно, возможно получить троянский двоичный файл superuser / su, поэтому убедитесь, что везде, где вы получаете бинарный файл superuser / su, можно доверять (или скомпилируйте su / superuser самостоятельно, если вы действительно параноик).

Ли Райан
источник