Muchas veces habrás oído decir que Android es un sistema abierto, donde cualquiera que lo desee puede contribuir a su código fuente, examinarlo o mejorarlo. Esta es, de hecho, una de las características del sistema operativo de Google que lo hacen más atractivo para usuarios y desarrolladores sobre el papel. Si lo comparamos con ecosistemas como el de iOS, donde todo es mucho más estricto, está claro que la naturaleza abierta del sistema del robot verde es fundamental para explicar su expansión a nivel mundial casi desde el momento de su aparición.
Ahora bien, ¿Android es abierto al 100%? ¿Se puede modificar todo el código del sistema operativo como se dice, o hay ciertas limitaciones? De eso mismo queremos hablar en este artículo, y para ello debemos explicar qué es exactamente el Android Open Source Project o AOSP.
¿Qué es el AOSP?
Cuando hablamos de Android debemos diferenciar entre dos versiones: la versión de Android de Google, controlada por la misma empresa, y la versión AOSP. En pocas palabras, AOSP es el "verdadero" Android puro, y no la versión creada por Google (a pesar de que muchos así lo crean). Es la versión de código abierto, y puede considerarse una ROM no modificada.
Más que un sistema operativo, debemos considerar Android como una plataforma formada por varios componentes: una base que es completamente abierta (AOSP), los llamados Google Mobile Services y las Google Apps. Mientras que AOSP es la parte del sistema que cualquiera puede examinar, mejorar o modificar, el resto pertenece a Google y no es de código abierto, por lo que no puede ser modificado por terceros. AOSP incluye algunas apps básicas, como un navegador, un gestor de descargas, una aplicación de fotos o una alarma. Sin embargo, Google ha creado sus propias alternativas y las ofrece de forma independiente.
Los de Mountain View contribuyen con aplicaciones y mejoras al AOSP público, como los Play Services, la sincronización automática de las fotos, Android Auto, los servicios de desbloqueo inteligente, Android Webview o el soporte para Chromecast, pero de forma paralela desarrollan sus propios componentes exclusivos para la versión del sistema operativo que ellos mismos proveen. Por lo tanto, AOSP y Android no tienen exactamente las mismas características ni son actualizados simultáneamente con las mismas novedades.
El AOSP se compone de múltiples niveles que ordenamos de más bajo (más cercanos a la máquina) a más alto nivel (más cercanos al usuario):
- Kernel Linux.
- Capa de abstracción de hardware.
- Librerías de Android nativas.
- Entorno de ejecución (Android Runtime o ART).
- Framework de Android.
- Aplicaciones.
Cuando Android apareció Google se apoyaba mucho en AOSP, y aún hoy contribuye activamente a su desarrollo como hemos visto. De hecho, el núcleo duro del Android de Google era AOSP puro y duro.
Con el tiempo, los de Mountain View decidieron que no podían seguir dependiendo de AOSP. Tomaron las herramientas que habían desarrollado y las subieron a su nube personal, de forma que pudiesen marcar su propio ritmo a la hora de crear nuevas versiones del sistema operativo, nuevos parches de seguridad o actualizaciones para las Google Apps.
Los fabricantes de smartphones por su parte toman el AOSP como base para crear sus propias versiones de Android, y después pagan a Google una licencia por usar las Google Apps y todos sus servicios o desarrollan sus propias capas de personalización y apps sobre esa base. Por eso los teléfonos Android son considerados un híbrido de partes libres y partes propietarias.