Informacje o kafelkach

Ogólne informacje o przejrzystości binarnych plików na Androida znajdziesz na głównej stronie przejrzystości binarnych plików.

Na tej stronie znajdziesz więcej informacji o formacie plików w różnych katalogach tile/.

Te pliki zawierają hasze drzewa Merkla reprezentujące dziennik przejrzystości binarnej dla obrazów z Pixel Factory. Ponadto te wartości są pakowane w płytki. Informacje o tym, jak podzielić drzewo na elementy, znajdziesz w artykule Rozdzielanie pliku dziennika na elementy.

W tym pliku logowania węzły są zahaszowane za pomocą algorytmu SHA256. Do zapisywania kafelków o wysokości 1 używamy biblioteki tlog. Oznacza to, że każda płytka zawiera maksymalnie 2^height = 2 hasze, z których każdy ma 32 bajty.

Szczegółowe informacje o konstrukcji ścieżek znajdziesz w dokumentacji Tile.

Płytka z rootem dla każdego dziennika jest wyświetlana pod adresem:

  • Dziennik przejrzystości Pixela
    • https://developers.google.com/android/binary_transparency/tile
  • Dziennik przejrzystości plików APK w systemie Google
    • https://developers.google.com/android/binary_transparency/google1p/tile/

Przykład obliczeń z użyciem kafelków

Aby lepiej zrozumieć, jak działają kafelki, omówimy przykład na podstawie dziennika przejrzystości Pixela. Załóżmy, że drzewo ma rozmiar 8. Jeśli interesuje Cię wpis o indeksie 3, będzie to pierwszy hash w płytce t(0, 1). Ścieżki do kafelków mają postać tile/H/L/NNN[.p/W]. Ścieżka do kafelka t(0, 1) to https://developers.google.com/android/binary_transparency/tile/1/0/001. Korzeń drzewa znajduje się w płytce t(3, 0)/1, czyli na ścieżce https://developers.google.com/android/binary_transparency/tile/1/3/000.p/1.