På Linux Plumbers 2021-konferencen talte Google om succesen med sit initiativ til at omstille Android-platformen til at bruge en almindelig Linux-kerne i stedet for at bruge sin egen version af kernen, som inkluderer ændringer, der er specifikke for Android-platformen.
Den vigtigste ændring i udviklingen var beslutningen om at skifte efter 2023 til "Upstream First"-modellen, som indebærer udvikling af alle nye kernefunktioner, der er nødvendige i Android-platformen direkte i Linux-hovedkernen og ikke i deres egne separate grene ( funktionalitet vil først blive forfremmet til den primære kerne), og derefter brugt i Android og ikke omvendt). Det er også planlagt at overføre alle yderligere patches, der er tilbage i Android Common Kernel-grenen, til hovedkernen i 2023 og 2024.
Hvad angår den nærmeste fremtid, for Android 12-platformen, der forventes i begyndelsen af oktober, vil "Generic Kernel Image" (GKI)-kernesamlinger blive tilbudt, så tæt som muligt på den almindelige 5.10-kerne. Til disse builds vil der blive leveret regelmæssige udgivelser af opdateringer, som vil blive offentliggjort i ci.android.com-lageret. I GKI-kernen er Android-platformspecifikke tilføjelser samt hardwaresupport-relaterede handlere fra OEM'er placeret i separate kernemoduler. Disse moduler er ikke bundet til versionen af hovedkernen og kan udvikles separat, hvilket i høj grad forenkler vedligeholdelsen og overgangen af enheder til nye kernegrene.
De grænseflader, der kræves af enhedsproducenter, er implementeret i form af hooks, som giver dig mulighed for at ændre kernens adfærd uden at foretage ændringer i koden. I alt tilbyder android12-5.10 kernen 194 almindelige hooks, der ligner sporpunkter, og 107 specialiserede hooks, der giver dig mulighed for at køre handlere i en ikke-atomisk sammenhæng. I GKI-kernen er hardwareproducenter forbudt at anvende specifikke patches til hovedkernen, og hardwaresupportkomponenter må kun leveres af leverandører i form af yderligere kernemoduler, som skal sikre kompatibilitet med hovedkernen.
Lad os huske på, at Android-platformen udvikler sin egen kernegren - Android Common Kernel, på grundlag af hvilken separate specifikke samlinger dannes for hver enhed. Hver gren af Android giver producenterne flere muligheder for kernelayout til deres enheder. For eksempel tilbød Android 11 et valg mellem tre grundlæggende kerner - 4.14, 4.19 og 5.4, og Android 12 vil tilbyde grundlæggende kerner 4.19, 5.4 og 5.10. Mulighed 5.10 er designet som et generisk kernebillede, hvor de nødvendige muligheder for OEM'er overføres til upstream, placeres i moduler eller overføres til Android Common Kernel.
Før fremkomsten af GKI gennemgik Android-kernen flere forberedelsestrin:
- Baseret på de vigtigste LTS-kerner (3.18, 4.4, 4.9, 4.14, 4.19, 5.4) blev der oprettet en gren af "Android Common Kernel", hvor Android-specifikke patches blev overført (tidligere nåede størrelsen af ændringer flere millioner linjer ).
- Baseret på "Android Common Kernel" dannede chipproducenter som Qualcomm, Samsung og MediaTek "SoC Kernel", der inkluderede tilføjelser til at understøtte hardwaren.
- Baseret på SoC Kernelen skabte enhedsproducenterne Enhedskernen, som omfattede ændringer relateret til understøttelse af ekstra udstyr, skærme, kameraer, lydsystemer osv.
Denne tilgang komplicerede betydeligt implementeringen af opdateringer for at eliminere sårbarheder og overgangen til nye kernegrene. Selvom Google regelmæssigt udgiver opdateringer til sine Android-kerner (Android Common Kernel), er leverandører ofte langsomme til at levere disse opdateringer eller bruger generelt den samme kerne gennem hele enhedens livscyklus.
Kilde: opennet.ru