# Зафиксированные сторонние исходники

Каталог содержит снимки исходников, необходимые для проверки происхождения и
воспроизведения нативных компонентов OnlyUs.

## WDTT

- Каталог: `wdtt`
- Upstream: https://github.com/amurcanov/proxy-turn-vk-android
- Коммит: `0a269b3ee148110485f21cd9f6005922e15c8f76`
- Лицензия: GPL-3.0-only

Сборка Android-библиотеки выполняется upstream-скриптом:

```bash
cd third_party/wdtt
export ANDROID_NDK_HOME=/path/to/android-ndk
./scripts/build-go-lib.sh arm64-v8a
```

Полученный файл
`app/src/main/jniLibs/arm64-v8a/libclient.so` копируется в OnlyUs как
`app/src/main/jniLibs/arm64-v8a/libwdtt.so`.

Для контрольной сборки требуется версия Go, указанная в
`third_party/wdtt/app/src/main/assets/android-client/go.mod`.

## libXray

- Каталог: `libxray`
- Upstream: https://github.com/XTLS/libXray
- Коммит: `e663ac14f53fec69a0d19ce2050a16ab1ce24a53`
- Лицензия: MIT
- Xray-core:
  `v1.260327.1-0.20260728075948-5ca6f4b7d4dc`

Официальная команда сборки:

```bash
cd third_party/libxray
python3 build/main.py android
```

Локальная AAR была собрана Go `1.26.5` с параметром линковщика
`-Wl,-z,max-page-size=16384`. Это подтверждается Go build metadata внутри
`jni/*/libgojni.so`.

## Обновление снимков

Снимок нельзя обновлять простым копированием `main`. Для каждого обновления
нужно:

1. выбрать полный upstream commit SHA;
2. импортировать только отслеживаемые этим коммитом файлы;
3. пересобрать нативный компонент;
4. обновить хеши в `THIRD_PARTY_NOTICES.md`;
5. проверить лицензии новых транзитивных зависимостей;
6. протестировать все поддерживаемые ABI и страницы памяти 16 КБ.

## AmneziaWG Android native backend

- Go wrapper: `amneziawg-android-v2.0.1-libwg-go`
- Upstream: https://github.com/amnezia-vpn/amneziawg-android
- Тег: `v2.0.1`
- Коммит: `fb64e74ba5a0a54e9185b8776bcb8088afb772c9`
- awg-go: `v0.2.18`

Выполненная для Google Play пересборка не меняет сетевой протокол. Отличие от
официального бинарника заключается в версии Go toolchain и добавленном
линкерном параметре размера страницы 16 КБ.

Windows-команда:

```powershell
.\scripts\rebuild-amneziawg-native.ps1 `
    -AndroidNdk "$env:LOCALAPPDATA\Android\Sdk\ndk\28.2.13676358"
```
