Linux version in 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
Table compiled from:
- Wikipedia Android version history (in parentheses; can't find its source)
- android / kernel / common / Makefile (the Linux in AOSP)
- android / platform / external / kernel-headers / original / uapi / linux / version.h (the Linux headers as used by Bionic in AOSP)
Note: other “distributions” of Android might run different kernel versions.
Anyone is welcome to correct and expand this table. Please keep formatting.
Why Android OS/kernel version mismatches
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.
Vendor Test Suite (VTS) requirements on Linux version
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.
According to https://android.googlesource.com/platform/test/vts-testcase/kernel/, there was a requirement on the Linux version, VtsKernelConfigTest or VtsKernelVersionTest, on 8.0, 8.1, and 9.0, but later removed on 10.0. For 8.0 and 8.1, it requires the version to be either 3.18, 4.4, or 4.9. For 9.0, it requires the version to be at least 4.4.107, 4.9.84, or 4.14.42.
More technical and recent information available directly from the AOSP website: https://source.android.com/devices/architecture/kernel/core-kernel-reqs
沒有留言:
張貼留言