Informacje o kafelkach

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

Na tej stronie znajdziesz więcej informacji o formacie plików w poszczególnych katalogach tile/.

Te pliki zawierają hasze węzłów drzewa Merkle reprezentujących dziennik Binary Transparency dla obrazów fabrycznych Pixela. Ponadto te wartości są pakowane w postaci kafelków. Omówienie podziału drzewa na kafelki znajdziesz w artykule Dzielenie logu na kafelki.

W tym dzienniku węzły są szyfrowane za pomocą SHA256. Do zapisywania kafelków używamy biblioteki tlog, a wysokość kafelka wynosi 1. Oznacza to, że każdy fragment zawiera maksymalnie 2^height = 2 hasze, z których każdy ma 32 bajty.

W przypadku kolejnych (nowszych) logów kafelki są jednak ustawione na wysokości 8. Oznacza to, że każdy fragment zawiera maksymalnie 2^8 = 256 hashów.

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

Główny element kafelka dla każdego dziennika jest udostępniany pod adresem:

  • Dziennik przejrzystości Pixela
    • https://developers.google.com/android/binary_transparency/tile
  • Dziennik przejrzystości kodu Google
    • https://www.gstatic.com/android/binary_transparency/google1p/jwt/2026/01/package_info.txt
  • Dziennik przejrzystości aplikacji Google
    • https://www.gstatic.com/android/binary_transparency/google1p/apk/2026/01/package_info.txt
  • Dziennik przejrzystości modułu magistrali
    • https://www.gstatic.com/android/binary_transparency/mainline/2026/01/module_info.txt

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

Aby lepiej zrozumieć, jak działają kafelki, przeanalizujemy przykład z użyciem dziennika przejrzystości Pixela. Załóżmy, że mamy drzewo o rozmiarze 8. Jeśli sprawdzasz wpis na pozycji 3, będzie to pierwszy hash w kafelku 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 znajdowałby się w kafelku t(3, 0)/1, czyli w ścieżce https://developers.google.com/android/binary_transparency/tile/1/3/000.p/1.