Superużytkownik wspomagany przez jądro (KernelSU)

W przeciwieństwie do Magisk, KernelSU osadza możliwość uzyskania roota w samym jądrze. Oszukuje powłokę, aby pomyślała, że ​​/system/bin/su istnieje na urządzeniu.

Root jest dla nas czymś wyjątkowym w XDA. Pozwala użytkownikom przejąć kontrolę nad swoimi urządzeniami i dodawać funkcje, które nie zawsze są dostępne, takie jak nagrywanie rozmów, motywy i zaawansowane monitorowanie baterii. Na przestrzeni lat wprowadzono kilka implementacji root, z których najpopularniejszą jest prawdopodobnie SuperSU. Jednak ostatnio, wraz z wprowadzeniem SafetyNet i rosnącymi ograniczeniami dla zrootowanych urządzeń, Magisk stał się implementacją root z wyboru, ponieważ funkcja Magisk Hide pozwala użytkownikom skutecznie ukryć fakt, że mają root przed aplikacjami takimi jak Netflix i Google Płacić. Jednak implementacja i funkcjonalność Magisk Hide to w dużej mierze gra w kotka i myszkę, w której Google łata go, a Magisk pracuje nad tą łatką.

Magisk działa w tak zwanej przestrzeni użytkownika. W tym miejscu działa także większość programów w telefonie, niezależnie od tego, czy są to gry, odtwarzacze muzyki czy monitory kondycji. To skierowana do użytkownika „przestrzeń” systemu operacyjnego urządzenia. Przestrzeń użytkownika to także miejsce, w którym toczy się większość bitew o Magisk Hide. Niestety, w miarę upływu czasu, a Google łata coraz więcej metod Magisk Hide, pozostaje coraz mniej miejsca do ukrycia. W przyszłości Magisk może utracić możliwość całkowitego ukrywania rootowania.

Planuj taką ewentualność, Uznany Programista XDA zx2c4 (Jason Donenfeld), znany tutaj na XDA z jego praca nad WireGuardem i odkrycie A Luka w programie ładującym OnePlus, stworzył Superużytkownik wspomagany przez jądro (JądroSU).

W przeciwieństwie do Magisk, KernelSU osadza możliwość uzyskania roota w samym jądrze. W tym przypadku przechwytuje wywołania systemowe, aby oszukać powłokę, aby zaczęła myśleć /system/bin/su istnieje na urządzeniu, choć tak naprawdę go nie ma. Następnie wykonuje polecenia uruchamiane za pomocą su tak, jakby były to zwykłe polecenia, ale z uprawnieniami roota. SELinux nie może zapobiec temu procesowi — jądro może nawet wyłączyć SELinux, jeśli chce — a możliwość ukrycia statusu roota przed przestrzenią użytkownika, a tym samym SafetyNet, jest prawie nieograniczona.

KernelSU nie jest jednak jeszcze ukończony. W tej chwili nie ma mechanizmu kontroli dostępu (pomyśl o Magisk Managerze). Z tego powodu KernelSU jest obecnie najbardziej pomocny dla twórców jądra, a nie dla użytkowników. Proces budowania jądra wymaga od programistów ciągłego przebudowywania i ładowania obrazów startowych w celu testowania i naprawiania błędów i funkcji, a posiadanie roota znacznie to ułatwia. Jednak w przypadku opcji root, takich jak Magisk lub SuperSU, obraz rozruchowy musi zostać poprawiony po każdej kompilacji, aby root mógł działać, co może znacząco wpłynąć na proces programowania. Z drugiej strony KernelSU ma być integrowany w czasie kompilacji, bez konieczności instalowania poprawek po kompilacji. Aby ułatwić programistom integrację z KernelSU, dostępne jest proste jednowierszowe polecenie:

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

Po wykonaniu tej czynności KernelSU można wbudować w jądro w ramach normalnego procesu kompilacji. Oznacza to, że programiści mogą łatwo budować i testować swoje jądra, bez konieczności martwienia się o dodanie roota.

Chociaż KernelSU jest na wczesnym etapie rozwoju i potrzeba więcej pracy, aby był w pełni funkcjonalny, jest to interesujący projekt. Rozmawialiśmy z Magisk-twórca, uznany programista XDA topjohnwu, o KernelSU i również uznał to za interesujące, mówiąc, że ponieważ KernelSU działa na poziomie jądra, Funkcjonalność Magisk Hide byłaby znacznie bardziej niezawodna, gdyby została dodana i byłaby „zabawną rzeczą”. wprowadzić w życie."

Jeśli jesteś programistą jądra lub ROM-u zainteresowanym KernelSU, sprawdź wątek XDA i strona główna projektu uczyć się więcej.