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:

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:
- Długoterminowe stabilne jądra — informacje o jądrach LTS nadrzędnych, które zasilają potwierdzenia ACK.
- Wspólne jądra Androida — tło na potwierdzeniach ACK.
- 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) .