За разлика от Magisk, KernelSU вгражда способността за получаване на root в самото ядро. Той подвежда черупката да мисли, че /system/bin/su съществува на устройството.
Root е много специален за нас в XDA. Позволява на потребителите да поемат контрола над своите устройства и да добавят функции, които не винаги са налични, като запис на разговори, теми и разширено наблюдение на батерията. През годините имаше няколко root реализации, като най-популярната вероятно е SuperSU. Напоследък обаче, с въвеждането на SafetyNet и увеличаването на ограниченията за руутнати устройства, Magisk беше основната реализация по избор, тъй като неговата функция Magisk Hide позволява на потребителите ефективно да скрият факта, че имат root от приложения като Netflix и Google Плащане. Въпреки това внедряването и функционалността на Magisk Hide е до голяма степен игра на котка и мишка, при която Google го закърпва и Magisk работи около този пач.
Magisk работи в това, което е известно като потребителско пространство. Това е и мястото, където работят повечето програми на вашия телефон, независимо дали са игри, музикални плейъри или фитнес тракери. Това е обърнатото към потребителя „пространство“ на операционната система на устройството. Потребителското пространство също е мястото, където се провежда по-голямата част от битката за Magisk Hide. За съжаление, с течение на времето и Google коригира все повече и повече от методите на Magisk Hide, остава все по-малко място за скриване. В бъдеще Magisk може да загуби способността да скрие напълно root.
Планиране за тази възможност, XDA Recognized Developer zx2c4 (Джейсън Доненфелд), известен тук в XDA за работата му върху WireGuard и откриването на a Уязвимост на буутлоудъра на OnePlus, създаде Суперпотребител с помощта на ядрото (KernelSU).
За разлика от 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 би била много по-надеждна, ако се добави, и че би било „забавно нещо прилагам."
Ако сте разработчик на ядро или ROM, който се интересува от KernelSU, вижте XDA тема и на началната страница на проекта да научиш повече.