github Leadaxe/LxBox v2.18.1
LxBox v2.18.1

latest releases: v2.25.18-rc.2, v2.25.18-rc.1, v2.25.17...
3 months ago

L×Box v2.18.1

A follow-up to v2.18.0: DNS groups could not be saved at all, and the core
crashed whenever the app asked it for its running config — which quietly made
one of the v2.18.0 fixes not work. Plus the core's OOM snapshots, which were
piling up on disk unseen.

Догоняющий выпуск к v2.18.0: DNS-группа не сохранялась вообще, а ядро падало
при запросе своего рабочего конфига — из-за чего один из фиксов v2.18.0 по
факту не работал. Плюс OOM-снимки ядра, которые копились на диске незаметно.

Core / Ядро: sing-box-lx v1.14.0-lx.17-rc.1 (was / было lx.16).


🇬🇧 English

🐛 Fixed

🛡️ DNS groups could not be saved

Creating or editing a DNS group always failed with "Server address is
required"
. The check "a form-based server needs an address" also caught
groups — which have no address at all; they have members instead. The field
was not even shown in the form, so there was nothing to fill in: saving a
group from the UI was impossible, whether new or existing.

Groups shipped in the template (Shield DNS) kept working, which is why this
slipped through.

💥 The core died when asked for its running config

GetRunningConfig returned its string in a way that killed the core process
on 64-bit ARM on every single call — not a recoverable panic, the tunnel
went down with no way back.

The practical consequence: the v2.18.0 fix for "Not found" on a node that is
visible in the list
(§311) never actually worked, even though the release
notes said it did. It is fixed now, in the core (lx.17-rc.1).

This is also what crashed the core on 26 July — three reports, found through
the crash-report channel that shipped in v2.18.0. The channel paid for itself
immediately.

🆕 Added

🧠 Core OOM snapshots

When the core's own OOM killer trips, it writes a snapshot: heap profiles,
memory stats, its log and the config at that moment. The app had no idea that
folder existed — it could not show them, attach them to a report, or clean
them up. On the test device they had grown to 575 snapshots, 427 MB.

There is now an OOM tab on the Debug screen: total size on disk, a view of
the memory stats and the log, sharing a whole snapshot, and deleting them all.
The 5 most recent are kept on launch. Diagnostic dumps carry only the
metadata — binary profiles have no business inside a JSON file.

For development: GET /files/oom/list and GET /files/oom?name=&file=.

🇷🇺 Русский

🐛 Исправлено

🛡️ DNS-группа не сохранялась

Создание или правка DNS-группы всегда падали с ошибкой «Server address is
required»
. Проверка «серверу с формой нужен адрес» срабатывала и на группе —
а у неё адреса нет вовсе, вместо него участники. Поле в форме даже не
показывалось, так что заполнить его было нечем: сохранить группу из
интерфейса было нельзя никак — ни новую, ни существующую.

Группы из шаблона (Shield DNS) при этом работали — поэтому проблему и не
поймали.

💥 Ядро умирало при запросе рабочего конфига

GetRunningConfig возвращал строку так, что на 64-битном ARM это убивало
процесс ядра при каждом вызове — не паника с восстановлением, а падение
туннеля без шанса вернуться.

Практическое следствие: фикс v2.18.0 для «Not found» на узле, который виден
в списке
(§311) на самом деле не работал, хотя заметки к релизу утверждали
обратное. Теперь исправлено в ядре (lx.17-rc.1).

Это же роняло ядро 26 июля — три отчёта, найденные через канал краш-репортов
из v2.18.0. Канал окупился сразу.

🆕 Добавлено

🧠 OOM-снимки ядра

Когда срабатывает собственный oom-killer ядра, оно пишет снимок: профили
кучи, статистику памяти, свой лог и конфиг на тот момент. Приложение об этой
папке не знало вовсе — ни показать, ни приложить к отчёту, ни почистить. На
тест-устройстве накопилось 575 снимков на 427 МБ.

Теперь это вкладка OOM на экране Debug: сколько занято на диске, просмотр
статистики памяти и лога, отправка снимка целиком, удаление всех. На старте
остаются 5 свежих. В диагностический дамп идут только метаданные — бинарным
профилям внутри JSON не место.

Для разработки: GET /files/oom/list и GET /files/oom?name=&file=.


📲 Install

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

No uninstall needed — installs over the existing app, settings and
subscriptions are preserved.

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


Previous release / Предыдущий релиз: v2.18.0.

Don't miss a new LxBox release

NewReleases is sending notifications on new releases.