Skip to content

ja ARCHITECTURE

github-actions[bot] edited this page Nov 14, 2026 · 3 revisions

Languages: English | العربية | Čeština | Deutsch | Español | فارسی | Français | हिन्दी | Bahasa Indonesia | Italiano | 日本語 | 한국어 | Nederlands | Polski | Português | Русский | Svenska | ไทย | Türkçe | Tiếng Việt | 中文


アーキテクチャ

VD Google がどのように作られ、なぜそうなっているか。このページでは設計と原則を説明します。 各リーダーが使う正確なファイル、テーブル、クエリは列挙しません。それは設計上、ソースコードの 中だけに存在します。アプリとドキュメントが、同じ値を偽装したい人のための手引きへと決して 逸脱しないようにするためです。

設計目標

  1. 真実を読む。 Google 自身のアプリがすでに記録したものを示し、それを説明し、決して値を でっち上げない。デバイスに答えがないときは、不明と言う。
  2. ネットワークはゼロ。 アプリは一切の権限を宣言せず、WebUI はあらゆるリモートオリジンを ブロックする。何も、どこにも、決して送信されない。
  3. ひとつの挙動、ふたつの顔。 アプリと WebUI モジュールは完全に同一に保たれる。同じ シグナル、同じ文言、同じエクスポートレポート。
  4. お世辞より誠実さ。 本当の否定は否定として示し、古いキャッシュはキャッシュと表示し、 欠けている値は不明とする。検出が見栄えのために和らげられることは決してない。

ふたつの顔

  • アプリは Jetpack Compose(Material 3)を用いた Kotlin 製です。su を直接シェルで 呼び出すのではなく、libsu の RootService を通じて root を取得し、その特権サービスの 中で読み取ります。
  • WebUI モジュールは、あなたの root マネージャー(KernelSU、APatch、Magisk)が提供する 小さな HTML/JS の web root です。マネージャーの root ブリッジを通じて同じ読み取りを 行います。厳格な Content-Security-Policy があらゆるリモートオリジンを禁じているため、 ページは原理的にも外部へ通信できません。

どちらも 21 言語の共有された単一の文字列セットから生成されるため、ラベルが二度翻訳される ことは決してありません。

データベースを読む: 同梱の sqlite3

VD Google が読む状態の一部は、Google のアプリに属する SQLite データベースの中にあります。 Android は独自の SQLite を同梱していますが、フレームワークの SQLite は、脇にコピーした別の アプリのデータベースを開く際に信頼できません。一部のメーカー ROM ではすべてのデータベースで 失敗し、何も返しません。あらゆるデバイスで同じように読むため、VD Google は独自の sqlite3 バイナリ(arm64 と arm32)を同梱し、root としてそれを通じてクエリを実行します。アプリと WebUI は同一のバイナリを使うため、常に同じエンジンと同じ結果を読み取ります。そのバイナリの 由来とチェックサムは同梱バイナリに記載されています。

読み取りは、開く前にデータベースを脇にコピーし、生きたファイルには決して触れず、実行中の データベースが不正と報告しうる共有メモリインデックスも決してコピーしません。

RCS シグナル

RCS を誠実に読むうえで最も難しいのは、分かりやすいフラグが嘘をつくことです。単純な「利用可能」 フラグ、機能フラグ、プロビジョニング状態は、RCS が完璧に機能している回線でもすべて否定を 示すことがあります。それらがキャッシュであるか、あるいは回線がキャリアの IMS ネットワークでは なく Google 自身のバックエンド(Jibe)で動いているためです。VD Google は、実際のチャット 設定とプロビジョニングエンジンから単一の接続判定を算出します。これは Android や Google Messages のバージョンをまたいで正しいままであり、嘘をつくフラグはキャッシュと明示してラベル 付けすることで、誤解を招かずに情報を提供します。各行の意味についてはユーザーガイド を参照してください。

エクスポート

エクスポートはサニタイズされた JSON のスナップショットです。何かが書き込まれる前にサニタイザー が実行されます。資格情報のように見えるキーと値を落とし、長い数字の連なりを伏せ字にし、 あなたの電話番号、メッセージの内容、連絡先の名前、生のケイパビリティ blob を決して出力しません。 任意の診断セクションはスキーマ名、カウント、サイズ、バージョンのみを運びます。そこでさえ、 名前に埋め込まれた個別の識別指紋はすべて畳み込まれて消されます。アプリと WebUI は同じスキーマ を生成します。

VD Google が決してしないこと

  • ネットワーク権限を決して宣言せず、WebUI は決してリモートオリジンに接続しない。
  • 値を決して捏造、偽装、隠蔽しない。
  • Play Integrity の判定を決して報告しない。その判定はデバイス上に存在しないからである。
  • 状態を変更するのは、明示的で、確認済みで、ローカルに記録されたアクションを通じてのみである。

このドキュメントは Claude (Anthropic) で生成され、VD171 によって保守されています。修正や改善を歓迎します。CONTRIBUTING.md を参照してください。

Clone this wiki locally