Superuser asistovaný jadrom (KernelSU)

Na rozdiel od Magisk, KernelSU vkladá schopnosť získať root do samotného jadra. Oklame shell, aby si myslel, že /system/bin/su existuje na zariadení.

Root je pre nás v XDA veľmi špeciálny. Umožňuje používateľom prevziať kontrolu nad svojimi zariadeniami a pridať funkcie, ktoré nie sú vždy dostupné, ako je nahrávanie hovorov, témy a pokročilé monitorovanie batérie. V priebehu rokov sa vyskytlo niekoľko koreňových implementácií, pričom najpopulárnejšia je pravdepodobne SuperSU. Nedávno sa však so zavedením SafetyNet a rastúcimi obmedzeniami na zakorenené zariadenia stal Magisk koreňovou implementáciou funkcia Magisk Hide umožňuje používateľom efektívne skryť skutočnosť, že majú root z aplikácií, ako sú Netflix a Google zaplatiť. Implementácia a funkčnosť Magisk Hide je však do značnej miery hra na mačku a myš, keď ju Google opraví a Magisk túto opravu vyrieši.

Magisk beží v tom, čo je známe ako užívateľský priestor. To je tiež miesto, kde beží väčšina programov vo vašom telefóne, či už ide o hry, hudobné prehrávače alebo sledovače fitness. Je to používateľsky orientovaný „priestor“ operačného systému zariadenia. Používateľský priestor je tiež miestom, kde sa odohráva väčšina bitky o Magisk Hide. Bohužiaľ, ako čas plynie a Google opravuje stále viac a viac metód Magisk Hide, zostáva stále menej a menej miesta na skrytie. V budúcnosti by Magisk mohol stratiť schopnosť úplne skryť root.

Plánovanie pre túto možnosť, uznávaný vývojár XDA zx2c4 (Jason Donenfeld), známy tu na XDA jeho práca na WireGuard a objav a Zraniteľnosť zavádzača OnePlus, vytvoril Superuser s asistenciou jadra (KernelSU).

Na rozdiel od Magisk, KernelSU vkladá schopnosť získať root do samotného jadra. Tu unesie systémové volania, aby oklamal shell, aby premýšľal /system/bin/su existuje v zariadení, hoci v skutočnosti neexistuje. Potom vykoná príkazy spustené pomocou su ako keby to boli normálne príkazy, ale s oprávneniami root. Tomuto procesu nemôže SELinux zabrániť – jadro môže dokonca vypnúť SELinux, ak chce – a schopnosť skryť stav root pred užívateľským priestorom, a teda SafetyNet, je takmer neobmedzená.

KernelSU však nie je ani zďaleka dokončené. V súčasnosti neexistuje žiadny mechanizmus kontroly prístupu (napríklad Magisk Manager). Z tohto dôvodu je KernelSU v súčasnosti najužitočnejšie skôr pre vývojárov jadra ako pre používateľov. Proces vytvárania jadra vyžaduje, aby vývojári neustále prestavovali a načítali bootovacie obrazy, aby testovali a opravovali chyby a funkcie, a mať root to veľmi uľahčuje. Avšak pri možnostiach root, ako je Magisk alebo SuperSU, musí byť bootovací obraz opravený po každom zostavení, aby root fungoval, čo môže výrazne ovplyvniť proces vývoja. KernelSU, na druhej strane, má byť integrované v čase zostavovania bez potreby záplatovania po zostavení. Aby bola integrácia KernelSU pre vývojárov jednoduchá, je k dispozícii jednoduchý jednoriadkový príkaz:

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

Akonáhle je toto vykonané, KernelSU môže byť zabudované do jadra ako súčasť normálneho procesu zostavovania. To znamená, že vývojári môžu ľahko zostavovať a testovať svoje jadrá bez toho, aby sa museli obávať pridávania rootov.

Hoci je KernelSU v začiatkoch a je potrebné viac práce, aby bolo plne funkčné, je to zaujímavý projekt. Hovorili sme s Magisk-tvorca, uznávaný vývojár XDA topjohnwu, o KernelSU a tiež to považoval za zaujímavé, keď povedal, že keďže KernelSU funguje na úrovni jadra, Funkcionalita Magisk Hide by bola oveľa spoľahlivejšia, keby sa pridala, a bola by to „zábavná vec implementovať."

Ak ste vývojár jadra alebo ROM a zaujímate sa o KernelSU, pozrite si XDA vlákno a domovskej stránke projektu naučiť sa viac.