О плитках

Общая информация о двоичной прозрачности Android доступна на главной странице двоичной прозрачности .

На этой странице содержится более подробная информация о формате файлов в различных tile/ каталогах.

Эти файлы содержат хэши узлов дерева Меркла, представляющие журнал двоичной прозрачности для изображений Pixel Factory. Кроме того, эти хеши упакованы в тайлы. Обзор того, как разбить дерево на плитки, см. в разделе «Разбиение журнала на плитки» .

В этом журнале узлы хешируются с использованием SHA256. Мы используем библиотеку tlog для записи тайлов с высотой 1. Это означает, что каждый тайл содержит не более 2^height = 2 хэшей, каждый из которых имеет размер 32 байта .

Подробности о конструкциях тайловых путей можно найти в документации tlog Tile .

Корень плитки для каждого журнала обслуживается по адресу:

  • Журнал прозрачности пикселей
    • https://developers.google.com/android/binary_transparency/tile
  • Журнал прозрачности Google System APK
    • https://developers.google.com/android/binary_transparency/google1p/tile/

Пример вычислений с плитками

Чтобы лучше понять, как работают плитки, мы рассмотрим пример с использованием журнала прозрачности пикселей. Предположим, что дерево имеет размер 8. Если вы ищете запись с индексом 3, это будет первый хеш в плитке t(0, 1) . Пути для плиток имеют вид tile/H/L/NNN[.p/W] . Таким образом, путь для плитки t(0, 1) будет https://developers.google.com/android/binary_transparency/tile/1/0/001 . Корень дерева будет находиться в плитке t(3, 0)/1 , это путь https://developers.google.com/android/binary_transparency/tile/1/3/000.p/1 .