Sobre os Blocos

Informações gerais sobre a transparência binária do Android estão disponíveis na página principal da transparência binária.

Esta página contém mais detalhes sobre o formato dos arquivos nos vários diretórios tile/.

Esses arquivos contêm os hashes dos nós da árvore de Merkle que representam o registro de transparência binária para imagens da Pixel Factory. Além disso, esses hashes são agrupados em blocos. Para uma visão geral de como dividir a árvore em blocos, consulte Dividir um registro em blocos.

Nesse registro, os nós são criptografados com hash usando SHA256. Usamos a biblioteca tlog para gravar os blocos especificamente com uma altura de 1. Isso significa que cada bloco contém no máximo 2^altura = 2 hashes, cada um com 32 bytes.

No entanto, para registros subsequentes (mais recentes), os blocos são definidos com uma altura de 8. Isso significa que cada bloco contém no máximo 2^8 = 256 hashes.

Detalhes sobre construções de caminhos de blocos podem ser encontrados na documentação de blocos tlog.

A raiz do bloco para cada registro é veiculada em:

  • Registro de transparência do Pixel
    • https://developers.google.com/android/binary_transparency/tile
  • Registro de transparência do código do Google
    • https://www.gstatic.com/android/binary_transparency/google1p/jwt/2026/01/package_info.txt
  • Registro de transparência dos apps de produtos do Google
    • https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/01/package_info.txt
  • Registro de transparência do módulo principal
    • https://www.gstatic.com/android/binary_transparency/mainline/2026/01/module_info.txt

Exemplo de computação com blocos

Para entender melhor como os blocos funcionam, vamos analisar um exemplo usando o registro de transparência do Pixel. Vamos supor uma árvore de tamanho 8. Se você estiver analisando a entrada no índice 3, ela será o primeiro hash no bloco t(0, 1). Os caminhos para blocos são do formato tile/H/L/NNN[.p/W]. Assim, o caminho para o bloco t(0, 1) seria https://developers.google.com/android/binary_transparency/tile/1/0/001. A raiz da árvore estaria no bloco t(3, 0)/1, que é o caminho https://developers.google.com/android/binary_transparency/tile/1/3/000.p/1.