Przegląd jądra

Jądro Androida jest oparte na jądrze Linux Long Term Supported (LTS) . W Google jądra LTS są łączone z poprawkami specyficznymi dla Androida, tworząc tak zwane wspólne jądra Androida (ACK) .

Nowsze pakiety ACK (wersja 5.4 i nowsze) są również znane jako jądra GKI . Jądra GKI obsługują oddzielenie niezależnego od sprzętu ogólnego kodu jądra i modułów GKI od modułów dostawców specyficznych dla sprzętu.

Jądro GKI współdziała z modułami dostawców specyficznymi dla sprzętu, zawierającymi system na chipie (SoC) i kod specyficzny dla płyty głównej. Interakcję między jądrem GKI a modułami dostawcy umożliwia interfejs modułu jądra (KMI), składający się z list symboli identyfikujących funkcje i dane globalne wymagane przez moduły dostawcy. Rysunek 1 przedstawia architekturę jądra GKI i modułu dostawcy:

Architektura GKI
Rysunek 1. Architektura GKI

Glosariusz jądra

Ta sekcja zawiera terminy używane w dokumentacji jądra.

Typy jądra

Wspólne jądro Androida (ACK)
Jądro znajdujące się poniżej jądra LTS i zawierające poprawki interesujące społeczność Androida, które nie zostały włączone do głównych jąder Linuksa ani do jąder z obsługą długoterminową (LTS). Nowsze pakiety ACK (wersja 5.4 i nowsze) są również znane jako jądra GKI, ponieważ obsługują oddzielenie ogólnego kodu jądra niezależnego od sprzętu i modułów GKI niezależnych od sprzętu.
Jądro projektu Android Open Source (AOSP).
Zobacz Wspólne jądro Androida.
Jądro funkcji
Jądro, dla którego gwarantowane jest wdrożenie funkcji wersji platformy. Na przykład w systemie Android 12 dwa jądra funkcji to Android12-5.4 i Android12-5.10. Funkcji Androida 12 nie można przenieść do jądra 4.19; zestaw funkcji byłby podobny do urządzenia, które zostało uruchomione w wersji 4.19 w wersji R i zaktualizowane do wersji S).
ogólne jądro rdzenia
Część jądra GKI , która jest wspólna dla wszystkich urządzeń.
Jądro ogólnego obrazu jądra (GKI).
Dowolne nowsze (5.4 i nowsze) jądro ACK (obecnie tylko aarch64). To jądro składa się z dwóch części: rdzenia jądra GKI z kodem wspólnym dla wszystkich urządzeń oraz modułów GKI opracowanych przez Google, które można dynamicznie ładować na urządzeniach, jeśli ma to zastosowanie.
Jądro interfejsu modułu jądra (KMI).
Zobacz jądro GKI .
Uruchom jądro
Jądro umożliwiające uruchomienie urządzenia dla danej wersji platformy Android. Na przykład w systemie Android 12 prawidłowe jądra uruchamiania to 4.19, 5.4 i 5.10.
Jądro z obsługą długoterminową (LTS).
Jądro systemu Linux obsługiwane przez 2 do 6 lat. Jądra LTS wydawane są raz w roku i stanowią podstawę każdego z ACK Google'a.

Typy oddziałów

Gałąź jądra ACK KMI
Gałąź, dla której budowane są jądra GKI . Na przykład Android12-5.10 i Android13-5.15.
Główna linia Androida
Podstawowa gałąź programistyczna dla funkcji Androida. Kiedy nowe jądro LTS zostanie zadeklarowane wcześniej, odpowiednie nowe jądro GKI zostanie rozgałęzione z głównej linii Androida.
Główna linia Linuksa
Podstawowa gałąź rozwojowa dla jąder Linuksa, w tym jąder LTS.

Inne warunki

Certyfikowany obraz rozruchowy
Jądro dostarczane w formie binarnej ( boot.img ) i flashowane na urządzeniu. Ten obraz jest certyfikowany w tym sensie, że zawiera osadzone certyfikaty, dzięki czemu Google może sprawdzić, czy urządzenie jest dostarczane z certyfikowanym przez Google jądrem.
Dynamicznie ładowany moduł jądra (DLKM)
Moduł, który można dynamicznie ładować podczas uruchamiania urządzenia w zależności od potrzeb urządzenia. Obydwa moduły GKI i dostawcy są typami DLKM. DLKM są wydawane w formie .ko i mogą być sterownikami lub dostarczać inne funkcje jądra.
Projekt GKI
Projekt Google dotyczący fragmentacji jądra poprzez oddzielenie wspólnej podstawowej funkcjonalności jądra od specyficznego dla dostawcy SoC i obsługi płyty w ładowalne moduły.
Ogólny obraz jądra (GKI)
Obraz rozruchowy certyfikowany przez Google, zawierający jądro GKI zbudowane z drzewa źródłowego ACK i nadające się do flashowania na partycję rozruchową urządzenia z systemem Android.
KMI
Interfejs pomiędzy jądrem GKI a modułami dostawcy, umożliwiający aktualizację modułów dostawcy niezależnie od jądra GKI. Interfejs ten składa się z funkcji jądra i danych globalnych, które zostały zidentyfikowane jako zależności od dostawcy/OEM przy użyciu list symboli poszczególnych partnerów.
Moduły GKI
Moduły jądra zbudowane przez Google, które w stosownych przypadkach można dynamicznie ładować na urządzenia. Moduły te są zbudowane jako artefakty jądra GKI i dostarczane wraz z GKI jako archiwum system_dlkm_staging_archive.tar.gz . Moduły GKI są podpisane przez Google przy użyciu pary kluczy czasu kompilacji jądra i są kompatybilne tylko z jądrem GKI, z którego zostały zbudowane.
Moduł dostawcy
Moduł specyficzny dla sprzętu opracowany przez partnera i zawierający funkcje SoC i specyficzne dla urządzenia. Moduł dostawcy to typ dynamicznie ładowanego modułu jądra.

Co dalej?

  • Jeśli dopiero zaczynasz przygodę z tworzeniem jądra Androida, możesz zacząć od przeczytania poniższych informacji:
  • Jeśli jesteś nowy w tworzeniu jądra GKI, zacznij od przeczytania Rozwój GKI .
  • Jeśli używasz jądra w wersji 4.19 lub starszej i szukasz powiązanej dokumentacji, zapoznaj się z sekcją Przegląd poprzednich jąder (<=4.19) .