На відміну від 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 і домашня сторінка проекту щоб дізнатися більше.