github Leadaxe/LxBox v2.1.0
LxBox v2.1.0

latest releases: v2.25.20, v2.25.19, v2.25.19-rc.3...
4 months ago

L×Box v2.1.0

Релиз про прозрачность и устойчивость: в шторке теперь видно, на какой сервер идёт трафик и куда указывает дефолтный маршрут (§123), а две полевые истории про DNS закрыты — выключенный пресет больше не оставляет битых DNS-хвостов (§121), и Allow-list с DNS перестаёт ломаться на MIUI (§119).

Quick links:
🔔 Имя сервера в шторке ·
🐛 Fixes ·
🔬 Verified ·
📲 Install ·
🇷🇺 На русском


🔔 Имя сервера в шторке (§123)

Task spec.

Раньше постоянное уведомление foreground-сервиса показывало только бренд и статус — L×Box / Connected. Из шторки нельзя было понять, на какой сервер/ноду сейчас идёт трафик и куда указывает дефолтный маршрут.

Теперь уведомление говорит за себя:

L×Box [final = vpn-1]          ← title: бренд + сырое route.final
vpn-1: L: 🇫🇮⚡Финляндия-2        ← text:  <селектор>: <выбранная нода>
  • title = L×Box [final = <route.final>] — сырое значение route.final из конфига (direct, имя группы/селектора, тег ноды).
  • text = <селектор>: <выбранная нода> — активный селектор (HomeState.selectedGroup) и выбранная в нём нода.

Dart владеет обеими строками, native их не затирает (fallback «Connected»). Лейблы пересобираются на старте, при смене группы и при переключении ноды. Проверено на устройстве (CPH2411).


🐛 Fixes

  • §121 — Выключенный пресет больше не роняет старт «server not found». Field report: «Yandex Safe DoT стал серым; ставлю основным резольвером — при запуске пишет "не найден"». Корень — при выключении routing-тоггла пресета (cr.enabled=false) DNS-серверы пресета исчезали, а DNS-правило оставалось хвостом, и выбранный resolver-tag (dns.final / default_domain_resolver) указывал в пустоту → sing-box реджектил конфиг при старте. Теперь routing-тоггл — король: выключенный пресет мёртв целиком (ни серверов, ни DNS-правил, ни lock'ов), orphan-cleanup правил симметричен серверам, битый resolver-tag автоматически сбрасывается на безопасный дефолт, а новый fatal-валидатор ловит dangling-ссылку до отправки в ядро. Task spec.
  • §119 — Allow-list + DNS на MIUI снова работают без добавления самого L×Box в список. Field report (MIUI Android 13): при Allow-list трафик выбранных приложений не работал, пока в список не добавить сам L×Box. Корень — запрос на defaultNetwork не требовал NOT_VPN, и на части прошивок система возвращала сам VPN как underlying-сеть → локальный DNS-резолвер слал запросы обратно в tun (loop), имена у allowed-приложений не резолвились. Добавлен NET_CAPABILITY_NOT_VPN → defaultNetwork всегда физическая underlying-сеть. Плюс постоянный диаг-лог LxBoxNet (adb logcat -s LxBoxNet) — следующий такой репорт диагностируется мгновенно. Где сеть уже была underlying (ColorOS/Pixel) — поведение не изменилось. Task spec.

🔬 Verified

  • flutter analyze clean; 1045 тестов зелёные.
  • §123 — на устройстве (CPH2411): title L×Box [final = vpn-1], text vpn-1: L: 🇫🇮⚡Финляндия-2.
  • §121 — sing-box check (lx.6): выключение пресета не оставляет битых DNS-ссылок; 5 кейсов валидатора DanglingDnsServerRef.
  • §119 — фикс по root-cause-анализу + non-regression smoke на ColorOS/Pixel.
  • Ядро без изменений — 1.13.13-lx.6.

📲 Install

adb install -r app-release.apk

Без uninstall! Поверх существующей установки. Все настройки и подписки сохранятся.


🇷🇺 L×Box v2.1.0 на русском

  • Имя сервера в шторке: уведомление теперь показывает куда идёт трафик — L×Box [final = vpn-1] сверху и vpn-1: 🇫🇮⚡Финляндия-2 снизу. Видно активный селектор и выбранную ноду, не открывая приложение.
  • Выключенный пресет больше не ломает запуск: раньше после отключения пресета мог остаться «хвост» DNS-правила со ссылкой на исчезнувший сервер, и VPN не стартовал («server not found»). Теперь routing-тоггл выключает пресет целиком, а битые ссылки чинятся автоматически.
  • Allow-list + DNS на Xiaomi/MIUI: трафик выбранных приложений работает без добавления самого L×Box в список — DNS больше не зацикливается на VPN-интерфейсе.

Предыдущий релиз: v2.0.6.

Don't miss a new LxBox release

NewReleases is sending notifications on new releases.