На якому Android працює яке ядро ​​Linux?


Відповіді:


57

Версія Linux в 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

Таблиця, складена з:

Примітка: інші "дистрибуції" Android можуть працювати з різними версіями ядра.

Будь-хто бажає виправити та розширити цю таблицю. Будь ласка, продовжуйте форматувати.

Чому невідповідність версії ОС Android / ядра

Виробники оригіналу зазвичай постачають основні оновлення Android з ядром, схожим на те, з яким спочатку було випущено пристрій. Це, швидше за все, дозволить уникнути проблем із сумісністю апаратних засобів та драйверів з новішим ядром. Наприклад, пристрій, оновлений для запуску Android 8.0 Oreo, але спочатку постачався з 6.0 Marshmallow, все ще може працювати з Linux 3.18.x замість Linux 4.10.x.

Вимоги щодо тестового пакета постачальників (VTS) для версії Linux

Відповідно до статті про XDA-розробники 2017 року (скорочено):

Один з аспектів, який розглядався до OEM, - це версія ядра Linux, але це змінюється в Android Oreo.

Поки виробник OEM міг пройти тести сертифікації, які викладає Google, тоді їм було все одно, яка версія ядра використовується в новому пристрої. Це, як правило, не було проблемою, оскільки більшість виробників оригіналу використовували ту саму версію ядра для того покоління, яку використовували інші виробники оригіналу, оскільки вона сильно пов'язана з підтримкою драйверів апаратних засобів. Однак деякі потрапляли через щілини, і це стало причиною проблем безпеки. Це те, що Google останнім часом серйозно сприймає, тому є сенс, що вони хочуть почати це вимагати.

Починаючи з цього року зі смартфонів, що постачаються з Android Oreo, Google вимагає, щоб усі SoC, які продаються в 2017 році, повинні запускатися з ядром 4.4 або новішим.

Наразі існуючі пристрої, оновлені до Android Oreo, потребують лише ядра версії 3.18 або новішої, і їх не потрібно буде оновлювати для підтримки Project Treble.

Згідно з https://android.googlesource.com/platform/test/vts-testcase/kernel/ , існувала вимога до версії Linux, VtsKernelConfigTest або VtsKernelVersionTest, 8.0, 8.1 та 9.0, але пізніше видалено 10.0. Для 8.0 і 8.1 він вимагає, щоб версія становила 3.18, 4.4 або 4.9. Для 9.0 потрібна версія принаймні 4.4.107, 4.9.84 або 4.14.42.

Більше технічної та новітньої інформації, доступної безпосередньо з веб-сайту AOSP: https://source.android.com/devices/architecture/kernel/core-kernel-reqs


7
Тут немає жодних жорстких швидких правил! Наприклад, ICS / JB на Zte Blade використовував ядро ​​2.6.35, ICS на Sony Xperia Mini було 2.6.32 ... візьміть це з дрібкою солі як єдине керівництво :)
t0mm13b

3
Я цілком можу зрозуміти, чому різні пристрої, що працюють на одній версії Android, запускали різні ядра, але ця таблиця - це лише правило, і так, я хотів би зерен солі з моїм правилом великого пальця =)
Джон

3
Давайте обмежимо таблицю тут AOSP Android!
Роберт Сімер

3
Крім того, коли випускається пристрій зі специфічною версією для Android та ядром, а пізніше версія для Android оновлюється виробником, версія ядра здебільшого зберігається у початковій версії з виправленнями.
Бхарат G

1
Зауважте, що навіть Google не дотримується цього. Щойно перевірив емулятор за допомогою API 26, а ядро ​​3.18.56+ і більше
Roy Falk
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.