Después de que Linux redujera las versiones LTS de 6 a 2 años, Google se ha comprometido a dar soporte a sus bifurcaciones durante 4 años.
La necesidad de actualizaciones periódicas del kernel en dispositivos Android
Los dispositivos Android utilizan el kernel de Linux y necesitan ser actualizados periódicamente para recibir correcciones de problemas de seguridad. El proyecto upstream del kernel de Linux recientemente terminó su compromiso de soporte de seis años para las versiones LTS, lo cual hubiera sido perjudicial para la seguridad de los dispositivos Android, por lo que Google tuvo que intervenir.
Importancia del soporte LTS para Android
Android, al igual que muchos otros sistemas operativos, utiliza el kernel de Linux de código abierto. Existen varios tipos de versiones del kernel de Linux, pero el tipo más importante para Android es el de soporte a largo plazo (LTS), ya que se actualizan regularmente con correcciones importantes de errores y parches de seguridad. A partir de 2017, la vida útil de soporte de las versiones LTS de Linux se extendió de dos a seis años, pero a principios del año pasado, esta extensión se revirtió. Afortunadamente, Google ha anunciado que, en adelante, soportarán sus propias versiones LTS del kernel durante cuatro años. Esto es crucial para la seguridad de los dispositivos Android.
Las bifurcaciones del kernel de Android
El kernel de Linux que se encuentra en la mayoría de los dispositivos Android se deriva de una de las ramas del Kernel Común de Android (ACK) de Google. Estas ramas ACK se crean a partir de la rama del kernel principal de Android cada vez que se declara una nueva versión LTS upstream. Por ejemplo, la rama android15-6.6 ACK se creó poco después de que la versión 6.6 se declarara como la última versión LTS, con "android15" en el nombre haciendo referencia a la versión de Android con la que se asocia el kernel (en este caso, Android 15).
Razones para mantener una bifurcación propia
Google enumera tres razones por las cuales mantiene su propia bifurcación de cada versión LTS del kernel de Linux. Primero, las bifurcaciones de Google pueden contener retroportaciones y selecciones de funcionalidades upstream necesarias para características de Android. Segundo, pueden incluir características listas para dispositivos Android, incluso cuando todavía están en desarrollo upstream. Por último, pueden incluir ciertas características de proveedores o OEM que son útiles para otros socios de Android.
Actualizaciones continuas de ACK
Después de su creación, los ACK continúan siendo actualizados por Google para recibir correcciones de errores en el código específico de Android, así como fusiones LTS de las ramas del kernel upstream. Las vulnerabilidades que afectan al kernel de Linux y que se divulgan en el Boletín de Seguridad de Android mensual, como las enumeradas en el boletín de julio de 2024, se abordan con estas actualizaciones.
Dificultades para identificar correcciones de seguridad
Sin embargo, no siempre es posible identificar cuándo una corrección de errores es una corrección de seguridad, porque un parche que corrige un error podría estar cerrando un agujero de seguridad que el remitente no estaba al tanto o decidió no divulgar. Google intenta identificar estos casos cuando ocurren, pero es imposible capturarlos todos, lo que lleva a situaciones en las que las correcciones han llegado al upstream de Linux meses antes de llegar a los dispositivos Android. Por eso Google impulsa a los OEM de Android a realizar actualizaciones LTS regularmente para no ser sorprendidos por una divulgación inesperada de vulnerabilidad de seguridad.
Importancia de las versiones LTS del kernel de Linux para la seguridad
Claramente, las versiones LTS del kernel de Linux son increíblemente importantes para la seguridad de los dispositivos Android, ya que ayudan a Google y a los OEM a abordar vulnerabilidades de seguridad tanto conocidas como desconocidas. Cuanto más larga sea la vida útil de soporte de una versión LTS del kernel de Linux, más tiempo pueden Google y, posteriormente, los OEM, mantener sus dispositivos actualizados con correcciones de seguridad.
Impacto en los desarrolladores y mantenedores del kernel de Linux
Desafortunadamente, aunque esa vida útil de soporte más larga es buena para Google y los OEM, pone una presión enorme sobre los desarrolladores y mantenedores del kernel de Linux, muchos de los cuales son voluntarios no remunerados. Además, si excluyes Android y dispositivos embebidos, no hay tantos dispositivos ejecutando versiones antiguas de Linux.
Decisión de los mantenedores del kernel
Esencialmente, los mantenedores de Linux decidieron que las vidas útiles de soporte de seis años para las versiones LTS del kernel ya no tenían sentido para ellos, por lo que decidieron reducir esa ventana a dos años nuevamente. Este cambio se hizo público a principios de 2023, dejando a muchos observadores preguntándose qué significaría para el mundo de Android. Algunos creían que obligaría a los OEM a finalmente comenzar a realizar actualizaciones importantes de la versión del kernel para mantenerse al día, mientras que otros creían que Google o los proveedores de silicio extenderían el soporte LTS por su cuenta.
Compromiso de Google con el soporte extendido
Lo último es lo que Google está haciendo. En su página de desarrolladores para el ACK, Google escribió que "a partir del kernel 6.6, la vida útil de soporte para los kernels estables es de 4 años". Esto va precedido por una declaración que dice que "los ACKs podrían ser soportados por más tiempo que el kernel estable correspondiente upstream en kernel.org. En este caso, Google proporciona soporte extendido hasta la fecha de fin de vida (EOL) mostrada en esta sección." Cuando un kernel llega a su EOL, obviamente ya no son soportados por Google, pero más importante, "los dispositivos que los ejecutan se consideran vulnerables."
Cambios en el ciclo de vida del LTS y su impacto
El ciclo de vida LTS anterior de seis años de Linux permitía a los OEM de Android lanzar dispositivos uno, dos o incluso tres años después del ciclo de vida y aún disfrutar de algunos años de soporte upstream.
Sin embargo, dado que Google solo está soportando nuevas ramas ACK durante cuatro años, los OEM ya no pueden hacer eso. Por eso, a partir de Android 15, los dispositivos solo pueden lanzarse con android14-6.1 o android15-6.6, es decir, las dos versiones de kernel más recientes. La primera será soportada hasta julio de 2029 mientras que la segunda hasta julio de 2028, por lo que los dispositivos pueden lanzarse con ellas este año y aún recibir de tres a cinco años de soporte antes de necesitar actualizar su kernel.
Simplificación del proceso para los OEM
En adelante, Google dice que solo habrá una nueva rama ACK para cada versión del kernel, de ahí que no exista una rama android15-6.1. Esto simplifica un poco las cosas, pero en última instancia, los OEM eventualmente necesitarán comenzar a realizar actualizaciones importantes de la versión del kernel si van a comprometerse a políticas de actualización de teléfonos más largas y prolongadas.