Як додати root-дозвіл на якусь програму власноруч?


11

Чи є спосіб, щоб я навмисно надавав дозвіл root на якусь програму? Не автоматично через SuperSU, коли певна програма запитує дозвіл на root, але таким чином, щоб вибрати додаток за допомогою якогось інструменту та надати йому права доступу до root.

Наприклад, я додаю свій улюблений текстовий додаток до затвердженого списку, і тоді я можу відкривати кореневі файли через цей додаток.

Відповіді:


13

Ні. Ви повинні попросити розробника програми зробити це.

У системах, схожих на UNIX, дозволами керуються за допомогою того, що називається UID.

У кожного процесу є один, і він диктує, до чого вони можуть отримати доступ. Крім того, є також групи, які мають дозвіл, яким можуть користуватися їх члени. Коли програма має дозволи, такі як Write to SD cardвони розміщені в групі, яка має цей дозвіл.

Кореневі дозволи є винятком, оскільки вони не задекларовані в маніфесті програми, а в коді. Корінь також не є групою, а окремим UID (оскільки це окремий користувач), тому програмі не так просто користуватися ним. Програми, що мають права root, повинні бути чітко написані для цього.

Як це працює кожен раз, коли додаток хоче зробити щось як root, воно повинно просити suбінарне зробити це замість цього. suПотім запитає додаток, який керує цими дозволами (наприклад, SuperSU), чи дозволено додатку отримати root-доступ. Якщо це не так, він запропонує вам дозволити або заборонити це. Потім дія виконується як root, а не як користувач програми. Ці дії не є невід'ємною частиною програми, а є зовнішнім виконуваним файлом.

Хоча теоретично можна додати це до програми, це був би нетривіальний процес, що вимагає знань щодо написання коду smali, що є внутрішнім форматом віртуальної машини Dalvik (тієї частини системи, яка запускає файл apk). смали. І навіть тоді виникне величезний ризик для безпеки, якщо додаток дозволить іншим програмам отримувати доступ до нього: він не знатиме, як тримати привілейований кореневий доступ окремо від звичайного доступу. Тож насправді це насправді неможливо.


1
Для тих , хто не знає , що smali є: Це збірка діалекті Dalvik коду віртуальної машини Андроїда і часто використовується в зворотних інженерних тни файлах. Що може бути трохи незрозумілим: додаток сам повинен піклуватися про те, щоб стати програмним забезпеченням root . Ось чому розробник повинен включити його. Додавання його до SuperSU не допомагає до тих пір, поки додаток не здійснює своїх кореневих прав.
ce4

Тож я не можу відкрити деякий кореневий текстовий файл через улюблений текстовий редактор, якщо програмісти не кодували програму, щоб прийняти відкриття кореневих файлів?
AnDroDroo

1
Абсолютно правильно. Наведіть приклад: якщо додаток не буде запущено з root, а спробує відкрити якийсь «кореневий файл», він просто отримає «дозвіл відхилений» - оскільки доступ до файлу все одно буде здійснюватися за допомогою UID додатків (це не буде просити дозволу суперпользователя для його відкриття). З іншого боку, якщо додаток запущено з використанням кореневого UID (тобто su <app>), він отримає доступ до цього кореневого файлу як корінь і, таким чином, отримає дозвіл.
Izzy

Ось чому я не зміг використати деякі інші текстові редактори для читання кореневих файлів :).
AnDroDroo

1
@Izzy AFAIK ви не можете виконати звичайний додаток для Android з кореневим UID або змінити UID запущеного додатка. Єдине, що ви можете зробити, це виконати програми командного рядка з su і, отже, виконувати команди з правами адміністратора.
Роберт

1

Я знайшов спосіб, який може вам допомогти. Я використовував це для надання кореневого доступу до Tasker .

Якщо ви використовуєте емулятор терміналу, щоб надати доступ до читання, але не для запису, використовуючи

  • su
  • chmod 775 /location/of/folder/

тоді ваш текстовий редактор зможе прочитати цей каталог, і тому, якщо ви зможете спробувати зберегти файл у папці, він спробує запитати дозвіл кореня.

Це також може просто дати помилку при записі.


Усі каталоги /location/of/folder/від кореня до верху повинні бути читабельними / перехідними. Також SELinux може заборонити доступ. Тож такий підхід рідко практичний.
Ірфан Латиф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.