Który system Android obsługuje jądro Linuksa?

Odpowiedzi:

57

Wersja Linux w 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

Tabela skompilowana z:

Uwaga: inne „dystrybucje” Androida mogą działać w różnych wersjach jądra.

Każdy może poprawić i rozwinąć tę tabelę. Kontynuuj formatowanie.

Dlaczego system operacyjny Android / wersja jądra jest niezgodna

Producenci OEM zwykle wysyłają swoje główne aktualizacje Androida z podobnym jądrem, jak ten, w którym urządzenie zostało pierwotnie wydane. Najprawdopodobniej pozwoli to uniknąć problemów ze zgodnością sprzętu i sterowników w nowszym jądrze. Na przykład urządzenie, które zostało zaktualizowane do pracy z systemem Android 8.0 Oreo, ale pierwotnie dostarczane z wersją 6.0 Marshmallow, może nadal działać pod Linuksem 3.18.x zamiast Linuksa 4.10.x.

Wymagania pakietu testowego dostawcy (VTS) dla wersji Linux

Zgodnie z artykułem z 2017 r. Na temat programistów XDA (skróconym):

Jednym z aspektów, które zależało od OEM, jest wersja jądra Linuksa, ale zmienia się to wraz z Androidem Oreo.

Tak długo, jak OEM był w stanie przejść testy certyfikacyjne określone przez Google, nie obchodziło ich, jakiej wersji jądra użyto w nowym urządzeniu. Zasadniczo nie stanowiło to problemu, ponieważ większość producentów OEM użyłaby tej samej wersji jądra dla tej generacji, z której korzystali inni producenci OEM, ponieważ jest to ściśle powiązane z obsługą sterowników sprzętowych. Jednak niektóre wpadały przez szczeliny, co zaczęło powodować problemy z bezpieczeństwem. Jest to coś, co Google ostatnio poważnie traktuje, więc ma sens, że chcieliby zacząć to robić.

Począwszy od tego roku ze smartfonami dostarczanymi z Androidem Oreo, Google wymaga, aby wszystkie SoCs wyprodukowane w 2017 roku musiały być uruchamiane z jądrem 4.4 lub nowszym.

Obecnie istniejące urządzenia, które są uaktualnione do Androida Oreo, są wymagane tylko do uruchomienia jądra w wersji 3.18 lub nowszej i nie będą musiały być aktualizowane do obsługi Project Treble.

Według https://android.googlesource.com/platform/test/vts-testcase/kernel/ wymagano wersji Linux, VtsKernelConfigTest lub VtsKernelVersionTest, w wersji 8.0, 8.1 i 9.0, ale później usunięto ją w wersji 10.0. W przypadku wersji 8.0 i 8.1 wymagana jest wersja 3.18, 4.4 lub 4.9. W wersji 9.0 wymaga wersji co najmniej 4.4.107, 4.9.84 lub 4.14.42.

Więcej technicznych i najnowszych informacji dostępnych bezpośrednio na stronie AOSP: https://source.android.com/devices/architecture/kernel/core-kernel-reqs

Icosie
źródło
7
Nie ma w tym żadnych twardych zasad! Na przykład ICS / JB na Zte Blade używał jądra 2.6.35, ICS na Sony Xperia Mini to 2.6.32 ... weź to ze szczyptą soli jako jedyną wytyczną :)
t0mm13b
3
Całkowicie rozumiem, dlaczego różne urządzenia z tą samą wersją Androida miałyby uruchamiać różne jądra, ale ta tabela jest tylko praktyczną regułą i tak, chciałbym trochę ziaren soli z moją regułą kciuka =)
Jan
3
Ograniczmy tutaj tabelę do AOSP Android!
Robert Siemer
3
Ponadto, gdy urządzenie zostanie wydane z określoną wersją Androida i jądrem, a później wersja Androida zostanie zaktualizowana przez producenta, wersja jądra jest zwykle utrzymywana w początkowej wersji z łatkami.
Bharat G
1
Pamiętaj, że nawet Google tego nie przestrzega. Właśnie sprawdziłem emulator za pomocą API 26, a jądro to 3.18.56+
Roy Falk