Is there a list of which kernel version comes in each Android AOSP version?

Or lets say, which version /proc/version would spit out.

up vote 43 down vote accepted
Android Version    |API Level  |Linux Kernel in AOSP
----------------------------------------------------
1.5   Cupcake      |3          |2.6.27
1.6   Donut        |4          |2.6.29
2.0/1 Eclair       |5-7        |2.6.29
2.2.x Froyo        |8          |2.6.32
2.3.x Gingerbread  |9, 10      |2.6.35
3.x.x Honeycomb    |11-13      |2.6.36
4.0.x Ice Cream San|14, 15     |3.0.1
4.1.x Jelly Bean   |16         |3.0.31
4.2.x Jelly Bean   |17         |3.4.0
4.3   Jelly Bean   |18         |3.4.39
4.4   Kit Kat      |19, 20     |3.10
5.x   Lollipop     |21, 22     |3.16.1
6.0   Marshmallow  |23         |3.18.10
7.0   Nougat       |24         |4.4.1
7.1   Nougat       |25         |4.4.1
8.0   Oreo         |26         |4.10
8.1   Oreo         |27         |4.10
9.0   Pie          |28         |4.4, 4.9 and 4.14


Table compiled from:

Note: other “distributions” of Android might run different kernel versions.

Anyone is welcome to correct and expand this table. Please keep formatting.

OEMs tend to ship their major Android updates with a similar kernel to the one the device was initially released with. This is most likely to avoid hardware and driver incompatibility issues with a newer kernel. For example, a device that has been updated to run Android 8.0 Oreo but originally shipped with 6.0 Marshmallow may still be running Linux 3.18.x instead of Linux 4.10.x.

According to a 2017 article on XDA-Developers (shortened):

One aspect that has been up to the OEM is the Linux kernel version but this is changing with Android Oreo.

As long as the OEM was able to pass the certification tests that Google lays out, then they didn’t care what kernel version was used in a new device. This generally wasn’t an issue as most OEMs would use the same version of the kernel for that generation that other OEMs were using, as it is tied heavily to what the hardware drivers support. However, some had been falling through the cracks and this started to cause security issues. This is something that Google has been taking seriously lately so it makes sense that they would want to start mandating this.

Starting this year with smartphones which ship with Android Oreo, Google is requiring that all SoCs productized in 2017 must launch with kernel 4.4 or newer.

Currently existing devices that are upgraded to Android Oreo are only required to run kernel version 3.18 or newer, and will not have to be upgraded to support Project Treble.

More technical and recent information available directly from the AOSP website: https://source.android.com/devices/architecture/kernel/modular-kernels#core-kernel-requirements

  • 5
    There's no hard fast rules involved! For instance, ICS/JB on Zte Blade used kernel 2.6.35, ICS on Sony Xperia Mini was 2.6.32... take this with a pinch of salt as its only a guideline :) – t0mm13b Aug 21 '13 at 12:31
  • 3
    I can completely see why different devices running the same Android version would run different kernels, but this table is just a rule of thumb and yes I would like a grain of salt with my rule of thumb =) – John Aug 21 '13 at 12:43
  • 3
    Let’s restrict the table here to AOSP Android! – Robert Siemer Aug 22 '13 at 13:27
  • 3
    Also, when a device is released with specific android version and kernel, and later the android version is updated by manufacturer, the kernel version is mostly kept at initial version with patches. – Bharat G Oct 15 '15 at 2:23
  • 1
    Note that even Google isn't following this. Just checked the emulator with API 26 and the kernel is 3.18.56+ – Roy Falk Dec 24 '17 at 5:32

protected by Community Oct 7 '17 at 21:36

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.