Суперкористувач із підтримкою ядра (KernelSU)

На відміну від Magisk, KernelSU вбудовано можливість отримати root у саме ядро. Він змушує оболонку думати, що /system/bin/su існує на пристрої.

Root є дуже особливим для нас у XDA. Це дозволяє користувачам контролювати свої пристрої та додавати функції, які не завжди доступні, як-от запис дзвінків, теми та розширений моніторинг заряду акумулятора. Протягом багатьох років було кілька кореневих реалізацій, найпопулярнішою, ймовірно, є SuperSU. Однак нещодавно, з появою SafetyNet і посиленням обмежень для пристроїв із root-доступом, Magisk став кореневою реалізацією вибору, оскільки його функція Magisk Hide дозволяє користувачам ефективно приховати той факт, що вони мають root-права від таких програм, як Netflix і Google платити. Однак реалізація та функціональність Magisk Hide – це багато в чому гра в кішки-мишки: Google виправляє його, а Magisk працює навколо цього виправлення.

Magisk працює у так званому просторі користувача. Тут також працює більшість програм на вашому телефоні, будь то ігри, музичні плеєри чи фітнес-трекери. Це «простір» операційної системи пристрою, призначений для користувача. Простір користувача також є місцем, де відбувається більшість битв за Magisk Hide. На жаль, час іде, а Google виправляє все більше й більше методів Magisk Hide, місця для приховування залишається все менше. У майбутньому Magisk може втратити можливість повністю приховувати root.

Планує цей випадок, визнаний розробник XDA zx2c4 (Джейсон Доненфельд), відомий тут на XDA за його робота над WireGuard і відкриття a Уразливість завантажувача OnePlus, створив Суперкористувач із підтримкою ядра (КернелДУ).

На відміну від Magisk, KernelSU вбудовано можливість отримати root у саме ядро. Тут він захоплює системні виклики, щоб змусити оболонку думати /system/bin/su існує на пристрої, хоча насправді його немає. Потім він виконує команди, запущені з su ніби це були звичайні команди, але з привілеями root. SELinux не може запобігти цьому процесу — ядро ​​може навіть вимкнути SELinux, якщо забажає — і можливість приховати кореневий статус від простору користувача, а отже, і SafetyNet, майже необмежена.

KernelSU, однак, далекий від завершення. На даний момент не існує механізму контролю доступу (наприклад, Magisk Manager). Через це KernelSU наразі є найбільш корисним для розробників ядра, а не для користувачів. Процес побудови ядра вимагає від розробників постійної перебудови та завантаження завантажувальних образів для тестування та виправлення помилок і функцій, а наявність root-прав значно полегшує це. Однак у таких опціях root, як Magisk або SuperSU, завантажувальний образ потрібно виправляти після кожної збірки, щоб root працював, що може значно вплинути на процес розробки. KernelSU, з іншого боку, призначений для інтеграції під час збірки, без необхідності виправлення після збірки. Щоб полегшити інтеграцію KernelSU для розробників, доступна проста однорядкова команда:

curl -LsS "https://git.zx2c4.com/kernel-assisted-superuser/plain/fetch-and-patch.sh" | bash -

Після цього KernelSU можна буде вбудувати в ядро ​​як частину звичайного процесу збирання. Це означає, що розробники можуть легко створювати та тестувати свої ядра, не турбуючись про додавання root.

Незважаючи на те, що KernelSU знаходиться на початку свого становлення, і потрібно ще більше працювати, щоб зробити його повнофункціональним, це цікавий проект. Ми говорили з Magisk-творець, визнаний розробник XDA topjohnwu, про KernelSU, і він також знайшов це цікавим, сказавши, що, оскільки KernelSU працює на рівні ядра, Функціональність Magisk Hide була б набагато надійнішою, якщо б її додали, і це було б «кумедно». реалізувати».

Якщо ви розробник ядра чи ПЗУ, зацікавлений у KernelSU, перегляньте Тема XDA і домашня сторінка проекту щоб дізнатися більше.