Repository navigation
uk ARCHITECTURE
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 і чому. Ця сторінка пояснює дизайн та принципи. Вона не перелічує точні файли, таблиці чи запити, які використовує кожен читач: це живе лише у вихідному коді, за задумом, щоб застосунок і документація ніколи не скотилися до інструкції для того, хто хоче підробити ті самі значення.
- Читати правду. Показувати те, що вже записали власні застосунки Google, пояснювати це і ніколи не вигадувати значення. Коли пристрій не має відповіді, кажи Невідомо.
- Нуль мережі. Застосунок взагалі не оголошує жодних дозволів; WebUI блокує кожне віддалене походження. Нічого й ніколи нікуди не надсилається.
- Одна поведінка, два обличчя. Застосунок та модуль WebUI тримаються абсолютно ідентичними: ті самі сигнали, ті самі формулювання, той самий експортований звіт.
- Чесно, а не улесливо. Справжнє негативне показується як негативне; застарілий кеш позначається як кешований; відсутнє значення є Невідомим. Виявлення ніколи не пом'якшується, щоб виглядати приємніше.
-
Застосунок: це Kotlin з Jetpack Compose (Material 3). Він отримує root через libsu
RootService, ніколи не викликаючиsuнапряму, і читає всередині цієї привілейованої служби. - Модуль WebUI: це невеликий веб-корінь HTML/JS, що обслуговується вашим root-менеджером (KernelSU, APatch або Magisk). Він виконує ті самі читання через root-міст менеджера. Сувора Content-Security-Policy забороняє будь-яке віддалене походження, тож сторінка не може телефонувати додому навіть у принципі.
Обидва генеруються з одного спільного набору рядків 21 мовою, тож мітка ніколи не перекладається двічі.
Частина стану, який читає VD Google, живе в базах даних SQLite, що належать застосункам
Google. Android постачає власний SQLite, але SQLite фреймворку ненадійний при відкритті
відкладеної копії бази даних іншого застосунку: на деяких виробничих ROM він зазнає невдачі з кожною
базою даних, нічого не повертаючи. Щоб читати однаково на кожному пристрої, VD Google вбудовує
власний бінарний файл sqlite3 (arm64 та arm32) і виконує запити через нього як root. Застосунок
та WebUI використовують ідентичний бінарний файл, тож вони завжди читають той самий рушій і той самий
результат. Походження та контрольні суми цього бінарного файлу задокументовано в
Вбудовані бінарні файли.
Читання копіюють базу даних убік перед її відкриттям, ніколи не торкаючись живого файлу, і ніколи не копіюють індекс спільної пам'яті, який запущена база даних може повідомити як пошкоджений.
Найскладніше в чесному читанні RCS те, що очевидні прапорці брешуть. Простий прапорець "доступно", прапорці функцій та стан забезпечення можуть усі читатися негативно на лінії, де RCS працює ідеально, бо вони є кешами або тому що лінія працює через власний бекенд Google (Jibe), а не через мережу IMS оператора. VD Google обчислює єдиний вердикт З'єднання з реальної конфігурації чату та рушія забезпечення, який залишається правильним у всіх версіях Android та Google Messages, і подає брехливі прапорці чітко позначеними як кешовані, тож вони інформують, не вводячи в оману. Дивіться посібник користувача щодо того, що означає кожен рядок.
Експорт: очищений знімок JSON. Очищувач запускається перед тим, як щось записується: він відкидає ключі та значення, що виглядають як облікові дані, редагує довгі послідовності цифр і ніколи не видає ваш номер телефону, вміст повідомлень, імена контактів чи сирі блоби можливостей. Необов'язковий розділ діагностики несе лише назви схем, лічильники, розміри та версії, і навіть там будь-який відбиток окремої особи, вбудований у назву, згортається й видаляється. Застосунок та WebUI створюють ту саму схему.
- Він ніколи не оголошує мережевого дозволу, а WebUI ніколи не зв'язується з віддаленим походженням.
- Він ніколи не фабрикує, не підробляє і не приховує значення.
- Він ніколи не повідомляє вердикт Play Integrity, бо цього вердикту немає на пристрої.
- Він змінює стан лише через явну, підтверджену, локально записану дію.
Ця документація створена за допомогою Claude (Anthropic) і підтримується VD171. Виправлення та покращення вітаються; див. CONTRIBUTING.md.