¿Por qué es necesario modificar un kernel para una nueva versión de Android?

El código del kernel de Android es en realidad una bifurcación del código principal del kernel de Linux (mantenido en todo el mundo).
Como tal, no existe el mandato de tomar la última versión de Kernel con la última versión de Android. Es una sugerencia.
Muchos proveedores de Android mantienen el kernel sin cambios cuando realizan una actualización menor de Android, principalmente porque la actualización del kernel (llamado BSP -Board Support package) a menudo proviene del proveedor del chipset (TI, Samsung, Qualcomm, Mediatek, etc.). A menudo se necesitan muchas pruebas y estabilidad al cambiar el kernel para una actualización de Android. Por lo tanto, esto a menudo causa un retraso en las actualizaciones de Android y, a veces, la cancelación de actualizaciones cuando los proveedores de conjuntos de chips no son compatibles.
Esto explica la fricción por la que a uno no le gustaría actualizar la versión del kernel con la versión de Android.

Permítanme explicar cuáles son las ventajas y la motivación para hacerlo.

El kernel de Linux siempre está cambiando el sistema operativo. Muchas mejoras (cientos de líneas por día) ingresan al kernel para hacerlo más robusto, seguro y avanzado cada día. Tiene mucho sentido tener todo este delta de mejoras en el kernel de Android siempre que podamos. Esto siempre que se actualiza la versión de Android. En resumen, con la actualización de Android, la actualización del kernel de Android es gratuita.

Otra gran motivación viene como requisitos del mundo del sistema operativo Android. Hay muchas mejoras en el Kernel de Android de vez en cuando por un equipo especial en Google que mantiene la rama del kernel de Android Linux.
Algunas de las características del sistema operativo se vuelven obligatorias para mejorar la versión del kernel también con el fin de obtener los beneficios de estas nuevas características (como la mantequilla del proyecto, etc.), que dependen principalmente del lado de los controladores del kernel.
Las mejoras típicas proporcionadas por el kernel de Android están en la GPU de marco de trabajo de energía (mayor parte), gestión de búfer, gestión de energía, etc.

Curiosamente, algunas de las mejoras proporcionadas por el equipo del kernel de Android también se han devuelto al kernel principal de Linux (después de un poco de drama).
Recuerde el deber moral de usar código abierto: contribuir de nuevo a la comunidad. Estos cambios son principalmente en las áreas de administración de energía (porque Android se está ejecutando principalmente en una fuente de energía finita (con batería).

Ahora, cuando Android lanza código para Android, también lanza código para el kernel de Android. Que a menudo se mantiene como referencia para todos los proveedores de teléfonos y conjuntos de chips. Este código publicado se llama AOSP.

Me sale una tabla que muestra la versión de Android con la versión del kernel de Linux.


Versión de Android | Nivel API | Kernel de Linux en AOSP
—————————————————-
1.5 Magdalena | 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 Pan de jengibre | 9, 10 | 2.6.35
3.xx Panal | 11-13 | 2.6.36
4.0.x Helado 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 Malvavisco | 23 | 3.18.10

Espero que esto ayude.

Una buena respuesta de Ishan Mittal.
Me gustaría agregar, míralo de esta manera:
La versión de Android se actualiza para la versión más reciente del kernel.

Una de las razones de esta actividad, por ejemplo: esto extiende las llamadas y / o funciones más nuevas y mejores del sistema para usar en la nueva versión de Android.

Realmente no he hecho ningún desarrollo de Android Kernel, pero por lo que siento, podría ser simplemente porque el sistema operativo (Lollipop) podría estar usando algunas API de kernel que no estaban en la versión anterior de Kernel. El kernel de Linux siempre está en desarrollo activo y las cosas cambian. El nuevo hardware puede requerir nuevos tipos de interfaces y controladores y, por lo tanto, las cosas pueden cambiar demasiado.

Algunas otras características de seguridad también pueden requerir soporte a nivel de kernel, lo que puede cambiar entre versiones de kernel.

Algunas “características” también se traducen directamente en cambios a nivel del núcleo. El famoso Proyecto Butter (en Jellybean) que se suponía que mejoraría la experiencia gráfica, en realidad hizo uso de triple buffering y cosas que probablemente requieren soporte de kernel de bajo nivel.

Por modificación del kernel, supongo que te refieres a modificar el kernel para construir roms de Android tú mismo desde la fuente (como Cyanogenmod).

Quiero una actualización de Android, ¿cómo lo hago?

Sí, definitivamente se puede usar con la próxima versión de Android.
No hay “necesidad” de modificar el kernel para una nueva versión de Android.