Есть ли способ, которым я намеренно предоставляю root-права какому-либо приложению? Не автоматически через SuperSU, когда конкретное приложение запрашивает разрешение root, а таким образом, чтобы выбрать приложение с помощью какого-либо инструмента и предоставить ему права root.
Например, я добавляю свое любимое текстовое приложение в одобренный список, а затем могу открывать корневые файлы через это приложение.
Нет. Вы должны попросить об этом разработчика приложения.
В UNIX-подобных системах разрешения управляются чем-то, что называется UID.
У каждого процесса есть один, и он диктует, к чему они могут получить доступ. Кроме того, есть также группы, у которых есть разрешение, которое могут использовать их участники. Когда у приложения есть разрешения, например Write to SD card
, они помещаются в группу, у которой есть это разрешение.
Права root являются исключением, поскольку они объявлены не в манифесте приложения, а в его коде. Root также является не группой, а отдельным UID (поскольку это отдельный пользователь), поэтому приложению не так просто его использовать. Приложения с root-правами должны быть специально написаны для этого.
Это работает следующим образом: каждый раз, когда приложение хочет что-то сделать от имени root, su
вместо этого оно должно запрашивать двоичный файл. su
затем спросит приложение, которое управляет этими разрешениями (например, SuperSU), разрешено ли приложению получить root-доступ. Если это не так, вам будет предложено разрешить или запретить это. Тогда действие выполняется как root
, а не как пользователь приложения. Эти действия не являются неотъемлемой частью приложения, а являются внешним исполняемым файлом.
Хотя теоретически можно добавить это в приложение, это будет нетривиальный процесс, требующий знания кода smali, который является внутренним форматом виртуальной машины Dalvik (часть системы, которая запускает файл apk), называемая маленький И даже тогда возникнет огромный риск для безопасности, если приложение позволит другим приложениям получить к нему доступ: оно не будет знать, как отделить привилегированный root-доступ от обычного доступа. Так что на самом деле это нереально.
Я нашел способ, который может вам помочь. Я использовал это, чтобы предоставить root-доступ к Tasker .
Если вы используете эмулятор терминала, чтобы предоставить доступ для чтения, но не для записи к папке, используя
su
chmod 775 /location/of/folder/
тогда ваш текстовый редактор сможет прочитать этот каталог, и поэтому, если вы сможете попытаться сохранить файл в папке, он попытается запросить разрешение root.
Также может просто выдавать ошибку записи.
/location/of/folder/
от корня до верха должны быть доступны для чтения/прохода. Также SELinux может запретить доступ. Так что этот подход редко практичен.
се4
Андродроо
Иззи
su <app>
.), оно будет обращаться к этому корневому файлу как root и, таким образом, получит разрешение.Андродроо
Роберт
Иззи
РР
Броам
РР