Na rozdíl od Magisku, KernelSU vkládá schopnost získat root do samotného jádra. Přiměje shell, aby si myslel, že /system/bin/su na zařízení existuje.
Root je pro nás v XDA velmi speciální. Umožňuje uživatelům převzít kontrolu nad svými zařízeními a přidat funkce, které nejsou vždy dostupné, jako je nahrávání hovorů, témata a pokročilé monitorování baterie. V průběhu let došlo k několika implementacím root, přičemž nejpopulárnější je pravděpodobně SuperSU. V poslední době, se zavedením SafetyNet a zvyšujícími se omezeními na zakořeněná zařízení, byl Magisk kořenovou implementací funkce Magisk Hide umožňuje uživatelům efektivně skrýt skutečnost, že mají root z aplikací jako Netflix a Google. Platit. Implementace a funkčnost Magisk Hide je však do značné míry hra na kočku a myš, kdy ji Google opravuje a Magisk tuto opravu řeší.
Magisk běží v tom, co je známé jako uživatelský prostor. Zde také běží většina programů v telefonu, ať už jde o hry, hudební přehrávače nebo sledovače fitness. Je to uživatelsky orientovaný „prostor“ operačního systému zařízení. Uživatelský prostor je také místem, kde se odehrává většina bitvy o Magisk Hide. Bohužel, jak čas plyne a Google opravuje stále více metod Magisk Hide, zbývá stále méně a méně místa na skrytí. V budoucnu by Magisk mohl ztratit schopnost úplně skrýt root.
Plánování pro tuto eventualitu, XDA Recognized Developer zx2c4 (Jason Donenfeld), známý zde na XDA jeho práce na WireGuard a objev a Chyba zabezpečení zavaděče OnePlus, vytvořil Superuživatel s asistencí jádra (KernelSU).
Na rozdíl od Magisku, KernelSU vkládá schopnost získat root do samotného jádra. Zde unese systémová volání, aby přiměl shell k přemýšlení /system/bin/su
existuje v zařízení, i když ve skutečnosti neexistuje. Poté provede příkazy run with su
jako by to byly normální příkazy, ale s právy roota. Tomuto procesu nemůže SELinux zabránit – jádro může SELinux dokonce zakázat, pokud chce – a schopnost skrýt stav roota před uživatelským prostorem, a tedy SafetyNet, je téměř neomezená.
KernelSU však není zdaleka kompletní. V tuto chvíli neexistuje žádný mechanismus kontroly přístupu (myslím Magisk Manager). Z tohoto důvodu je KernelSU v současnosti nejužitečnější spíše pro vývojáře jádra než pro uživatele. Proces vytváření jádra vyžaduje, aby vývojáři neustále přestavovali a načítali zaváděcí obrazy, aby testovali a opravovali chyby a funkce, a mít root to velmi usnadňuje. Nicméně s možnostmi root, jako je Magisk nebo SuperSU, musí být spouštěcí obraz po každém sestavení opraven, aby root fungoval, což může významně ovlivnit proces vývoje. Na druhou stranu KernelSU má být integrováno v době sestavení, bez nutnosti záplatování po sestavení. Aby byla integrace KernelSU pro vývojáře snadná, je k dispozici jednoduchý jednořádkový příkaz:
curl -LsS "https://git.zx2c4.com/kernel-assisted-superuser/plain/fetch-and-patch.sh" | bash -
Jakmile je toto provedeno, lze KernelSU zabudovat do jádra jako součást normálního procesu sestavení. To znamená, že vývojáři mohou snadno sestavovat a testovat svá jádra, aniž by se museli starat o přidávání roota.
Přestože je KernelSU na počátku a je potřeba více práce, aby bylo plně funkční, je to zajímavý projekt. Mluvili jsme s Magisk-tvůrce, XDA uznávaný vývojář topjohnwu, o KernelSU, a také to považoval za zajímavé, když řekl, že jelikož KernelSU funguje na úrovni jádra, Funkce Magisk Hide by byla mnohem spolehlivější, kdyby byla přidána, a byla by to „zábavná věc nářadí."
Pokud jste vývojář jádra nebo ROM a zajímáte se o KernelSU, podívejte se na XDA vlákno a domovskou stránku projektu dozvědět se více.