¿Qué Android ejecuta qué kernel de Linux?

Respuestas:

57

Versión de Linux en 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

Tabla compilada de:

Nota: otras "distribuciones" de Android pueden ejecutar diferentes versiones del kernel.

Cualquiera puede corregir y expandir esta tabla. Por favor, siga formateando.

¿Por qué la versión del sistema operativo Android / kernel no coincide?

Los OEM tienden a enviar sus principales actualizaciones de Android con un kernel similar al que se lanzó inicialmente con el dispositivo. Es muy probable que esto evite problemas de incompatibilidad de hardware y controladores con un kernel más nuevo. Por ejemplo, un dispositivo que se ha actualizado para ejecutar Android 8.0 Oreo pero que se envió originalmente con 6.0 Marshmallow aún puede ejecutar Linux 3.18.x en lugar de Linux 4.10.x.

Requisitos de Vendor Test Suite (VTS) en la versión de Linux

De acuerdo con un artículo de 2017 sobre XDA-Developers (acortado):

Un aspecto que ha estado a la altura del OEM es la versión del kernel de Linux, pero esto está cambiando con Android Oreo.

Mientras el OEM pudo pasar las pruebas de certificación que Google presenta, no les importó qué versión de kernel se utilizó en un nuevo dispositivo. Esto generalmente no fue un problema ya que la mayoría de los OEM usarían la misma versión del kernel para esa generación que otros OEM estaban usando, ya que está fuertemente vinculado a lo que admiten los controladores de hardware. Sin embargo, algunos habían estado cayendo por las grietas y esto comenzó a causar problemas de seguridad. Esto es algo que Google ha estado tomando en serio últimamente, por lo que tiene sentido que quieran comenzar a exigir esto.

A partir de este año con los teléfonos inteligentes que se envían con Android Oreo, Google exige que todos los SoC producidos en 2017 se inicien con el kernel 4.4 o posterior.

Actualmente, los dispositivos existentes que se actualizan a Android Oreo solo deben ejecutar la versión 3.18 del kernel o posterior, y no tendrán que actualizarse para admitir Project Treble.

De acuerdo con https://android.googlesource.com/platform/test/vts-testcase/kernel/ , había un requisito en la versión de Linux, VtsKernelConfigTest o VtsKernelVersionTest, en 8.0, 8.1 y 9.0, pero luego se eliminó en 10.0. Para 8.0 y 8.1, requiere que la versión sea 3.18, 4.4 o 4.9. Para 9.0, requiere que la versión sea al menos 4.4.107, 4.9.84 o 4.14.42.

Más información técnica y reciente disponible directamente desde el sitio web de AOSP: https://source.android.com/devices/architecture/kernel/core-kernel-reqs

Icosie
fuente
77
¡No hay reglas duras y rápidas involucradas! Por ejemplo, ICS / JB en Zte Blade usaba el kernel 2.6.35, ICS en Sony Xperia Mini era 2.6.32 ... tome esto con una pizca de sal como su única guía :)
t0mm13b
3
Puedo ver completamente por qué diferentes dispositivos que ejecutan la misma versión de Android ejecutarían diferentes núcleos, pero esta tabla es solo una regla general y sí, me gustaría un grano de sal con mi regla general =)
John
3
¡Restrinja la tabla aquí a AOSP Android!
Robert Siemer
3
Además, cuando se lanza un dispositivo con una versión y kernel específicos de Android, y luego la versión de Android se actualiza por fabricante, la versión del kernel se mantiene principalmente en la versión inicial con parches.
Bharat G
1
Tenga en cuenta que incluso Google no está siguiendo esto. Acabo de comprobar el emulador con API 26 y el kernel es 3.18.56+
Roy Falk