Заморозка ядер для пары Windows 0.8.21 / Android v0.5.0 (ядра без изменений). Тег v0.9.0 не публиковался. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.9 KiB
Карта исходников
Раскладка Android и Windows выполнена 2026-09-05. Перенос файлов не изменяет поведение соединения, формат профилей или статус готовности нового WG/AWG runtime. Старые forwarding/shim-копии не оставлены.
Android
app/src/main/java/io/github/zapretkvn/android/
├── vpn/ сервис, контроллер, состояние и recovery VPN
├── engines/
│ ├── singbox/ libbox setup, iterators, selector reconciliation
│ └── hysteria/ runtime/recovery contract
├── network/ Android DNS, underlying network, bootstrap
│ └── probes/ health, latency, ping, external IP
├── platform/ Android TUN/socket adapter и системная VPN policy
├── apps/ обнаружение/выбор приложений, per-app scope, ViewModel
├── diagnostics/ исходные ошибки, журнал, метрики и экспорт
├── profiles/ хранение и редактирование профилей
├── importer/ импорт ключей, QR и подписок
├── config/, routing/ native JSON и правила
├── updates/ обновления приложения
└── ui/ Compose-интерфейс: AppRoot, nav/, home/, servers/,
routing/, apps/, settings/ (экран + презентер на пакет)
core/
├── ui-model/ чистые форматтеры и тексты (без Android и домена)
└── designsystem/ тема, токены, общие Compose-компоненты, иконки
ZapretVpnService и ZapretQuickSettingsTileService остаются в пакете vpn:
их имена используются Android, поэтому перенос внутренностей не меняет
системные ComponentName, applicationId, профили и сохранённые настройки.
Четыре движка сохраняют прежние границы: sing-box исполняет routing/DNS и владеет
единственным системным TUN; Xray, Hysteria и Amnezia WG/AWG обслуживают свой
transport. Встроенные Go-адаптеры изменяются через core-patches. Пустые
Kotlin-пакеты Xray/Amnezia не создаются. Для движков и рантайма отдельные
Gradle-модули тоже не создаются; исключение — UI-модули core/ui-model и
core/designsystem (0.5.0): они не знают про VPN, профили и сторы.
Существующие app-updater, network-bootstrap, wireguard-import
остаются независимыми библиотеками. Тесты перенесённых компонентов также
распределены по соответствующим пакетам.
Windows
В xray_fluent оставлены только корневые __init__.py и constants.py.
Код сгруппирован по application, engines/<core>, profiles, importer,
diagnostics, network, platform/windows, updates, ui.
Go-реле — самостоятельный модуль runtime/amnezia.
Проверка структуры
scripts/verify-project.sh, :app:testDebugUnitTest,
:app:assembleDebugAndroidTest. Windows выполняет свой полный host-набор.
ADB необязателен; сборка instrumentation APK не считается device-прогоном.
Публикация stable и функциональная приёмка нового WG/AWG — отдельные gates.