Auf der vergangenen Konferenz Linux Plumbers 2021 sprach Google ĂŒber die Erfolge der Initiative zur Umstellung der Android-Plattform auf einen regulĂ€ren Linux-Kernel anstelle seiner eigenen Kernel-Variante, die plattformspezifische Ănderungen beinhaltete.
Die bedeutendste Ănderung in der Entwicklung war die Entscheidung, nach 2023 auf das Modell âUpstream Firstâ umzusteigen, das vorsieht, dass alle neuen Möglichkeiten des Kernels, die fĂŒr die Android-Plattform erforderlich sind, direkt im Hauptkern von Linux entwickelt werden und nicht in eigenen Zweigen (Funktionen werden zunĂ€chst im Hauptkern vorangetrieben und anschlieĂend in Android verwendet, und nicht umgekehrt). FĂŒr 2023 und 2024 ist auĂerdem die Ăbertragung aller zusĂ€tzlichen Patches, die im Android Common Kernel verbleiben, in den Hauptkernel geplant.
Was die nĂ€chsten Entwicklungen betrifft, so werden fĂŒr die im frĂŒhen Oktober erwartete Plattform Android 12 Kernel-Bauten des âGeneric Kernel Imageâ (GKI) angeboten, die so nah wie möglich am regulĂ€ren Kernel 5.10 sind. FĂŒr diese Builds wird es regelmĂ€Ăige Aktualisierungen geben, die im Repository ci.android.com bereitgestellt werden. Im GKI-Kernel sind plattformspezifische ErgĂ€nzungen fĂŒr Android sowie Hardware-Support-Handler von OEM-Herstellern in separate Kernel-Module ausgelagert. Diese Module sind nicht an die Version des Hauptkerns gebunden und können unabhĂ€ngig weiterentwickelt werden, was die Wartung und den Ăbergang der GerĂ€te auf neue Kernel-Zweige erheblich vereinfacht.

Die fĂŒr GerĂ€tehersteller erforderlichen Schnittstellen werden in Form von Hooks implementiert, die es ermöglichen, das Verhalten des Kernels zu Ă€ndern, ohne Ănderungen am Code vorzunehmen. Insgesamt bietet der Kernel android12-5.10 194 regulĂ€re Hooks, die den Tracepoints Ă€hnlich sind, und 107 spezialisierte Hooks, die die AusfĂŒhrung von Handlern im nicht-atomaren Kontext ermöglichen. Im GKI-Kernel ist es Hardware-Herstellern untersagt, plattformspezifische Patches auf den Hauptkernel anzuwenden, und Komponenten zur UnterstĂŒtzung von Hardware mĂŒssen von den Anbietern ausschlieĂlich in Form von zusĂ€tzlichen Kernel-Modulen bereitgestellt werden, die unbedingt mit dem Hauptkernel kompatibel sein mĂŒssen.
Wir erinnern daran, dass in der Android-Plattform ein eigener Kernel-Zweig - Android Common Kernel - entwickelt wird, auf dessen Basis fĂŒr jedes GerĂ€t spezifische Builds erstellt werden. In jedem Android-Zweig stehen den Herstellern mehrere Varianten von Kernkonfigurationen fĂŒr ihre GerĂ€te zur VerfĂŒgung. Beispielsweise wurden in Android 11 insgesamt drei Basis-Kernel - 4.14, 4.19 und 5.4 - zur Auswahl angeboten, wĂ€hrend fĂŒr Android 12 die Basis-Kernel 4.19, 5.4 und 5.10 bereitgestellt werden. Die Variante 5.10 ist als Generic Kernel Image gestaltet, wobei die fĂŒr OEM-Hersteller erforderlichen Funktionen in das Upstream ĂŒberfĂŒhrt, in Module ausgelagert oder in den Android Common Kernel integriert wurden.
Vor der EinfĂŒhrung von GKI durchlief der Kernel fĂŒr Android mehrere Vorbereitungsphasen:
- Auf Basis der Haupt-LTS-Kernel (3.18, 4.4, 4.9, 4.14, 4.19, 5.4) wurde ein Fork namens 'Android Common Kernel' erstellt, in den Android-spezifische Patches integriert wurden (die zuvor mehrere Millionen Zeilen Ănderungen umfassten).
- Auf Basis des 'Android Common Kernel' formten Chip-Hersteller wie Qualcomm, Samsung und MediaTek den 'SoC Kernel', der ErgĂ€nzungen zur UnterstĂŒtzung von Hardware enthielt.
- Auf Basis des 'SoC Kernel' erstellten GerĂ€tehersteller den 'Device Kernel', der Ănderungen zur UnterstĂŒtzung zusĂ€tzlicher Hardware, Bildschirme, Kameras, Soundsysteme usw. beinhaltet.
Ein solcher Ansatz erschwerte wesentlich die Bereitstellung von Sicherheitsupdates und den Wechsel auf neue Kernel-Zweige. Trotz der Tatsache, dass Google regelmĂ€Ăig Updates seiner Android-Kernel (Android Common Kernel) herausbringt, zögern Anbieter oft, diese Updates bereitzustellen, oder nutzen im gesamten Lebenszyklus des GerĂ€ts ein einziges Kernel.

Quelle: opennet.ru
