Android Mainline 模組透明度記錄使用可驗證的資料結構,確保 Mainline 模組的完整性。
Pixel 二進位檔透明度和憑證透明化等專案,已證明透明度記錄的實用性。
資訊公開記錄是以 Merkle 樹狀結構為基礎。本頁面假設您已具備 Merkle 樹狀結構和二進位檔透明度的基本知識。如需 Merkle 樹狀結構的總覽,請參閱「可驗證的資料結構」;如需 Android 內二進位透明度工作的總覽,請參閱主頁面。
記錄導入
Android Mainline 模組資訊公開記錄是使用 Tessera 實作,並遵循 tlog-tiles 規格,圖塊高度為 8 (每個圖塊或套件最多包含 28 = 256 個項目)。
記錄內容的根目錄位於:
https://www.gstatic.com/android/binary_transparency/mainline/2026/02/tile/entries/
資訊方塊內容的根目錄位於:
https://www.gstatic.com/android/binary_transparency/mainline/2026/02/tile/
請注意,這些網址並非標準網頁。相反地,應使用 Tessera 或 Golang SumDB Tlog 程式庫等工具,以程式輔助方式存取子目錄中的記錄項目。
- 樹狀結構圖塊:Merkle 樹狀結構內部和葉節點雜湊會在
tile/<level>/<path>下提供 (例如tile/0/000、tile/1/000)。 - 項目套件:記錄葉酬載會整理成
tile/entries/<path>下的項目套件 (例如tile/entries/000、tile/entries/001),每個套件最多可容納 256 個串連項目。
如要瞭解各個項目包含的內容,請參閱「記錄內容」。
記錄的 Merkle 樹狀結構根雜湊包含在查核點中,並以查核點格式提供,網址為 https://www.gstatic.com/android/binary_transparency/mainline/2026/02/checkpoint。查核點來源為 android.transparency.goog/mainline/modules/2026/1。
檢查點簽章是使用 Ed25519 簽章演算法產生。檢查點的簽章可使用下列公開金鑰驗證,格式可為附註驗證器格式 (如 golang.org/x/mod/sumdb/note 所定義) 或標準 PEM 格式:
- 附註驗證者格式 (
<name>+<key_hash>+<public_key_bytes>):
android.transparency.goog/mainline/modules/2026/1+1a8e4064+AfwnHm59rNQTJICchMd7a2W5PQa7nC5h2gTEfq3fhCEI
- PEM 格式 (SubjectPublicKeyInfo):
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA/Ccebn2s1BMkgJyEx3trZbk9BrucLmHaBMR+rd+EIQg=
-----END PUBLIC KEY-----
封存記錄 (V1)
在 2026 年第 3 季更新前,記錄檔是採用較早的 V1 實作,使用 ECDSA (NIST P-256 搭配 SHA-256) 簽章。V1 記錄會封存並設為唯讀,但仍可公開存取,以便驗證歷來項目:
- 檢查點:https://www.gstatic.com/android/binary_transparency/mainline/2026/01/checkpoint.txt
- 資料葉:https://www.gstatic.com/android/binary_transparency/mainline/2026/01/module_info.txt
- Tile Root:
https://www.gstatic.com/android/binary_transparency/mainline/2026/01/tile/ - 公開金鑰 (PEM 格式,ECDSA P-256):
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr6nPds8eKCYU42avidXNM1GDCtQ/
66GjGuIpUcZjqQNngwRFVCFZDpWuvDnqXzhJRxqccL9lbeEVVZGpa4x6pg==
-----END PUBLIC KEY-----
由於 Mainline 模組與 APK 類似,因此 Google APK 驗證頁面所述的驗證方法也適用於此。您可以使用其中的方法,驗證著作權聲明方模型中的著作權聲明。