Repository navigation
uk BINARIES
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 обіцяє, що всередині нього не постачається нічого непрозорого. Він працює як root і читає ваш найприватніший стан, тож ви повинні мати змогу бачити точно, що він несе. Ця сторінка перелічує один нативний інструмент, який постачають застосунок і модуль, звідки він походить і як його перевірити.
VD Google постачає рівно один нативний інструмент: команду sqlite3, разом із невеликим набором
спільних бібліотек, які їй потрібні. Вона необхідна, тому що власний фреймворковий SQLite в
Android на деяких ROM виробників не може відкривати бази даних інших застосунків, через що VD
Google на таких пристроях нічого не читав би. Дивіться Архітектуру, чому так.
-
Отримано з upstream, ніколи з пристрою.
sqlite3та його бібліотеки походять з офіційного репозиторію пакетів Termux (packages.termux.dev/apt), з підписаних.deb-пакетів, ніколи не скопійовано з Termux, встановленого на якомусь телефоні. -
Скрізь ті самі байти. Ідентичні файли постачаються в застосунку (у
assets/bin/) та в WebUI-модулі (уbin/), тож обидва читають через один рушій і узгоджуються. - Контрольна сума: ідентичність. За яким би шляхом не лежала копія, вона є справжнім інструментом лише тоді, коли її SHA-256 збігається із зафіксованим значенням.
-
Зафіксований слід аудиту. Кожен каталог ABI несе
PROVENANCE.json, що перелічує кожен вихідний пакет (назва, версія, URL, SHA-256.deb) та SHA-256 кожного постаченого файлу. Нічого не постачається без запису, який ви можете перевірити.
.github/scripts/build_bin.sh збирає корисне навантаження під час збірки, без компілятора і без
NDK. Для кожного ABI він:
- читає індекс Termux Packages і розв'язує пакет
sqliteразом із його транзитивними залежностями (readline,ncurses,zlib,libandroid-support); - завантажує та розпаковує офіційні підписані
.deb-файли; - копіює
sqlite3, потім копіює лише замикання спільних бібліотек, яке бінарний файл дійсно потребує (розв'язане за допомогоюreadelf), пропускаючи бібліотеки, які Android завжди надає сам; - записує
PROVENANCE.json.
Бінарні файли Termux динамічно зліновані з власними бібліотеками Termux, тож VD Google постачає
це замикання разом із sqlite3 і запускає його з LD_LIBRARY_PATH, що вказує на вбудований
каталог lib/. Termux використовує версіоновані soname (libz.so.1, libreadline.so.8,
libncursesw.so.6), тож вони ніколи не конфліктують із власними бібліотеками фреймворку Android.
LD_LIBRARY_PATH встановлюється лише для процесу sqlite3, ніколи глобально.
Upstream-оболонка командного рядка SQLite, пакет Termux sqlite 3.54.1-1. Одне корисне
навантаження на ABI: бінарний файл sqlite3 плюс його замикання з чотирьох бібліотек
(libreadline.so.8, libncursesw.so.6, libz.so.1, libandroid-support.so). Кожен постачений
файл, з його SHA-256 та розміром:
arm64-v8a:
7aa726994d3b6316941eebd5a19e8155492281cd10d86dd9e04c9f11a400dad3 sqlite3 (1584288 bytes)
739cf829511d71dafd6c67fdbb70f3f0c6048642ea2e1967790ee961fde14430 lib/libandroid-support.so (20736 bytes)
795f855f5a988d9e89116847b2c9aa03720cedbc02026259ca735be25398c4c5 lib/libncursesw.so.6 (384496 bytes)
7437d5e30e2a326f3000286295cb9ba30a2e45f9ca5a91feba9ec12d0f1a161d lib/libreadline.so.8 (321912 bytes)
df5e95e3ea1ffb8f2e0dcebfc43a6c0824b6aebec11752ad8f8764123e24f8a6 lib/libz.so.1 (74056 bytes)
armeabi-v7a:
ca1f5837b178a4b08b10baba585e80565b83ebe269d60770795cb8aa3bd3e053 sqlite3 (1079112 bytes)
2d569da2ffc5515fd4d634f22ab5d13c2686d38e8869ceed847ad3319c6bf999 lib/libandroid-support.so (17384 bytes)
e7c301bc235e39984ab71f1906b00cc8cdfaea3451207597bc96132c8e247ca9 lib/libncursesw.so.6 (255700 bytes)
9151947397181668cc3cf5bdb9560f0e1b299d7b43bf2b5b65fc236de081c5b8 lib/libreadline.so.8 (206236 bytes)
fcf98d0343a3bc6326e08f92ca30f7a456eca87aa3834c05c1042a1c2daedeac lib/libz.so.1 (56048 bytes)
Ті самі контрольні суми зафіксовані в кожному bin/<abi>/PROVENANCE.json, який постачається
поруч із бінарним файлом.
З вивантаженої копії джерела підтвердіть кожен постачений файл:
sha256sum VDGoogle/app/src/main/assets/bin/*/sqlite3 VDGoogle/app/src/main/assets/bin/*/lib/* \
VDGoogle/webui/bin/*/sqlite3 VDGoogle/webui/bin/*/lib/*Кожен хеш має збігатися з наведеним вище переліком, а копії застосунку та WebUI мають збігатися
одна з одною. Щоб проаудитувати все корисне навантаження від початку до кінця, повторно отримайте
зафіксовані URL .deb, перелічені в кожному PROVENANCE.json, розпакуйте їх і порівняйте
значення SHA-256 файлів.
sqlite3 запускається як root проти відкладеної вбік копії бази даних, суто для читання. Він
ніколи не використовується, щоб писати в будь-яку з баз даних Google. Його єдине завдання: дати
VD Google читати ті самі значення на кожному пристрої. Жоден інший нативний бінарний файл не
постачається.
Ця документація створена за допомогою Claude (Anthropic) і підтримується VD171. Виправлення та покращення вітаються; див. CONTRIBUTING.md.