L×Box v2.3.5
Лейблы уровня AWG (awg / awg1.5 / awg2) с masquerade-суффиксом +, импорт серверов из файла, стабилизационные фиксы из глубокого аудита кода (§141) и обновление ядра до v1.13.13-lx.12.
Quick links:
✨ Added ·
🔧 Changed ·
🛠 Fixed ·
🔬 Verified ·
📲 Install ·
🇷🇺 На русском
✨ Added
| # | Что |
|---|---|
| §148 | Лейблы уровня AWG — нода показывает awg / awg1.5 / awg2 по официальной классификации AmneziaWG (по старшему присутствующему маркеру в сыром JSON). Masquerade (ip/id/ib) добавляет суффикс +
|
| §149 | Servers → «Import from file…» — новый пункт overflow-меню (⋮), в группе «добавить контент извне» (после Scan QR code). Импорт конфига/подписки из локального файла
|
| §147 | Debug API: POST /warp — программная регистрация WARP-узла без UI (тот же путь, что кнопка Get WARP). Все поля опциональны (licenseKey/endpoint/obfuscate/forceNew/includeReserved/quicParams); obfuscate=true → §143 masquerade; ?rebuild=true регенерирует конфиг. Debug-only (bind 127.0.0.1, bearer-token)
|
🔧 Changed
| # | Было | Стало |
|---|---|---|
| Ядро | v1.13.13-lx.11
| v1.13.13-lx.12 (обратно-совместимо; основа для §146 fragmented-QUIC)
|
| §148 | awg+ как отдельный лейбл
| awg+ невозможен — masquerade поднимает базу минимум до awg1.5+
|
| §141 | Имена MethodChannel/EventChannel дублировались строками в 6+ Dart-файлах
| Централизованы в platform_channels.dart (опечатка больше не рвёт канал молча)
|
| §141 | Magic-numbers диапазона debug-порта (1024..49151)
| Константы SettingsStorage.debugPortMin/debugPortMax
|
🛠 Fixed
| # | Что |
|---|---|
| §141 | JNI no-throw — BoxService.serviceReload/getSystemProxyStatus/setSystemProxyEnabled: внешнее тело обёрнуто runCatching + fail-safe. Unchecked exception через JNI = Runtime::Abort всего процесса (крашило старые API)
|
| §141 | cancelMassPing() теперь зовётся в disconnected/revoked-ветке _handleStatusEvent (симметрия с _onTunnelDead)
|
| §141 | .handleError на status-broadcast перед asBroadcastStream — анти-зомби стрима
|
| §141 | Гонки read-after-await: снимок tunnelUp снимается один раз после await (не по устаревшему статусу)
|
| §148 | Чистка WARP endpoint-пула: убраны дохлые/режущиеся на LTE-DPI 8.x-блоки. Остались твёрдые anycast 162.159.192/195 + 188.114.96-98
|
🔬 Verified
flutter analyzeclean ·flutter test— 1151 passed.- Ядро —
v1.13.13-lx.12(форк sing-box-lx, fetch с SHA256-verify). - Local smoke release-APK перед тегом (см. Install ниже).
📲 Install
adb install -r app-release.apkБез uninstall! Поверх существующей установки. Настройки и подписки сохранятся.
🇷🇺 Кратко на русском
- Метки AWG на нодах:
awg/awg1.5/awg2(по официальной классификации Amnezia), а+означает включённый masquerade.awg+больше не бывает — masquerade всегда поднимает уровень минимум доawg1.5+. - Импорт серверов из файла — в меню «⋮» экрана Servers появился пункт «Import from file…».
- Стабильность (§141): закрыт класс крашей старых Android из-за исключений на границе JNI; убраны гонки в обработке статуса туннеля; имена платформенных каналов сведены в одно место.
- Новое ядро
v1.13.13-lx.12.
Предыдущий релиз: v2.3.4.