Till skillnad från Magisk, bäddar KernelSU in möjligheten att få root i själva kärnan. Det lurar skalet att tro att /system/bin/su finns på enheten.
Root är väldigt speciellt för oss på XDA. Det låter användare ta kontroll över sina enheter och lägga till funktioner som inte alltid är tillgängliga, som samtalsinspelning, teman och avancerad batteriövervakning. Det har förekommit några root-implementeringar genom åren, med den mest populära sannolikt SuperSU. Men nyligen, med introduktionen av SafetyNet och ökande begränsningar för rotade enheter, har Magisk varit root-implementeringen val, eftersom dess Magisk Hide-funktion tillåter användare att effektivt dölja det faktum att de har root från appar som Netflix och Google Betala. Implementeringen och funktionen av Magisk Hide är dock i allra högsta grad ett katt-och-råtta-spel där Google patchar det och Magisk arbetar runt den patchen.
Magisk körs i det som kallas användarutrymme. Det är också här de flesta program på din telefon körs, oavsett om de är spel, musikspelare eller träningsspårare. Det är det användarvända "utrymmet" i enhetens operativsystem. Userspace är också där det mesta av kampen om Magisk Hide äger rum. Tyvärr, allt eftersom tiden går, och Google patchar fler och fler av Magisk Hides metoder, finns det mindre och mindre utrymme kvar att gömma sig. I framtiden kan Magisk förlora förmågan att dölja root helt.
Planerar för denna eventualitet, XDA Recognized Developer zx2c4 (Jason Donenfeld), känd här på XDA för hans arbete på WireGuard och upptäckten av en OnePlus bootloader sårbarhet, har skapat Kernel Assisted Superuser (KernelSU).
Till skillnad från Magisk, bäddar KernelSU in möjligheten att få root i själva kärnan. Här kapar den systemanrop för att lura skalet att tänka /system/bin/su
finns på enheten, när den faktiskt inte gör det. Den kör sedan kommandon som körs med su
som om de vore vanliga kommandon, men med root-privilegier. Denna process kan inte förhindras av SELinux – kärnan kan till och med inaktivera SELinux om den vill – och möjligheten att dölja rotstatus från användarutrymmet, och därför SafetyNet, är nästan obegränsad.
KernelSU är dock långt ifrån komplett. För närvarande finns det ingen åtkomstkontrollmekanism på plats (tänk Magisk Manager). På grund av detta är KernelSU för närvarande mest användbar för kärnutvecklare snarare än användare. Processen att bygga en kärna kräver att utvecklare ständigt bygger om och laddar uppstartsavbildningar för att testa och fixa buggar och funktioner, och att ha root gör detta mycket enklare. Men med root-alternativ som Magisk eller SuperSU måste startavbildningen korrigeras efter varje build för att root ska fungera, vilket avsevärt kan påverka utvecklingsprocessen. KernelSU, å andra sidan, är avsedd att integreras vid byggtid, utan behov av patchning efter bygget. För att göra KernelSU-integration enkel för utvecklare finns ett enkelt enradskommando tillgängligt:
curl -LsS "https://git.zx2c4.com/kernel-assisted-superuser/plain/fetch-and-patch.sh" | bash -
När detta är utfört kan KernelSU byggas in i kärnan som en del av den normala byggprocessen. Det betyder att utvecklare enkelt kan bygga och testa sina kärnor utan att behöva oroa sig för att lägga till root.
Även om KernelSU är i sina tidiga dagar, och det krävs mer arbete för att göra det fullt presenterat, är det ett intressant projekt. Vi pratade med Magisk-skapare, XDA Recognized Developer topjohnwu, om KernelSU, och han fann det också intressant och sa att eftersom KernelSU fungerar på kärnnivå, Magisk Hides funktionalitet skulle vara mycket mer tillförlitlig om den lades till, och att det skulle vara en "rolig sak att genomföra."
Om du är en kärn- eller ROM-utvecklare som är intresserad av KernelSU, kolla in XDA tråd och den projektets hemsida att lära sig mer.