Android Mainline モジュールの透明性ログ

Android Mainline モジュールの透明性ログは、検証可能なデータ構造を使用して Mainline モジュールの整合性を確保します。

透明性ログの有用性は、Pixel Binary Transparency や証明書の透明性などのプロジェクトで実証されています。

透明性ログはマークルツリーに基づいて構築されます。このページは、マークルツリーとバイナリの透明性に関する一般的な知識があることを前提としています。マークルツリーの概要については、検証可能なデータ構造をご覧ください。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/ で提供されます。

これらの URL は標準のウェブページではありません。代わりに、Tessera や Golang SumDB Tlog ライブラリなどのツールを使用して、サブディレクトリ内のログエントリにプログラムでアクセスする必要があります。

  • ツリータイル: Merkle ツリーの内部ノードとリーフノードのハッシュは、tile/<level>/<path>(例: tile/0/000、tile/1/000)で提供されます。
  • エントリ バンドル: ログリーフ ペイロードは、tile/entries/<path>(tile/entries/000、tile/entries/001 など)の下のエントリ バンドルに整理されます。各バンドルには、最大 256 個の連結されたエントリが保持されます。

各エントリの内容については、ログの内容をご覧ください。

チェックポイントに含まれるログのマークルツリー ルートハッシュは、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 四半期のアップデートより前は、ログは ECDSA(NIST P-256 と SHA-256)署名を使用する以前の V1 実装で運用されていました。V1 ログはアーカイブされ、読み取り専用になりますが、過去のエントリを検証するために引き続き一般公開されます。

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

Mainline モジュールは APK に似ているため、Google APK の確認ページに記載されている確認方法がここでも適用されます。これらのメソッドを使用して、Claimant Model で行われたクレームを検証できます。