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.apkNo uninstall needed — installs over the existing app, settings and
subscriptions are preserved.
Без uninstall! Поверх существующей установки. Настройки и подписки сохранятся.
Previous release / Предыдущий релиз: v2.18.0.