Android 主系列模組透明化記錄

Android Mainline 模組透明度記錄會使用可驗證的資料結構,確保 Mainline 模組的完整性。

「透明化記錄」的實用性已透過 Pixel 二進位檔透明化和憑證透明化等專案獲得驗證。

透明度記錄檔是以默克爾樹為基礎建構而成。 本頁面假設您對 Merkle 樹狀結構和二進位透明度有一般瞭解。如要瞭解 Merkle 樹狀結構,請參閱「可驗證的資料結構」;如要瞭解 Android 內的二進位透明度工作,請參閱主要頁面。

代碼導入

Android Mainline 模組資訊公開記錄是使用 Tessera 實作,並遵循 tlog-tiles 規格,圖塊高度為 8 (每個圖塊或套件最多包含 28 = 256 個項目)。

記錄內容的根目錄位於: https://gstatic.com/android/binary_transparency/mainline/2026/02/tile/entries/

圖塊內容的根層級位於: https://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://gstatic.com/android/binary_transparency/mainline/2026/02/checkpoint 提供。檢查點來源為 gstatic.com/android/binary_transparency/mainline/modules/2026/1。

檢查點簽章是使用 Ed25519 簽章演算法產生。 您可以使用下列公開金鑰驗證檢查點的簽章,金鑰格式可以是附註驗證器格式 (如 golang.org/x/mod/sumdb/note 中所定義),也可以是標準 PEM 格式:

  • 驗證者附註格式 (<name>+<key_hash>+<public_key_bytes>):
MainlineModulesLogV2+e490c9dd+AfwnHm59rNQTJICchMd7a2W5PQa7nC5h2gTEfq3fhCEI
  • PEM 格式 (SubjectPublicKeyInfo):
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA/Ccebn2s1BMkgJyEx3trZbk9BrucLmHaBMR+rd+EIQg=
-----END PUBLIC KEY-----

封存的記錄 (V1)

在 2026 年第 3 季更新前,記錄檔是採用較早的 V1 實作方式,使用 ECDSA (NIST P-256 with SHA-256) 簽章。V1 記錄會封存並設為唯讀,但仍可公開存取,方便您驗證歷來項目:

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr6nPds8eKCYU42avidXNM1GDCtQ/
66GjGuIpUcZjqQNngwRFVCFZDpWuvDnqXzhJRxqccL9lbeEVVZGpa4x6pg==
-----END PUBLIC KEY-----

由於 Mainline 模組與 APK 類似,因此Google APK 驗證頁面所述的驗證方法也適用於此。您可以使用這些方法,驗證著作權人模型中的聲明。