Para qué sirven las particiones system, boot y vendor en Android

  • boot arranca el kernel (GKI) y coordina con vendor_boot e init_boot para cargar los ramdisks adecuados.
  • system contiene el framework de Android y se complementa con system_ext y product bajo reglas VNDK.
  • vendor agrupa binarios y HALs del hardware; se apoya en vendor_dlkm y odm para modularidad.
  • GKI, vendor_boot v4, particiones dinámicas y A/B facilitan OTAs seguras con dependencias claras.

Particiones de Android explicadas

En Android, el almacenamiento interno se divide en particiones, es decir, bloques lógicos que contienen imágenes de software (IMG) con funciones muy concretas. No todo es «espacio para tus fotos»: una parte importante está reservada a arrancar el sistema y a hacer que el hardware funcione como debe.

La arquitectura moderna de Android (a partir de Treble) separa el código genérico del sistema del código dependiente del fabricante en tres grandes grupos: particiones del sistema (por ejemplo, system, boot, init_boot), particiones del proveedor (como vendor, vendor_boot, odm) y particiones no actualizables (userdata, cache, metadata). Esta separación se coordina a través de una interfaz estable llamada VINTF que permite actualizar el sistema sin tocar el código específico del hardware.

Para qué sirven exactamente boot, system y vendor

Las tres protagonistas de esta guía son el corazón del sistema: definen cómo arranca Android, dónde vive el framework y dónde se alojan los binarios del hardware. Comprender sus funciones evita errores al flashear y te da criterio a la hora de actualizar.

Partición boot

La partición boot contiene la imagen de arranque con el kernel. En Android 11 se introduce la GKI (Generic Kernel Image), que estandariza el kernel y desplaza a vendor_boot la información y el ramdisk específicos del proveedor. En Android 12 aún puedes encontrar el ramdisk genérico en boot, pero desde Android 13 ese ramdisk genérico se mueve a init_boot. Esta evolución hace que el kernel sea más genérico y el código dependiente del hardware quede encapsulado donde toca.

Importante para flasheos: si borras boot sin flashear una imagen válida, el dispositivo no arrancará. Y si usas GKI, recuerda que boot y system_dlkm deben actualizarse de forma conjunta por sus dependencias estrechas.

Partición system

system alberga el sistema operativo como tal: framework de Android, apps del sistema y bibliotecas comunes. Desde Android 10-11 se complementa con system_ext (recursos y módulos propietarios que amplían la imagen común) y con product (módulos específicos de producto). Existe un conjunto de reglas de enlace: VNDK (Vendor Native Development Kit), instalado en system, al que pueden vincular product y vendor sin tocar otras bibliotecas de system. Esta separación mantiene ABI estables y permite, en algunos casos, actualizar product por separado si todas las interfaces son estables.

Ojo al «wipe system»: borrar system elimina el sistema operativo. El teléfono puede encender el bootloader o recovery, pero no iniciará Android hasta que flashees una ROM válida.

Partición vendor

vendor contiene binarios, HALs y librerías específicas del hardware que no son lo bastante genéricas para AOSP: drivers del SoC, daemons, módulos de kernel del proveedor (si no se externalizan a vendor_dlkm) y personalizaciones ligadas a la placa. Con Treble, system y vendor intercambian solo a través de VINTF, lo que reduce la rotura de compatibilidad en actualizaciones del sistema.

Extensiones clave: vendor_dlkm permite actualizar módulos del kernel del proveedor sin tocar la partición vendor. Por su parte, odm y odm_dlkm guardan personalizaciones del fabricante de diseño original (ODM) para apoyar múltiples SKUs con una sola imagen de vendor.

Otras particiones relevantes que verás en Android

Además de las protagonistas, hay un buen puñado de particiones que completan el puzle. Conocerlas te aclara mensajes de recovery, OTA y herramientas de flasheo.

  • Del sistema: init_boot (ramdisk genérico desde Android 13), system_ext (extiende system), system_dlkm (módulos de GKI), product (módulos de producto), pvmfw (firmware de máquina virtual protegida), generic_bootloader (cargador genérico).
  • Del proveedor: vendor_boot (código de arranque del proveedor y ramdisks del proveedor), recovery (imagen de recuperación, que en A/B puede ir como ramdisk en boot/init_boot), misc (usada por recovery, suele ser muy pequeña), vbmeta (metadatos de Verified Boot), vendor, vendor_dlkm, odm, odm_dlkm, radio (firmware de radio si aplica).
  • No actualizables: cache (temporal; en A/B a veces es prescindible), userdata (apps y datos del usuario), metadata (clave de cifrado de metadatos si se usa; se borra en factory reset).

Dispositivos con actualizaciones fluidas (A/B): mantienen dos ranuras (A y B) para boot, system, vendor y radio, facilitando OTA sin interrupciones. Las imágenes se aplican en la ranura inactiva y se alterna al reiniciar.

Reglas de actualización y dependencias entre particiones

Actualizar por conjuntos coherentes evita roturas de compatibilidad. Se recomienda actualizar en bloque todas las particiones del sistema y, por separado, todas las del proveedor, verificando que las interfaces entre imágenes permanezcan estables.

Dependencias ineludibles: siempre actualiza conjuntamente boot y system_dlkm, así como init_boot, system, system_ext y product. Si todas las interfaces entre product y el resto del sistema tienen ABI estable, product puede actualizarse de forma independiente.

Verified Boot y vbmeta: la partición vbmeta incluye la información de arranque verificado que asegura la integridad de todas las particiones firmadas. Si algo no cuadra, el dispositivo puede negarse a cargar esa imagen.

Particiones dinámicas: más flexibilidad en OTA

Desde Android 11, muchos dispositivos soportan particiones dinámicas, un sistema de particiones de espacio de usuario que permite crear, redimensionar o destruir particiones durante una OTA sin reflashear toda la tabla. Esto hace más ágiles las actualizaciones y mejora el aprovechamiento del espacio.

Ventaja práctica: el fabricante puede ajustar tamaños de system/product/vendor según evoluciona el software, sin cambios destructivos del esquema de particionado.

cuáles han sido las peores versiones de Android
Artículo relacionado:
Las peores versiones de Android: del lag al refinamiento