På den forløbne Linux Plumbers 2021-konference præsenterede Google succeserne i initiativet om at overføre Android-platformen til at anvende et standard Linux-kernel i stedet for deres egen variant, der inkluderede platformspecifikke ændringer.
Det mest betydningsfulde ændring i udviklingen var beslutningen om at skifte til en «Upstream First»-model efter 2023, som indebærer, at alle nye funktioner i kernlen, der er nødvendige for Android-platformen, skal udvikles direkte i den primære Linux-kernel og ikke i separate grene (funktionalitet vil først blive fremmet i den primære kernel, og dernæst anvendt i Android og ikke omvendt). I 2023 og 2024 er der også planlagt at overføre alle ekstra patches, der forbliver i Android Common Kernel, til den primære kernel.
Hvad angår den nærmeste fremtid, vil der til den forventede Android 12-platform i begyndelsen af oktober blive tilbudt samlinger af «Generic Kernel Image» (GKI), der i videst muligt omfang er tæt på standardkernel 5.10. For disse samlinger vil regelmæssige opdateringer blive udgivet, som vil blive placeret i ci.android.com-repositoriet. I GKI-kernlen er platformspecifikke tilføjelser samt hardwareunderstøttende håndterere fra OEM-producenter blevet flyttet til separate kernelmoduler. Disse moduler er ikke bundet til versionen af den primære kernel og kan udvikles uafhængigt, hvilket væsentligt forenkler vedligeholdelsen og overgangen af enheder til nye kernelgrene.

De nødvendige grænseflader for enhedsproducenter er implementeret i form af hooks, der tillader ændring af kernelens adfærd uden ændringer i koden. I alt er der i android12-5.10-kernlen tilbudt 194 almindelige hooks, svarende til tracepoints, og 107 specialiserede hooks, der gør det muligt at udføre håndterere i en ikke-atomar kontekst. I GKI-kernlen er det for hardwareproducenter forbudt at anvende specifikke patches på den primære kernel, og komponenter til hardwareunderstøttelse skal kun leveres af leverandørerne i form af ekstra kernelmoduler, hvor der skal sikres kompatibilitet med den primære kernel.
Vi minder om, at Android-platformen udvikler sin egen gren af kernen - Android Common Kernel, som danner grundlag for separate specifikke builds til hver enhed. I hver gren af Android får producenterne forskellige muligheder for kernesammensætning til deres enheder. For eksempel blev der i Android 11 tilbudt tre basiskerner - 4.14, 4.19 og 5.4, og til Android 12 vil basiskernerne 4.19, 5.4 og 5.10 blive tilbudt. Variant 5.10 er designet som Generic Kernel Image, hvor de nødvendige funktioner for OEM-producenterne er overført til upstream, udskilt i moduler eller integreret i Android Common Kernel.
Før GKI blev kernen til Android forberedt i flere faser:
- Baseret på de primære LTS-kerner (3.18, 4.4, 4.9, 4.14, 4.19, 5.4) blev der oprettet en gren kaldet 'Android Common Kernel', hvor specifikke Android patches blev overført (tidligere nåede ændringsstørrelsen op på flere millioner linjer).
- På basis af 'Android Common Kernel' dannede chipproducenter som Qualcomm, Samsung og MediaTek 'SoC Kernel', som inkluderede tilføjelser til hardwareunderstøttelse.
- Baseret på «SoC Kernel» har enhedsproducenter skabt «Device Kernel», der inkluderer ændringer relateret til understøttelse af ekstra hardware, skærme, kameraer, lydsystemer mv.
En sådan tilgang gjorde det betydeligt sværere at implementere opdateringer for at rette sikkerhedssårbarheder og skifte til nye kernegrene. Selvom Google regelmæssigt udsender opdateringer til sine Android-kerner (Android Common Kernel), har leverandører ofte ikke hastet med at levere disse opdateringer eller bruger helt enkelt én kerne gennem hele enhedens livscyklus.

Kilde: opennet.ru
