L×Box v2.20.6
A core update, nothing else. A group with automatic node selection no longer
keeps sending traffic through a node that stopped answering — it moves to a
working one on the spot, instead of waiting for its next scheduled check. And
REALITY nodes on freshly updated Xray servers connect again.
Релиз целиком про ядро. Группа с автовыбором узла больше не продолжает слать A group with automatic selection stayed on a node that had stopped working. Now a failure that means "this path is dead" — a connect timeout, an If the node that was fastest collects three such marks, the group changes how it REALITY nodes were rejected by updated Xray servers. Xray v26.7.11 began Core pin: Группа с автовыбором оставалась на переставшем работать узле. Группы в Теперь отказ, означающий «этот путь мёртв» — таймаут соединения, недоступная Если самый быстрый узел набирает три такие пометки, группа меняет правило REALITY-узлы отвергались обновлёнными серверами Xray. Xray v26.7.11 стал по Пин ядра:
трафик через переставший отвечать узел — она сразу уходит на рабочий, а не ждёт
своей следующей плановой проверки. И REALITY-узлы на свежеобновлённых серверах
Xray снова подключаются.
🇬🇧 English
🔌 Core
Groups in automatic mode picked their node from the last health check and only
reconsidered at the end of the next scheduled run — up to three minutes later,
longer with passive checking on. A failed connection changed nothing. So when a
node died, traffic kept being aimed at it: since the previous release the user
got an error every fifteen seconds instead of a two-minute hang, but still
through the same dead node.
unreachable network — marks the node and immediately retries the same request
through the next best one. Two attempts at most; if the retry succeeds, the
group moves its selection there without disturbing connections that are already
running. A connection refused or reset by the destination does not count: the
node delivered the packet and the site answered, so another node would be
refused too. Neither does a request the app itself cancelled.
ranks: fewest marks first, then speed among those tied — and those tied are
usually all the healthy ones, which compete on speed exactly as before. A mark
is only ever cleared by proof of life: a successful connection or an answered
health-check probe, never by time passing. If every candidate ends up marked —
meaning the network itself is down, not the nodes — the group forces a fresh
round of checks, at most once every two minutes. None of this runs on a timer,
so device sleep and system-level app freezing cannot throw it off. Groups in
round-robin mode are unaffected. (core SPEC 054)
requiring a minimum client version by default, and the core still announced a
version from 2023 — below the new threshold. The failure is invisible by design:
instead of refusing, the server quietly serves its cover website, so the node
looks broken with a clean log, indistinguishable from a wrong key or a clock
skew. The announced version now matches the required minimum; older servers are
unaffected. (core SPEC 053)
📦 Version
v1.14.0-lx.21 → v1.14.0-lx.22. The AAR's Java surface is unchanged
— 226 classes on both, a javap diff of every signature comes out at zero
lines — so the bump required no client-side changes. No app code was touched in
this release.
🧪 Tests
flutter analyze and the full test suite are green, as are the four l10n
checkers. Both core fixes ship without a field run: SPEC 054 has six unit tests
and a bench run behind it, SPEC 053 was verified line by line against the XTLS
sources but never against a live Xray ≥ v26.7.11 server — there is no such
server to test against here. Reports welcome.
🇷🇺 Русский
🔌 Ядро
автоматическом режиме брали узел из последней проверки здоровья и пересматривали
выбор только в конце следующего планового прогона — до трёх минут спустя, а с
включённой пассивной проверкой и дольше. Неудачное соединение не меняло ничего.
Поэтому когда узел умирал, трафик продолжал идти в него: с прошлого релиза
пользователь получал ошибку каждые пятнадцать секунд вместо двухминутного
зависания, но всё через тот же мёртвый узел.
сеть, — помечает узел и тут же повторяет тот же запрос через следующий по
качеству. Попыток не больше двух; если повтор удался, группа переносит туда свой
выбор, не трогая уже работающие соединения. Отказ или сброс со стороны
назначения не считается: узел донёс пакет и сайт ответил, значит через другой
узел будет тот же отказ. Не считается и запрос, который отменило само
приложение.
выбора: сначала меньше пометок, затем скорость среди равных — а равных обычно
все здоровые, и они соревнуются по скорости ровно как раньше. Пометка снимается
только доказательством жизни: успешным соединением или ответом на пробу, но
никогда — просто по времени. Если помеченными оказались все кандидаты (значит,
умерла сама сеть, а не узлы) — группа принудительно запускает новый круг
проверок, не чаще раза в две минуты. Ничего из этого не работает на таймерах,
поэтому ни сон устройства, ни системная заморозка приложения не собьют логику.
Групп в режиме round-robin изменения не касаются. (SPEC 054 ядра)
умолчанию требовать минимальную версию клиента, а ядро всё ещё объявляло версию
2023 года — ниже нового порога. Отказ невидим по задумке: вместо отказа сервер
тихо отдаёт свой камуфляжный сайт, поэтому узел выглядит сломанным при чистом
логе и неотличим от неверного ключа или разъехавшихся часов. Объявляемая версия
теперь совпадает с требуемым минимумом; на старые серверы это не влияет.
(SPEC 053 ядра)
📦 Версия
v1.14.0-lx.21 → v1.14.0-lx.22. Java-поверхность AAR не изменилась
— 226 классов в обеих версиях, javap-diff всех сигнатур даёт ноль строк
расхождений, — поэтому клиентских правок бамп не потребовал. Кода приложения
релиз не касается.
🧪 Тесты
flutter analyze и полный набор тестов зелёные, четыре l10n-чекера тоже. Обе
правки ядра выходят без полевого прогона: за SPEC 054 стоят шесть юнит-тестов и
стенд, SPEC 053 сверена с исходниками XTLS построчно, но против живого сервера
Xray ≥ v26.7.11 не проверялась — такого стенда нет. Отчёты приветствуются.
Install / Установка
adb install -r LxBox-v2.20.6-arm64-v8a.apkБез uninstall! Поверх существующей установки. Настройки и подписки сохранятся.
No uninstall needed — install over the existing one. Settings and
subscriptions are preserved.
Previous release / Предыдущий релиз: v2.20.5.