Registro de transparencia de los módulos de línea principal de Android

El registro de transparencia de los módulos de Android Mainline usa estructuras de datos verificables para garantizar la integridad de los módulos de Mainline.

La utilidad de los registros de transparencia se demostró en proyectos como Transparencia binaria de Pixel y Certificado de transparencia.

Los registros de transparencia se basan en árboles de Merkle. En esta página, se asume que tienes conocimientos generales sobre los árboles de Merkle y la transparencia binaria. Consulta Estructuras de datos verificables para obtener una descripción general de los árboles de Merkle y la página principal para obtener una descripción general de los esfuerzos de transparencia binaria en Android.

Implementación de registros

El registro de transparencia de los módulos de Mainline de Android se implementa con Tessera y se adhiere a la especificación de tlog-tiles con una altura de mosaico de 8 (cada mosaico o paquete contiene, como máximo, 28 = 256 elementos).

La raíz del contenido del registro se entrega en la siguiente ubicación: https://www.gstatic.com/android/binary_transparency/mainline/2026/02/tile/entries/

La raíz del contenido de la tarjeta se entrega en la siguiente ubicación: https://www.gstatic.com/android/binary_transparency/mainline/2026/02/tile/

Ten en cuenta que estas URLs no son páginas web estándar. En su lugar, se debe acceder a las entradas de registro en sus subdirectorios de forma programática con herramientas como Tessera o la biblioteca Tlog de SumDB de Golang.

  • Mosaicos de árbol: Los hashes de nodos hoja y de interior del árbol de Merkle se entregan en tile/<level>/<path> (p.ej., tile/0/000, tile/1/000).
  • Paquetes de entradas: Las cargas útiles de las hojas de registro se organizan en paquetes de entradas en tile/entries/<path> (p.ej., tile/entries/000, tile/entries/001), y cada paquete contiene hasta 256 entradas concatenadas.

Consulta Contenido de los registros para obtener una descripción de lo que contiene cada entrada.

El hash raíz del árbol de Merkle del registro, que se incluye en un punto de control, se entrega en https://www.gstatic.com/android/binary_transparency/mainline/2026/02/checkpoint en el formato de punto de control. El origen del punto de control es android.transparency.goog/mainline/modules/2026/1.

Las firmas de puntos de control se generan con el algoritmo de firma Ed25519. La firma del punto de control se puede verificar con la siguiente clave pública en el formato de verificador de notas (como se define en golang.org/x/mod/sumdb/note) o en el formato PEM estándar:

  • Formato del verificador de notas (<name>+<key_hash>+<public_key_bytes>):
android.transparency.goog/mainline/modules/2026/1+1a8e4064+AfwnHm59rNQTJICchMd7a2W5PQa7nC5h2gTEfq3fhCEI
  • Formato PEM (SubjectPublicKeyInfo):
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA/Ccebn2s1BMkgJyEx3trZbk9BrucLmHaBMR+rd+EIQg=
-----END PUBLIC KEY-----

Registro archivado (V1)

Antes de la actualización del tercer trimestre de 2026, el registro funcionaba con una implementación anterior de la V1 que usaba firmas ECDSA (NIST P-256 con SHA-256). El registro V1 se archiva y es de solo lectura, pero sigue siendo de acceso público para verificar las entradas históricas:

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr6nPds8eKCYU42avidXNM1GDCtQ/
66GjGuIpUcZjqQNngwRFVCFZDpWuvDnqXzhJRxqccL9lbeEVVZGpa4x6pg==
-----END PUBLIC KEY-----

Debido a que los módulos de Mainline son similares a los APKs, los métodos de verificación descritos en la página de verificación de APKs de Google también se aplican aquí. Puedes usar los métodos que se indican allí para verificar las reclamaciones realizadas en el modelo de reclamante.