github Leadaxe/LxBox v2.4.2
LxBox v2.4.2

latest releases: v2.25.16, v2.25.16-rc.1, v2.25.15...
4 months ago

L×Box v2.4.2

Движок шаблона переписан на типизированную подстановку с декларативными #if (§120). VPN-mode больше не собирается императивным кодом — он описан прямо в wizard_template.json через условные конструкции #if. Вкладка VPN Mode стала data-driven: контролы рисуются из template-нод, а listen-адрес локального прокси теперь произвольный IPv4 (комбобокс с подсказками 127.0.0.1 / 0.0.0.0). Добавлен пресет «Block unknown traffic» — режет неатрибутированный трафик в туннеле. Ядро → v1.13.13-lx.15.

Quick links:
✨ Added ·
🔧 Changed ·
🔬 Verified ·
📲 Install ·
🇷🇺 На русском


✨ Added

# Что
§033 Пресет «Block unknown traffic» (block_unknown). Reject/direct трафика в туннеле без атрибуции к установленному приложению (фоновые / чужие процессы). Inline rule_set {invert:true, package_name_regex:"^"} матчит соединения с пустым AndroidPackageNames. Outbound настраивается reject (по умолчанию) или direct. ⚠ Ловит всю неатрибутированную атрибуцию (system/root UID, egress туннеля, сбой find_process), не только foreign-процессы

🔧 Changed

# Было Стало
§120 Подстановка @var угадывала тип по содержимому — пароль 1234 мог стать int Коэрсинг строго по WizardVar.type: bool/int типизируются, secret/text/enum/outbound/dns_servers — остаются строкой. Введён явный тип int (tun_mtu переведён text→int). Общее ядро — if_engine.dart
§120 Условность в шаблоне — только флаг enabled:"@var" (§045) Полноценный #if (map-spread + array-element; предикаты and/or/#in/#notIn/#notEmpty/#isEmpty/#matches/#not). Декларативная условность прямо в config/preset-телах. Кривой #if ловится на загрузке шаблона (TemplateIfError), а не молча даёт битый конфиг
§120 / §119 VPN-mode собирался императивным кодом (applyVpnMode); локальный socks/http-прокси строился в коде VPN-mode декларативен: tun-in / mixed-in и inbound в route-rules собираются #if-walker'ом по @vpn_mode; users — по @proxy_auth. applyVpnMode удалён, прокси переехал в wizard_template.json. Защита от users:[{"":""}] при пустом пароле сохранена
§119 Вкладка VPN Mode — захардкоженные контролы Data-driven из template-нод: контролы рендерятся по нодам секции «VPN Mode» (title/tooltip/options из шаблона), значения мапятся в типизированный VpnModeConfig. Метаданные UI вынесены в шаблон
§119 listen прокси — выбор из двух (127.0.0.1 / 0.0.0.0) через SegmentedButton Произвольный IPv4 через редактируемый комбобокс с подсказками: можно вписать любой адрес (127.10.20.5, LAN-IP). isPublicListen = !loopback — auth форсится на любой не-loopback адрес (конкретный LAN-IP виден извне так же, как 0.0.0.0)
§104 Ядро v1.13.13-lx.14 v1.13.13-lx.15 (нужен §033: корректный invert + package_name_regex для match по пустому AndroidPackageNames)

🔬 Verified

  • flutter analyze — No issues found.
  • flutter test — 1232 passed (вкл. §120 if_engine_test + переписанный vpn_mode_test; §119 isValidListenAddr/isLoopback + force-auth на non-loopback).
  • §120 — on-device по Debug API: inbounds / route.rules собираются корректно, в готовом конфиге ноль сырых #if.
  • §033 — на ядре lx.15 подтверждено: invert флипает «есть пакет»→no-match, «нет пакета»→match.
  • Ядро — v1.13.13-lx.15 (форк sing-box-lx, fetch с SHA256-verify).

📲 Install

adb install -r LxBox-v2.4.2-arm64-v8a.apk

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

🇷🇺 Кратко на русском

  • Движок шаблона переписан (§120) — подстановка значений теперь строго по объявленному типу (пароль из цифр больше не превращается в число), а условную логику конфига можно писать прямо в шаблоне через #if. Внешне ничего не сломалось — это фундамент под более гибкие пресеты.
  • VPN Mode переведён на декларативный шаблон (§120/§119) — режимы VPN / Proxy / VPN+Proxy и локальный socks/http-прокси больше не зашиты в код, а описаны в шаблоне. Сама вкладка теперь строится из шаблонных нод.
  • Адрес прокси — любой (§119) — раньше можно было выбрать только 127.0.0.1 или 0.0.0.0; теперь это комбобокс, куда можно вписать произвольный IP (например, конкретный LAN-адрес). Если адрес не локальный — пароль на прокси обязателен.
  • Пресет «Block unknown traffic» (§033) — блокирует (или пускает напрямую) трафик в туннеле, который не привязан ни к одному установленному приложению. Полезно против фоновых/системных утечек, но учтите: под раздачу попадает весь неопознанный трафик.
  • Ядро → v1.13.13-lx.15.

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

Don't miss a new LxBox release

NewReleases is sending notifications on new releases.