About Tiles
Stay organized with collections
Save and categorize content based on your preferences.
General information about the Android Binary Transparency is available on
the main Binary Transparency Page.
This page contains more details on the format of the files under the various
tile/
directories.
These files contain the hashes of the Merkle Tree
nodes representing the Binary Transparency log for Pixel Factory Images.
Furthermore, these hashes are packaged into tiles. For an overview of how
splitting the tree into tiles see Tiling a Log.
In this log, the nodes are hashed using SHA256. We use the
tlog library to write the
tiles specifically with a tile height of 1. That means that each tile contains
at most 2^height = 2 hashes, each of them 32 bytes.
Details of tile path constructions can be found in the
tlog Tile docs.
The root of the tile for the each log is served at:
- Pixel Transparency Log
https://developers.google.com/android/binary_transparency/tile
- Google System APK Transparency Log
https://developers.google.com/android/binary_transparency/google1p/tile/
Example of Computing with Tiles
To better understand how tiles work, we walk through an example using Pixel
Transparency Log.
Let's assume a tree of size 8. If you're looking at entry at index 3,
it would be the first hash in tile t(0, 1)
. Paths for tiles are of the form
tile/H/L/NNN[.p/W]
. So, the path for tile t(0, 1)
would be
https://developers.google.com/android/binary_transparency/tile/1/0/001.
The tree root would be in tile t(3, 0)/1
, which is path
https://developers.google.com/android/binary_transparency/tile/1/3/000.p/1.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-12-02 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-12-02 UTC."],[[["\u003cp\u003eThis page provides details on the format of files within the \u003ccode\u003etile/\u003c/code\u003e directory, which contain hashes of Merkle Tree nodes representing the Binary Transparency log for Pixel Factory Images.\u003c/p\u003e\n"],["\u003cp\u003eThese hashes are organized into tiles, utilizing SHA256 hashing and the \u003ccode\u003etlog\u003c/code\u003e library with a tile height of 1, resulting in a maximum of 2 hashes per tile.\u003c/p\u003e\n"],["\u003cp\u003eTile paths are constructed following the \u003ccode\u003etlog Tile\u003c/code\u003e documentation and are represented in the format \u003ccode\u003etile/H/L/NNN[.p/W]\u003c/code\u003e, enabling specific hash retrieval within the log structure.\u003c/p\u003e\n"],["\u003cp\u003eAccessing specific entries involves locating the corresponding tile based on its index; for instance, entry 3 resides in tile \u003ccode\u003et(0, 1)\u003c/code\u003e, found at the path \u003ccode\u003etile/1/0/001\u003c/code\u003e.\u003c/p\u003e\n"]]],["The `tile/` directories contain SHA256 hashes of Merkle Tree nodes, representing the Binary Transparency log for Pixel Factory Images. These hashes are organized into tiles, with each tile containing at most two 32-byte hashes. The tile path structure is `tile/H/L/NNN[.p/W]`. For example, the tile for entry index 3 in a size-8 tree is found at path `/1/0/001`. The root tile is located at path `/1/3/000.p/1`. The Pixel Transparency Log and Google System APK Transparency Log can be found in specific URLs.\n"],null,["# About Tiles\n\nGeneral information about the Android Binary Transparency is available on\nthe main [Binary Transparency Page](https://developers.google.com/android/binary_transparency/overview).\n\nThis page contains more details on the format of the files under the various\n`tile/` directories.\n\nThese files contain the hashes of the [Merkle Tree](https://research.swtch.com/tlog#merkle_trees)\nnodes representing the Binary Transparency log for Pixel Factory Images.\nFurthermore, these hashes are packaged into tiles. For an overview of how\nsplitting the tree into tiles see [Tiling a Log](https://research.swtch.com/tlog#tiling_a_log).\n\nIn this log, the nodes are hashed using SHA256. We use the\n[tlog](https://pkg.go.dev/golang.org/x/mod/sumdb/tlog#Tile) library to write the\ntiles specifically with a tile height of 1. That means that each tile contains\nat most 2\\^height = 2 hashes, each of them [32 bytes](https://pkg.go.dev/cmd/go/internal/tlog#HashSize).\n\nDetails of tile path constructions can be found in the\n[tlog Tile docs](https://pkg.go.dev/golang.org/x/mod/sumdb/tlog#Tile).\n\nThe root of the tile for the each log is served at:\n\n- Pixel Transparency Log\n - `https://developers.google.com/android/binary_transparency/tile`\n- Google System APK Transparency Log\n - `https://developers.google.com/android/binary_transparency/google1p/tile/`\n\nExample of Computing with Tiles\n-------------------------------\n\nTo better understand how tiles work, we walk through an example using Pixel\nTransparency Log.\nLet's assume a tree of size 8. If you're looking at entry at index 3,\nit would be the first hash in tile `t(0, 1)`. Paths for tiles are of the form\n`tile/H/L/NNN[.p/W]`. So, the path for tile `t(0, 1)` would be\n\u003chttps://developers.google.com/android/binary_transparency/tile/1/0/001\u003e.\nThe tree root would be in tile `t(3, 0)/1`, which is path\n\u003chttps://developers.google.com/android/binary_transparency/tile/1/3/000.p/1\u003e."]]