# Сторонние компоненты

Этот файл фиксирует известное происхождение компонентов Android-клиента.
Перед каждым публичным релизом список и контрольные суммы нужно обновлять.

## WDTT

- Проект: `amurcanov/proxy-turn-vk-android`
- Upstream: https://github.com/amurcanov/proxy-turn-vk-android
- Базовый коммит: `0a269b3ee148110485f21cd9f6005922e15c8f76`
- Лицензия: GNU GPL v3.0
- Соответствующие исходники: `third_party/wdtt`
- Артефакты в OnlyUs: `app/src/main/jniLibs/*/libwdtt.so`
- SHA-256 arm64-v8a: `bc13995a72dcc61e4f5836251deed23f8808a2812038a811bc448f0b61b2c344`
- SHA-256 armeabi-v7a: `d501c2635a9aab0c1e58f708f2b9d05b3fab37f399dc7f1404b3d4ccd8053077`
- SHA-256 x86: `9832b35aa0b1bed2439abc80c69736168c141c6518032a9b3ca2e686b5428d5a`
- SHA-256 x86_64: `c7f1b227cd82ed61afb22b1565b02c6ffd8088f2dd0d7af8f7ce2e961e03ad15`

Нативные библиотеки собраны из сохранённого снимка исходников `third_party/wdtt` скриптами
`third_party/wdtt/scripts/build-go-lib.sh` и `build-go-lib.bat`. Контрольные суммы выше
являются источником истины для опубликованной сборки; утверждение о побайтном совпадении
допускается только после воспроизводимой проверки в релизном CI.
Полный снимок исходников включён в этот проект. Локальные изменения серверного
деплоя OnlyUs не входят в Android APK и не использовались при сборке
`libwdtt.so`.

## AmneziaWG / WireGuard Android tunnel

- Проекты: `amnezia-vpn/amneziawg-android`, WireGuard Android tunnel library
- Базовый Android-тег нативного Go backend: `v2.0.1`
- Коммит тега: `fb64e74ba5a0a54e9185b8776bcb8088afb772c9`
- awg-go: `v0.2.18`
- Соответствующий снимок Go wrapper:
  `third_party/amneziawg-android-v2.0.1-libwg-go`
- Лицензия Java/Android-модуля: Apache License 2.0
- Сохранённый текст Apache 2.0: `COPYING`
- Используемые нативные библиотеки находятся в `tunnel/src/main/jniLibs`.

Arm64 и x86_64 библиотеки пересобраны из зафиксированных исходников с
линкерным параметром `-Wl,-z,max-page-size=16384`. Скрипт:
`scripts/rebuild-amneziawg-native.ps1`.

Контрольные суммы пересобранных файлов:

- arm64 `libwg-go.so`:
  `1b8c036a9eb7dbb129759d1bbc434fc179a39d3ac0a5fa95f8a86c9720e02e2b`
- arm64 `libwg-quick.so`:
  `a52e1d3cb3bc7ca7cba9fb928a644115018045ab8cdf2aa71697d5ee7596dc61`
- arm64 `libwg.so`:
  `84132ccb0d0a030aaa4ddd3cd533f18bdca6a67597a4fbf8916796a9249b248c`
- x86_64 `libwg-go.so`:
  `7dd7c62c9dc5887d0390a424b596809a7ad1454cfdebd1d2bff224f9e0d8c618`
- x86_64 `libwg-quick.so`:
  `2f654e9c1d2503e8d9984412ec8a3ee067162e18f77da4285804d36b9ba25263`
- x86_64 `libwg.so`:
  `37e41af1ae2ffa525353d65f0c5882f6a0af3e33ff6b010ac5d119728012bfb8`

В дереве `tunnel/tools` также присутствуют инструменты под GPL-2.0,
GPL-3.0-or-later, LGPL-2.1+ и MIT. Не все инструменты обязательно попадают в
APK; их исходные уведомления должны сохраняться.

## hev-socks5-tunnel

- Проект: `heiher/hev-socks5-tunnel`
- Лицензия: MIT
- Текст: `app/libs/hev-socks5-tunnel-LICENSE`
- Нативные библиотеки: `app/src/main/jniLibs/*/libhev-socks5-tunnel.so`

## libXray

- Проект, указанный в Java bindings: `github.com/xtls/libxray`
- Upstream: https://github.com/XTLS/libXray
- Исходный коммит: `e663ac14f53fec69a0d19ce2050a16ab1ce24a53`
- Соответствующие исходники: `third_party/libxray`
- Лицензия libXray: MIT
- Версия Xray-core:
  `v1.260327.1-0.20260728075948-5ca6f4b7d4dc`
- Артефакты: `app/libs/libXray.aar`, `app/libs/libXray-sources.jar`
- SHA-256 AAR: `4708a361a74f7e955635dbe3661cefb459bdc867423c3b1826a2c5a6ea4ac77d`
- SHA-256 sources JAR:
  `fee9be84fb7a19afed268b1e3f94f7353df3b1db7da14e0787964a7b115a9204`

Происхождение подтверждено по Go build metadata внутри каждой нативной
библиотеки AAR и `go.mod` указанного коммита. Следующий upstream-коммит менял
только Windows ARM64 workflow и не затрагивал Android-исходники.

## AndroidX и Android Gradle dependencies

Зависимости из Google Maven и Maven Central разрешаются Gradle. Их версии
зафиксированы в `gradle/libs.versions.toml` и `app/build.gradle.kts`.
Соответствующие лицензии должны быть включены в итоговый экран лицензий и
релизный отчёт.
