Google zal verder gaan met het ontwikkelen van innovaties voor Android in de belangrijkste Linux-kernel

Op de Linux Plumbers 2021-conferentie sprak Google over het succes van zijn initiatief om het Android-platform over te zetten naar een gewone Linux-kernel in plaats van zijn eigen versie van de kernel te gebruiken, die wijzigingen bevat die specifiek zijn voor het Android-platform.

De belangrijkste verandering in de ontwikkeling was de beslissing om na 2023 over te stappen op het “Upstream First”-model, wat de ontwikkeling impliceert van alle nieuwe kernelfuncties die nodig zijn op het Android-platform, rechtstreeks in de belangrijkste Linux-kernel, en niet in hun eigen afzonderlijke takken ( functionaliteit wordt eerst gepromoveerd naar de hoofdkernel en vervolgens gebruikt in Android, en niet andersom). De overdracht van alle resterende patches in de Android Common Kernel-tak naar de hoofdkernel is ook gepland voor 2023 en 2024.

Wat de nabije toekomst betreft, zullen voor het Android 12-platform dat begin oktober wordt verwacht, “Generic Kernel Image” (GKI) kernelassemblages worden aangeboden, die zo dicht mogelijk bij de reguliere 5.10-kernel liggen. Voor deze builds worden regelmatig updates uitgebracht, die in de ci.android.com-repository worden geplaatst. In de GKI-kernel worden Android-platformspecifieke toevoegingen, evenals hardware-ondersteuningsgerelateerde handlers van OEM's, in afzonderlijke kernelmodules geplaatst. Deze modules zijn niet gebonden aan de versie van de hoofdkernel en kunnen afzonderlijk worden ontwikkeld, wat het onderhoud en de overgang van apparaten naar nieuwe kernelvertakkingen aanzienlijk vereenvoudigt.

Google zal verder gaan met het ontwikkelen van innovaties voor Android in de belangrijkste Linux-kernel

De interfaces die fabrikanten van apparaten nodig hebben, zijn geïmplementeerd in de vorm van hooks, waarmee je het gedrag van de kernel kunt veranderen zonder wijzigingen in de code aan te brengen. In totaal biedt de android12-5.10-kernel 194 reguliere hooks, vergelijkbaar met tracepoints, en 107 gespecialiseerde hooks waarmee je handlers in een niet-atomaire context kunt uitvoeren. In de GKI-kernel is het hardwarefabrikanten verboden specifieke patches op de hoofdkernel toe te passen, en hardware-ondersteuningscomponenten mogen door leveranciers alleen worden geleverd in de vorm van aanvullende kernelmodules, die compatibiliteit met de hoofdkernel moeten garanderen.

Laten we niet vergeten dat het Android-platform zijn eigen kerneltak ontwikkelt: de Android Common Kernel, op basis waarvan voor elk apparaat afzonderlijke specifieke samenstellingen worden gevormd. Elke tak van Android biedt fabrikanten verschillende opties voor de kernellay-out voor hun apparaten. Android 11 bood bijvoorbeeld de keuze uit drie basiskernels: 4.14, 4.19 en 5.4, en Android 12 biedt basiskernels 4.19, 5.4 en 5.10. Optie 5.10 is ontworpen als een Generic Kernel Image, waarin de mogelijkheden die nodig zijn voor OEM's worden overgedragen naar upstream, in modules worden geplaatst of worden overgedragen naar de Android Common Kernel.

Vóór de komst van GKI doorliep de Android-kernel verschillende voorbereidingsfasen:

  • Gebaseerd op de belangrijkste LTS-kernels (3.18, 4.4, 4.9, 4.14, 4.19, 5.4), werd een tak van de "Android Common Kernel" gecreëerd, waarin Android-specifieke patches werden overgebracht (voorheen bereikte de omvang van de wijzigingen enkele miljoenen regels ).
  • Gebaseerd op de "Android Common Kernel", vormden chipmakers zoals Qualcomm, Samsung en MediaTek de "SoC Kernel" met add-ons om de hardware te ondersteunen.
  • Op basis van de SoC Kernel hebben apparaatfabrikanten de Device Kernel gemaakt, die wijzigingen bevatte met betrekking tot ondersteuning voor extra apparatuur, schermen, camera's, geluidssystemen, enz.

Deze aanpak bemoeilijkte de implementatie van updates om kwetsbaarheden te elimineren en de overgang naar nieuwe kernelvertakkingen aanzienlijk. Hoewel Google regelmatig updates uitbrengt voor zijn Android-kernels (Android Common Kernel), zijn leveranciers vaak traag met het leveren van deze updates of gebruiken ze over het algemeen dezelfde kernel gedurende de gehele levenscyclus van een apparaat.



Bron: opennet.ru

Voeg een reactie