Der Android-Kernel basiert auf einem Upstream, Linux Long Term Supported (LTS)-Kernel Bei Google: Langzeitsupport werden mit Android-spezifischen Patches zu einer sogenannten Common Kernel (ACKs) von Android.
Neuere ACKs (Version 5.4 und höher) werden auch als GKI-Kernel bezeichnet. GKI-Kernels unterstützen die Trennung des hardwareunabhängigen generischen Kern-Kernel-Codes und GKI-Module aus dem hardwarespezifisch Anbietermodule.
Der GKI-Kernel interagiert mit hardwarespezifischen Anbietermodule, die das System auf einen Chip (SoC) und einen boardspezifischen Code. Die Interaktion zwischen dem GKI-Kernel und den Anbietermodulen ist durch das Kernel Module Interface (KMI) aktiviert wurde, bestehend aus Symbollisten, die den Funktionen und globalen Daten, die von Anbietermodulen benötigt werden. Abbildung 1 zeigt den GKI-Kernel und -Anbieter. Modularchitektur:
Kernel-Glossar
Dieser Abschnitt enthält Begriffe, die in der Kernel-Dokumentation verwendet werden.
Kerneltypen
- Android Common Kernel (ACK)
- Ein Kernel, der einem LTS-Kernel nachgeschaltet ist und für Android relevante Patches enthält Community, die noch nicht mit Linux Mainline-Kernel oder LTS-Kerneln zusammengeführt wurden. Neuere ACKs (Version 5.4 und höher) werden auch als GKI-Kernel bezeichnet, da sie die Trennung des hardware-unabhängigen generischen Kernel-Codes und hardware-unabhängigen GKI-Modulen.
- Android Open Source Project (AOSP)-Kernel
- Weitere Informationen finden Sie unter Android Common Kernel.
- Feature-Kernel
- Ein Kernel, für den die Plattform-Releasefunktionen garantiert implementiert werden. Für In Android 12 waren die beiden Feature-Kernels android12-5.4 und android12-5.10. Android 12-Funktionen können nicht zu 4.19-Kernels zurückportiert werden. wären die Funktionen ähnlich, auf einem Gerät, das mit Android 11 mit Version 4.19 auf den Markt gebracht und auf Android 12 aktualisiert wurde.
- generischer Core Kernel
- Der Teil des GKI-Kernels, der auf allen Geräten gemeinsam ist.
- Generischer Kernel Image-Kernel (GKI)
- Alle neueren ACK-Kernel (5.4 und höher) (derzeit nur aarch64) Dieses Der Kernel besteht aus zwei Teilen: dem zentralen GKI-Kernel mit gemeinsamem Code für alle Geräte und GKI-Modulen. die von Google entwickelt wurden und gegebenenfalls dynamisch auf Geräte geladen werden können.
- KMI-Kernel (Kernel Module Interface)
- Weitere Informationen finden Sie unter GKI-Kernel.
- Kernel starten
- Ein Kernel, der zum Starten eines Geräts für einen bestimmten Android-Plattformrelease gültig ist. Für In Android 12 waren die gültigen Start-Kernels 4.19, 5.4 und 5.10.
- LTS-Kernel (Long Term Supported)
- Ein Linux-Kernel, der 2 bis 6 Jahre lang unterstützt wird. Langzeitsupport Kernel werden einmal pro Jahr veröffentlicht und bilden die Grundlage für Bestätigungen von Google.
Zweigtypen
- ACK KMI-Kernel-Branch
- Der Zweig, für den GKI-Kernel erstellt werden. Beispiel: android12-5.10 und android13-5.15.
- Android-Hauptversion
- Der primäre Entwicklungszweig für Android-Funktionen. Wenn eine neue LTS Kernel vorgelagert ist, ist der entsprechende neue GKI-Kernel von Android-Mainline.
- Linux Mainline
- Der primäre Entwicklungszweig für die Upstream-Linux-Kernel, einschließlich LTS-Kernels.
Sonstige Begriffe
- Zertifiziertes Boot-Image
- Der Kernel wird in Binärform (
boot.img
) bereitgestellt und auf das Gerät geflasht. Dieses Bild ist insofern zertifiziert, als es eingebettete Zertifikate enthält, damit Google Prüfen, ob das Gerät mit einem von Google zertifizierten Kernel ausgeliefert wird - Dynamicly Loadable Kernel Module (DLKM)
- Ein Modul, das während des Gerätestarts je nach den Anforderungen des
. GKI und Anbietermodule sind beides Arten von DLKMs. DLKMs werden in
.ko
veröffentlicht und können Treiber sein oder andere Kernel-Funktionen liefern. - GKI-Projekt
- Ein Google-Projekt, das die Kernel-Fragmentierung durch Trennung des gemeinsamen Kern-Kernels behebt von anbieterspezifischen SoC- und Board-Unterstützungen in ladbare Module.
- Generisches Kernel-Image (GKI)
- Ein von Google zertifiziertes Boot-Image, das einen GKI-Kernel enthält, der aus eine ACK-Quellstruktur. Sie kann in die Bootpartition von auf einem Android-Gerät.
- KMI
- Eine Schnittstelle zwischen dem GKI-Kernel und Anbietermodulen, die es dem Anbieter ermöglicht, Module, die unabhängig vom GKI-Kernel aktualisiert werden sollen. Diese Schnittstelle besteht aus einem Kernel Funktionen und globale Daten, die mithilfe von Symbollisten pro Partner.
- GKI-Module
- Von Google erstellte Kernelmodule, die gegebenenfalls dynamisch auf Geräte geladen werden können.
Diese Module werden als Artefakte des GKI-Kernels erstellt und bereitgestellt
zusammen mit GKI als
system_dlkm_staging_archive.tar.gz
-Archiv. GKI-Module werden von Google mit dem Kernel-Build-Zeitschlüssel signiert und sind nur mit der GKI kompatibel. Kernel, mit dem sie erstellt wurden. - Modul „Anbieter“
- Ein von einem Partner entwickeltes hardwarespezifisches Modul, das SoC- und gerätespezifische Funktionalität. Ein Anbietermodul ist eine Art von dynamisch ladbarem Kernelmodul.
Wie geht es weiter?
- Wenn Sie mit der Android-Kernel-Entwicklung noch nicht vertraut sind, sollten Sie zunächst den Folgendes:
- Langfristige stabile Kernel – Hintergrundinformationen zu vorgelagerten LTS-Kerneln, die ACKs speisen.
- Gemeinsame Android-Kernel Hintergrund zu Bestätigungen.
- Wenn Sie die GKI-Kernel-Entwicklung noch nicht kennen, lesen Sie GKI-Entwicklung
- Wenn Sie eine Kernel-Version von 4.19 oder älter verwenden und die zugehörige Dokumentation suchen, finden Sie in den vorherigen Übersicht über Kernel (<=4.19).