Sobre os Blocos

Informações gerais sobre a Transparência binária do Android estão disponíveis em 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 de fábrica do Pixel. Além disso, esses hashes são empacotados em blocos. Para uma visão geral de como dividir a árvore em blocos, consulte Blocos de um registro.

Nesse registro, os nós são criptografados com hash usando SHA256. Usamos a tlog biblioteca para gravar os blocos especificamente com uma altura de bloco de 1. Isso significa que cada bloco contém no máximo 2^height = 2 hashes, cada um deles 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.

Os detalhes das construções de caminho de bloco podem ser encontrados nos documentos do bloco 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://gstatic.com/android/binary_transparency/google1p/jwt/2026/01/tile
  • Registro de transparência de apps de produtos do Google
    • https://gstatic.com/android/binary_transparency/google1p/apk/2026/01/tile
  • Registro de transparência do módulo principal
    • https://gstatic.com/android/binary_transparency/mainline/2026/01/tile

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 procurando a entrada no índice 3, ela será o primeiro hash no bloco t(0, 1). Os caminhos para blocos estão no formato tile/H/L/NNN[.p/W]. Portanto, 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.