На каком 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 / версия ядра не совпадают

OEM-производители, как правило, поставляют свои основные обновления Android с ядром, аналогичным тому, с которым устройство было выпущено изначально. Это, скорее всего, позволит избежать проблем несовместимости оборудования и драйверов с более новым ядром. Например, устройство, которое было обновлено для работы с Android 8.0 Oreo, но первоначально поставлялось с 6.0 Marshmallow, все еще может работать под управлением Linux 3.18.x вместо Linux 4.10.x.

Требования Vendor Test Suite (VTS) для версии Linux

Согласно статье 2017 года о XDA-Developers (сокращенно):

Один аспект, который был до OEM - это версия ядра Linux, но это меняется с Android Oreo.

До тех пор, пока OEM-производитель мог проходить сертификационные тесты, которые выкладывает Google, им было все равно, какая версия ядра использовалась в новом устройстве. Как правило, это не было проблемой, так как большинство OEM-производителей использовали бы ту же версию ядра для того поколения, которую использовали другие OEM-производители, поскольку она сильно привязана к тому, что поддерживают драйверы оборудования. Тем не менее, некоторые провалились в трещины, и это стало причиной проблем с безопасностью. Это то, что 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

Icosie
источник
7
Там нет жестких быстрых правил! Например, ICS / JB на Zte Blade использовал ядро ​​2.6.35, ICS на Sony Xperia Mini было 2.6.32 ... возьмите это с щепоткой соли в качестве единственного ориентира :)
t0mm13b
3
Я могу полностью понять, почему разные устройства, работающие на одной и той же версии Android, будут работать с разными ядрами, но эта таблица является лишь практическим правилом, и да, я бы хотел немного зерна с моим эмпирическим правилом =)
Джон
3
Давайте ограничим таблицу здесь AOSP Android!
Роберт Симер
3
Кроме того, когда устройство выпускается с определенной версией Android и ядром, а затем версия Android обновляется производителем, версия ядра в основном сохраняется в исходной версии с исправлениями.
Бхарат Г.
1
Обратите внимание, что даже Google не следит за этим. Только что проверил эмулятор с API 26 и ядро ​​3.18.56+
Рой Фальк