vilken Android kör vilken Linux-kärna?

Linux-version i AOSP

 Android Version |API Level |Linux Version in AOSP |Header Version ---------------------------------------------------------------------------------------- 1.5 Cupcake |3 |(2.6.27) | 1.6 Donut |4 |(2.6.29) |2.6.18 2.0/1 Eclair |5-7 |(2.6.29) |2.6.18 2.2.x Froyo |8 |(2.6.32) |2.6.18 2.3.x Gingerbread |9, 10 |(2.6.35) |2.6.18 3.x.x Honeycomb |11-13 |(2.6.36) |2.6.18 4.0.x Ice Cream San|14, 15 |(3.0.1) |2.6.18 4.1.x Jelly Bean |16 |(3.0.31) |2.6.18 4.2.x Jelly Bean |17 |(3.4.0) |2.6.18 4.3 Jelly Bean |18 |(3.4.39) |2.6.18 4.4 Kit Kat |19, 20 |(3.10) |2.6.18 5.x Lollipop |21, 22 |(3.16.1) |3.14.0 6.0 Marshmallow |23 |(3.18.10) |3.18.10 7.0 Nougat |24 | 3.18.48 4.4.0 |4.4.1 7.1 Nougat |25 | ? |4.4.1 8.0 Oreo |26 | 3.18.72 4.4.83 4.9.44 |4.10.0 8.1 Oreo |27 | 3.18.70 4.4.88 4.9.56 |4.10.0 9.0 Pie |28 | 4.4.146 4.9.118 4.14.61 |4.15.0 10.0 Q |29 | 4.9.191 4.14.142 4.19.71|5.0.3

tabell sammanställd från:

  • Wikipedia Android-Versionshistorik (inom parentes, kan inte hitta källan)
  • android / kernel / common / Makefile (Linux i AOSP)
  • android / platform / external / kernel-headers / original / uapi / linux / version.h (Linux-rubrikerna som används av Bionic i AOSP)

Obs: andra “distributioner” av Android kan köra olika kärnversioner.

vem som helst är välkommen att korrigera och utöka denna tabell. Vänligen fortsätt formatera.

varför Android OS/kernel version mismatches

OEM tenderar att skicka sina stora Android-uppdateringar med en liknande kärna till den som enheten ursprungligen släpptes med. Detta är mest sannolikt att undvika problem med maskinvaru-och drivrutinskompatibilitet med en nyare kärna. Till exempel kan en enhet som har uppdaterats för att köra Android 8.0 Oreo men som ursprungligen levererades med 6.0 Marshmallow fortfarande köra Linux 3.18.x istället för Linux 4.10.x.

Vendor Test Suite (VTS) krav på Linux-version

Enligt en artikel från 2017 om XDA-Developers (förkortad):

en aspekt som har varit upp till OEM är Linux-kärnversionen men detta förändras med Android Oreo.

så länge OEM kunde klara certifieringstesterna som Google lägger ut, bryr de sig inte om vilken kärnversion som användes i en ny enhet. Detta var i allmänhet inte ett problem eftersom de flesta OEM-tillverkare skulle använda samma version av kärnan för den generationen som andra OEM-tillverkare använde, eftersom den är starkt knuten till vad hårdvarudrivrutinerna stöder. Vissa hade dock fallit genom sprickorna och detta började orsaka säkerhetsproblem. Detta är något som Google har tagit på allvar nyligen så det är vettigt att de skulle vilja börja beordra detta.

Från och med i år med smartphones som levereras med Android Oreo kräver Google att alla SoCs som producerats 2017 måste lanseras med kernel 4.4 eller senare.

befintliga enheter som uppgraderas till Android Oreo krävs bara för att köra kärnversion 3.18 eller senare, och behöver inte uppgraderas för att stödja Project Treble.

enligt https://android.googlesource.com/platform/test/vts-testcase/kernel/ var det ett krav på Linux-versionen, VtsKernelConfigTest eller VtsKernelVersionTest, på 8.0, 8.1 och 9.0, men senare borttagen på 10.0. För 8.0 och 8.1 krävs det att versionen är antingen 3.18, 4.4 eller 4.9. För 9.0 krävs det att versionen är minst 4.4.107, 4.9.84 eller 4.14.42.

Lämna ett svar

Din e-postadress kommer inte publiceras.