⏱️ Lectura: 11 min

Google dejó de publicar tags de Git en varios repositorios fuente de Android, según reportó GrapheneOS en su cuenta oficial de Mastodon. El cambio, silencioso y sin aviso previo, afecta directamente al mecanismo que usan GrapheneOS, CalyxOS, LineageOS y otros proyectos basados en AOSP para verificar que su código fuente coincide exactamente con lo que Google compila y distribuye.

📑 En este artículo
  1. TL;DR
  2. Qué pasó
  3. Cómo funcionan los tags de Git en AOSP
  4. Detalles técnicos: qué cambia sin el tag de Git
  5. Cómo empezar: verificá vos mismo el estado de un repositorio de AOSP
  6. Cómo se conecta esto con el resto del pipeline de AOSP
  7. Impacto y análisis
  8. Qué sigue
  9. Preguntas frecuentes
    1. ¿Qué es un tag de Git en el contexto de AOSP?
    2. ¿Google dejó de publicar el código fuente de Android?
    3. ¿Por qué le importa esto a GrapheneOS y no a un usuario común?
    4. ¿Cómo puedo verificar si un repositorio de AOSP tiene tags actualizados?
    5. ¿Existe una alternativa confiable si no hay tag de Git?
    6. ¿Esto afecta a LineageOS y CalyxOS de la misma forma?
  10. Referencias

Los tags de Git en AOSP no son un detalle menor: son la referencia pública que permite a cualquier desarrollador clonar el código exacto de una build oficial de Android, comparar parches de seguridad entre versiones y auditar cambios commit por commit. Sin ellos, el trabajo de verificación se vuelve más manual y depende de leer el manifiesto de compilación directamente.

TL;DR

  • GrapheneOS reportó en Mastodon que Google reemplazó el push de tags de Git en ciertos repositorios fuente de AOSP.
  • Los tags de Git son el mecanismo tradicional para sincronizar código exacto con repo sync -c <tag>.
  • Sin tags por repositorio, la referencia de verdad pasa a depender del manifiesto de AOSP (platform/manifest).
  • El manifiesto fija un commit SHA por proyecto para cada build, en lugar de un nombre de tag legible.
  • GrapheneOS, CalyxOS y LineageOS usan estos tags para auditar parches de seguridad commit por commit.
  • El código fuente de AOSP sigue siendo público: lo que cambia es la trazabilidad build a build, no la disponibilidad.

Qué pasó

El 20 de agosto de 2026, la cuenta oficial de GrapheneOS en Mastodon publicó un mensaje que comienza así: “Google replaced pushing Git tags for certain source…”. El fragmento visible del post, alojado en grapheneos.social, describe que Google sustituyó la práctica de empujar (push) tags de Git a ciertos repositorios fuente de AOSP por otro mecanismo.

GrapheneOS es uno de los sistemas operativos basados en AOSP con el proceso de verificación más estricto del ecosistema Android. Su equipo compara, build tras build, el código fuente publicado por Google contra los binarios distribuidos en los dispositivos Pixel soportados. Ese proceso depende de tener una referencia estable y pública a cada commit exacto que Google usó para compilar una versión determinada, y esa referencia estable históricamente fue el tag de Git.

⚠️ Ojo: sin un tag de Git público, no hay una referencia inmutable y fácil de descubrir para saber qué commit exacto corresponde a una build oficial. Hay que reconstruirla a mano desde el manifiesto.

Cómo funcionan los tags de Git en AOSP

AOSP no vive en un solo repositorio. Son más de mil repositorios independientes (frameworks/base, system/core, packages/apps/Settings, y así sucesivamente) que se descargan juntos con la herramienta repo, creada por Google para sincronizar todo el árbol de fuentes de una sola vez. Cada versión oficial de Android hace referencia a una revisión específica de cada uno de esos repositorios mediante un archivo XML llamado manifiesto, publicado en platform/manifest.

Durante años, cuando Google preparaba una build oficial (por ejemplo, una imagen de fábrica para un Pixel), el proceso incluía empujar un tag de Git como android-14.0.0_r30 a cada uno de los repositorios involucrados. Ese tag apuntaba al commit exacto usado en esa build. Cualquier desarrollador podía ejecutar repo init con ese tag y obtener, repositorio por repositorio, el mismo código fuente que Google usó para compilar la imagen oficial.

<!-- fragmento de un manifiesto de AOSP -->
<project name="platform/frameworks/base" path="frameworks/base"
  revision="refs/tags/android-14.0.0_r30" />
<project name="platform/system/core" path="system/core"
  revision="refs/tags/android-14.0.0_r30" />

Este sistema de tags de Git es lo que hace posible que proyectos como GrapheneOS puedan hacer diff entre dos versiones de Android y saber exactamente qué cambió en cada parche de seguridad mensual, sin depender de que Google publique un changelog detallado.

Estructura de repositorios y manifiesto de AOSP
El manifiesto de AOSP fija una revisión por cada uno de los más de mil repositorios. Foto de Rami Al-zayat en Unsplash

Detalles técnicos: qué cambia sin el tag de Git

Cuando un repositorio deja de recibir su tag de Git correspondiente, el manifiesto de AOSP sigue funcionando porque puede apuntar directamente a un hash de commit (SHA) en vez de a un nombre de tag. Técnicamente, repo sync no necesita un tag: le alcanza con cualquier referencia válida, incluida una revisión fijada como revision="a1b2c3d4...".

El problema no es que el código deje de estar disponible: sigue siendo público en android.googlesource.com. El problema es la trazabilidad. Un tag como android-14.0.0_r30 es legible por humanos, aparece al ejecutar git tag -l en cualquier clon del repositorio y no depende de que alguien conserve una copia del manifiesto exacto de esa build. Un hash de commit sin tag solo tiene sentido si ya sabés en qué manifiesto buscarlo.

Método de referenciaCómo se ubica el commit exactoVisible sin el manifiestoRiesgo si se pierde el manifiesto
Tag de Git por repositoriogit tag -l en el repoBajo: el tag sobrevive de forma independiente
Solo commit SHA en el manifiestoLeer el manifiesto de esa build específicaNoAlto: sin el manifiesto, el SHA es difícil de ubicar

Cómo empezar: verificá vos mismo el estado de un repositorio de AOSP

Podés comprobar hoy mismo si un repositorio puntual de AOSP sigue recibiendo tags de Git. Con Git instalado (en Linux, macOS o Windows con Git Bash), corré lo siguiente contra cualquier proyecto de AOSP:

# Linux / macOS / Windows (Git Bash)
git ls-remote --tags https://android.googlesource.com/platform/frameworks/base \
  | tail -n 10

Si la lista de tags no incluye la versión de Android que buscás, esa es una señal directa de que Google no empujó el tag correspondiente a ese repositorio. El siguiente paso es sincronizar el manifiesto completo con la herramienta repo y leer la revisión fijada proyecto por proyecto:

# instalar repo (una sola vez)
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH="${HOME}/bin:${PATH}"

# sincronizar el manifiesto de una branch/tag de AOSP
repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r30
repo sync -c -j8

Con el árbol sincronizado, podés confirmar si el commit que trajo un repositorio puntual quedó marcado con un tag público corriendo git tag --contains HEAD dentro de ese repositorio. Si la salida está vacía, ese commit no tiene tag asociado y solo es identificable a través del manifiesto que acabás de sincronizar.

💡 Tip: guardá una copia local del manifiesto de cada build que te interese apenas la sincronizás. Es la única forma de reconstruir la referencia si el tag nunca llega a publicarse.

Cómo se conecta esto con el resto del pipeline de AOSP

El siguiente diagrama resume dónde entra el tag de Git (o su ausencia) en el camino que va de una build interna de Google hasta la verificación que hacen los forks de AOSP:

flowchart TD
    A["Google compila una build oficial"] --> B["Actualiza el manifiesto en platform/manifest"]
    B --> C{"Empuja tag de Git al repo?"}
    C -->|"Sí"| D["Tag público: android-14.0.0_r30"]
    C -->|"No"| E["Solo queda el SHA fijado en el manifiesto"]
    D --> F["GrapheneOS, CalyxOS y LineageOS sincronizan y verifican"]
    E --> F
Terminal mostrando comandos de git y repo para AOSP
Sin tag público, verificar una build de AOSP exige leer el manifiesto a mano. Foto de Christian Wiediger en Unsplash

Impacto y análisis

Para un usuario final, este cambio es invisible: los Pixel siguen recibiendo actualizaciones y GrapheneOS sigue publicando sus builds con normalidad. El impacto real está en el trabajo de ingeniería que hay detrás. Equipos como el de GrapheneOS mantienen scripts internos que asumen la existencia de un tag por cada nueva versión de Android para automatizar la comparación de parches de seguridad. Si Google retira ese tag en algunos repositorios sin previo aviso, esos scripts empiezan a fallar o a dar resultados incompletos hasta que alguien los actualiza a mano.

Este tipo de fricción no es nueva en el ecosistema AOSP. Google controla el ritmo y el formato de publicación del código fuente, y los proyectos derivados dependen de que ese formato se mantenga estable para no reconstruir sus herramientas cada vez que hay un cambio. Cuando el formato cambia sin documentación pública, el costo lo absorben los mantenedores de los forks, no Google.

💭 Clave: el código de AOSP sigue siendo abierto y público. Lo que está en juego es la facilidad para verificar, de forma automatizada, que ese código corresponde exactamente a una build oficial.

Qué sigue

GrapheneOS no detalló públicamente, en el fragmento disponible de su publicación, si planea adaptar sus herramientas de seguimiento de parches o si va a pedirle a Google que restablezca los tags de Git en los repositorios afectados. Lo más probable, a juzgar por cómo el proyecto respondió a cambios similares en el pasado, es que ajuste sus scripts internos para leer directamente los commits fijados en el manifiesto en lugar de asumir que un tag va a estar disponible.

Para el resto del ecosistema AOSP (CalyxOS, LineageOS, /e/OS y los fabricantes que mantienen forks propios) la recomendación práctica es la misma: dejar de asumir que cada build oficial tendrá un tag de Git legible y tratar el manifiesto fijado por commit como la fuente de verdad primaria.

📖 Resumen en Telegram: Ver resumen

Probalo vos: corré git ls-remote --tags https://android.googlesource.com/platform/frameworks/base ahora mismo y confirmá si tu repositorio de AOSP favorito sigue recibiendo tags.

Preguntas frecuentes

¿Qué es un tag de Git en el contexto de AOSP?

Es una referencia fija y con nombre legible (como android-14.0.0_r30) que Google históricamente aplicaba a un commit específico de cada repositorio de Android, para marcar cuál era el código exacto usado en una build oficial.

¿Google dejó de publicar el código fuente de Android?

No. El código de AOSP sigue siendo público en android.googlesource.com. Lo que cambió, según GrapheneOS, es el mecanismo de etiquetado (tags de Git) en ciertos repositorios, no la disponibilidad del código.

¿Por qué le importa esto a GrapheneOS y no a un usuario común?

Porque GrapheneOS necesita comparar, commit por commit, el código que compila contra el código que Google usó oficialmente, para auditar cada parche de seguridad y garantizar builds reproducibles. Un usuario final solo necesita que la actualización llegue a su teléfono.

¿Cómo puedo verificar si un repositorio de AOSP tiene tags actualizados?

Corré git ls-remote --tags contra la URL del repositorio en android.googlesource.com y revisá si aparece el tag correspondiente a la versión de Android que te interesa.

¿Existe una alternativa confiable si no hay tag de Git?

Sí: el manifiesto de AOSP (platform/manifest) fija un commit SHA exacto por repositorio para cada build. Sincronizarlo con la herramienta repo te da el mismo resultado, aunque exige un paso manual adicional.

¿Esto afecta a LineageOS y CalyxOS de la misma forma?

Cualquier proyecto que dependa de AOSP y use tags de Git para su proceso de verificación o sincronización enfrenta el mismo desafío, aunque cada equipo puede tener su propia forma de mitigarlo.

Referencias

📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.

Imagen destacada: Foto de Yancy Min en Unsplash


Andrés Morales

Desarrollador e investigador en inteligencia artificial. Escribe sobre modelos de lenguaje, frameworks, herramientas para devs y lanzamientos open source. Cubre papers de ML, ecosistema de startups tech y tendencias de programación.

0 Comentarios

Deja un comentario

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.