Il log di trasparenza dei moduli Android Mainline utilizza strutture di dati verificabili per garantire l'integrità dei moduli Mainline.
L'utilità dei log di trasparenza è stata dimostrata da progetti come Pixel Binary Transparency e Certificate Transparency.
I log di trasparenza sono basati su alberi di Merkle. Questa pagina presuppone una conoscenza generale degli alberi di Merkle e della trasparenza binaria. Consulta la sezione Strutture di dati verificabili per una panoramica degli alberi di Merkle e la pagina principale per una panoramica delle iniziative di trasparenza binaria all'interno di Android.
Implementazione dei log
Il registro di trasparenza dei moduli Android Mainline viene implementato utilizzando Tessera e rispetta la specifica tlog-tiles con un'altezza dei tile pari a 8 (ogni tile o bundle contiene al massimo 28 = 256 elementi).
La radice dei contenuti del log viene pubblicata all'indirizzo:
https://www.gstatic.com/android/binary_transparency/mainline/2026/02/tile/entries/
La radice dei contenuti dei riquadri viene pubblicata all'indirizzo:
https://www.gstatic.com/android/binary_transparency/mainline/2026/02/tile/
Tieni presente che questi URL non sono pagine web standard. Le voci di log nelle sue sottodirectory devono invece essere accessibili in modo programmatico utilizzando strumenti come Tessera o la libreria Tlog di Golang SumDB.
- Riquadri dell'albero: gli hash dei nodi interni e foglia dell'albero di Merkle vengono forniti in
tile/<level>/<path>(ad es.tile/0/000,tile/1/000). - Bundle di voci: i payload foglia dei log sono organizzati in bundle di voci in
tile/entries/<path>(ad es.tile/entries/000,tile/entries/001), con ogni bundle che contiene fino a 256 voci concatenate.
Consulta Contenuto dei log per una descrizione di ciò che contiene ogni voce.
L'hash radice dell'albero di Merkle del log, contenuto in un checkpoint, viene fornito all'indirizzo https://www.gstatic.com/android/binary_transparency/mainline/2026/02/checkpoint nel formato checkpoint.
L'origine del checkpoint è android.transparency.goog/mainline/modules/2026/1.
Le firme dei checkpoint vengono generate utilizzando l'algoritmo di firma Ed25519.
La firma del checkpoint può essere verificata con la seguente chiave pubblica
in formato verificatore di note (come definito in golang.org/x/mod/sumdb/note)
o in formato PEM standard:
- Formato del verificatore di note (
<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-----
Log archiviato (V1)
Prima dell'aggiornamento del terzo trimestre del 2026, il log funzionava con un'implementazione V1 precedente che utilizzava firme ECDSA (NIST P-256 con SHA-256). Il log V1 viene archiviato ed è di sola lettura, ma rimane accessibile pubblicamente per la verifica delle voci storiche:
- Checkpoint: https://www.gstatic.com/android/binary_transparency/mainline/2026/01/checkpoint.txt
- Foglie di dati: https://www.gstatic.com/android/binary_transparency/mainline/2026/01/module_info.txt
- Tile Root:
https://www.gstatic.com/android/binary_transparency/mainline/2026/01/tile/ - Chiave pubblica (formato PEM, ECDSA P-256):
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr6nPds8eKCYU42avidXNM1GDCtQ/
66GjGuIpUcZjqQNngwRFVCFZDpWuvDnqXzhJRxqccL9lbeEVVZGpa4x6pg==
-----END PUBLIC KEY-----
Poiché i moduli Mainline sono simili agli APK, i metodi di verifica descritti nella pagina di verifica degli APK di Google si applicano anche in questo caso. Puoi utilizzare i metodi descritti per verificare le rivendicazioni effettuate nel modello del richiedente.