Despeja todas tus dudas sobre AOSP y descubre por qué no es lo mismo que Android

diferencias aosp y android no son iguales

Una de las grandes fortalezas de Android, es su amplia cantidad de variantes. Samsung, Xiaomi, Huawei, y casi cualquier marca que fabrique móviles ofrece su propia versión de la experiencia Android, incluso la misma Google. Con ello plasman sus propias ideas, y marcan distancia de los demás fabricantes, ofreciendo características únicas en cada capa de personalización.

Todo esto es posible gracias a que existe un sistema de herramientas base que se encargan de administrar las funciones principales. Ese sistema es AOSP, el proyecto de código abierto de Android, y de él nacen todas esas variantes que amas, incluso las ROMs personalizadas como LineageOS o crDroid. Sin embargo, AOSP no es Android, y nosotros te explicaremos por qué.

¿Qué es AOSP y por qué no es lo mismo que Android? La confusión que se zanja ahora mismo

código android desarrollo software

Una de los errores más comunes entre los usuarios del sistema operativo de Google, es que creen que AOSP es Android. Esto no solamente es una falacia, sino que además es una simplificación excesiva, están estrechamente relacionados, pero no son lo mismo.

En pocas palabras, AOSP contiene todo lo que los desarrolladores necesitan para construir Android, pero por sí solo no incluye todo lo que se necesita para poner en funcionamiento un teléfono inteligente. Esta es una explicación global que permite diferenciarlos, pero es necesario ahondar más para entenderla.

Entendiendo AOSP, el código base que da vida a Android

diferencias aosp android stock android one go y otras

Android Open Source Project, mejor conocido como AOSP, es un proyecto de sistema operativo (SO) de código abierto mantenido por Google. Cualquier persona puede acceder y modificar el código de AOSP, contribuyendo con correcciones para el proyecto. Sin embargo, Google es quién se encarga de la dirección general del mismo, supervisándolo y aportando el grueso del desarrollo. AOSP incorpora generalmente todos los parches de seguridad y de errores que existen para Android.

Los fabricantes de smartphones son libres de modificar AOSP a su antojo. Sin embargo, ellos generalmente trabajan sobre un AOSP ya modificado por los fabricantes de chips. ¿La razón? Estas empresas son las que incluyen los controladores de bajo nivel para que el sistema operativo funcione en un hardware determinado.

Con AOSP, Google abre las puertas al mundo para que Android llegue a cualquier dispositivo. De esta manera, los fabricantes ganan un sistema robusto, que aparte pueden adaptar a su medida, y Google ve a su sistema operativo dominar el mercado. Ganar-ganar en todo sentido.

AOSP, las claves del proyecto de código abierto de Google

arquitectura android software desarrollo

Los sistemas operativos son un tipo de software muy complejo que se divide en diferentes capas, y Android no es diferente. AOSP proporciona herramientas para desarrolladores de hardware y aplicaciones por igual, convirtiéndose en el puente que permite interconectar las piezas físicas del móvil (hardware), con las aplicaciones y demás que disfrutamos al usarlo (software). Estas son las capas de software que maneja AOSP:

  • Kernel de Linux: el corazón del sistema operativo, y encargado de administrar los recursos del procesador, la memoria de sistema, energía y demás. Además, teje las redes para que las apps y servicios puedan ejecutarse.
  • Capa de abstracción de hardware (HAL): es la encargada de crear interfaces que vinculen el framework de Java con módulos de hardware en específico, a través de librerías. Un ejemplo para que lo entiendas mejor: es la que asocia la función de sonido con el altavoz, la localización con el GPS, etc.
  • Tiempo de ejecución de Android (Runtime / ART): es la capa que incluye las librerías básicas de Android, y se encarga de administrar los procesos e instancias del SO. Además, proporciona casi todas las funciones para que el framework de Java trabaje.
  • Bibliotecas C/C++ nativas: son una serie de librerías que complementan el funcionamiento del Runtime de Android y la HAL. Permiten que el framework de Java maneje APIs específicas como Webkit u OpenGL, entre muchas otras más.
  • Marco de trabajo de Java (Framework): es el conjunto de funciones del SO que sirven como cimientos para crear aplicaciones. Están escritas en lenguaje de alto nivel, lo que simplifica su uso.
  • Aplicaciones de sistema: el conjunto de apps centrales para correo electrónico, SMS, calendarios, marcador telefónico, etc. La mayoría pueden cambiarse por aplicaciones de terceros.

En conjunto, esta pila de capas conforma el código de AOSP, ofreciendo una solución completa para desarrolladores de hardware y software. Pero AOSP no es solo un código base, sino también toda una colección de documentos que tratan temas como compatibilidad, seguridad, y principios de diseño. Así, el proyecto también incluye un conjunto de pruebas para que los desarrolladores garanticen que sus dispositivos funcionen correctamente.

¿Por qué Android y AOSP no son lo mismo?

desarrollo android stock pixel

Como ya dijimos, AOSP es un compendio de herramientas que permiten a los desarrolladores crear una versión de Android (código base, documentación y pruebas), pero por sí solo no es suficiente para poner en funcionamiento un móvil. ¿Por qué? Porque le faltan cosas.

El código de AOSP no cuenta con los controladores (drivers) que el núcleo de Linux necesita para manejar el hardware. Esto lo agregan los fabricantes de teléfonos, chips y demás, e incluye piezas que van desde la cámara, hasta el procesador. Una vez lo hacen, se tiene un primer sistema operativo viable, una primera versión propia de Android.

Luego vienen las aplicaciones y cambios en el sistema a través de las capas de personalización. Los fabricantes, y los desarrolladores de ROMs, agregan sus propias características al sistema operativo, creando sus propias versiones de Android. Incluso Google lo hace al agregar sus servicios, y de ahí nace “Android stock”.

Android, por su parte, es el sistema operativo completo, y totalmente funcional en un móvil. Se crea partiendo de las bases y herramientas de AOSP, y agregando otras cosas. Pero nunca AOSP por sí solo será Android.

Y entonces, ¿qué son Android stock, Android One, Android GO y demás?

versiones android fork roms capas de perosanilzación

Todos son sistemas operativos, con diferencias entre cada versión. Tenemos un artículo sobre varios de ellos, pero explicados de forma sencilla serían:

  • Android: un sistema operativo completo, y funcional en todo sentido. Es la experiencia base, que consigues cuando a AOSP se le agrega únicamente el firmware del hardware. No incluye los Google Mobile Services (GMS). En la comunidad se le conoce como una ROM “basada en AOSP”.
  • Android stock: la experiencia Android según Google. Es la versión que históricamente llevan los móviles de Google, como los extintos Nexus, y actualmente los Pixel. Incluye los servicios de Google, que en ocasiones suplantan a otras aplicaciones.
  • Android One: originalmente era un proyecto para móviles de gama baja exclusivo de India, pero en 2017 se amplió a todo tipo de gamas. Busca ofrecer la misma experiencia de Android stock pero en móviles de otros fabricantes. Estos últimos pagan a Google por el desarrollo del SO y las actualizaciones. Cuenta con los GMS.
  • Android GO: el proyecto que tomó el relevo de Android One en 2017. Está diseñado para móviles de pocos recursos, por lo que es un SO ligero. Además cuenta con versiones optimizadas de los GMS. Al igual que Androide One, los fabricantes pagan a Google por el desarrollo y actualizaciones.
  • Capas de personalización: son la experiencia Android según cada fabricante, quienes agregan características y aplicaciones propias al sistema operativo. Pueden incluir los GMS, como sucede con MIUI, One UI, OxygenOS, ColorOS, etc. O bien no incluirlos, como sucede actualmente con los últimos móviles de Huawei y Honor (EMUI).
  • ROMs personalizadas: la experiencia Android según los desarrolladores de la comunidad. Oficialmente no soportan los GMS, ya que Google no las licencia, pero siempre puedes instalarlos como paquetes aparte. En esta categoría entran LineageOS, crDroid, OmniRom, Paranoid, Resurrection Remix OS, AOKP y demás.

Los Servicios Móviles de Google (GMS) como arma de distinción en Android

google mobile services

Como habrás visto, una versión de Android que nazca de AOSP no tiene por qué incluir el conjunto de aplicaciones de Google, como Chrome, YouTube, e incluso la Play Store. Estas se licencian por separado, y llevan como nombre Google Mobile Services (GMS).

Cualquier fabricante que quiera instalar los GMS sobre Android debe obtener una licencia GMS y un Acuerdo de Distribución de Aplicaciones Móviles (MADA, siglas en inglés) para su dispositivo. Además, deben pasar varias pruebas de la Compatibility Test Suite (CTS), para validar que los componentes de software, de hardware y las API sean compatibles con las GMS.

Anteriormente, tener los GMS era únicamente un plus, pero desde que Google dejó de licenciar dispositivos Huawei eso ha cambiado. Ahora, que un móvil esté certificado por Google puede ser determinante al momento de adquirirlo, ya que solo así podrás disfrutar de la experiencia más simple.

El futuro de AOSP podría estar en peligro

fuchsia os reemplazo aosp android

AOSP sigue siendo la base del éxito de Android, gracias a innumerables aportes hechos por desarrolladores de todo el mundo. Pronto recibirá la versión 11, lo que deja entre ver que, al menos en el próximo año, Android seguirá vivo. Sin embargo, Google podría estar buscando un sustituto mucho más universal.

Fuchsia OS es un sistema operativo en desarrollo, que fue descubierto en 2016 rondando por GitHub. De él no se ha vuelto a saber desde el Google I/O de 2019, pero se conoce que será un SO capaz de ejecutarse sobre cualquier hardware.

Trabajará bajo un micro Kernel llamado Zircon, por lo que abandonaría Linux como base de desarrollo. Este nuevo Kernel permitiría instalar Fuchsia en móviles, portátiles, coches, televisores, lavadoras, y lo que sea. No sabemos los planes exactos de Google con él, pero bien podría ser el SO que unifique todos los dispositivos actuales y futuros de Google.

Esto sería un hito sin precedentes, y llevaría a cabo el sueño dorado de Google, la unificación. Por el momento, Fuchsia sigue siendo un proyecto de código abierto y libre como Android, algo que esperamos que siga así.

Lo otro que esperamos, es que este artículo haya despejado todas tus dudas sobre AOSP y Android, y que te haya quedado claro por qué no son lo mismo. ¿Tienes más preguntas? Déjalas en los comentarios.