LxBox v2.25.1
L×Box v2.25.1
Three fixes on top of v2.25.0.
That release is the main body of changes: one parsing engine with
singbox-launcher 2.0.0
(contract 1.1.46), and the Start insurance when the core refuses a server
(#147). Read it first — this
patch does not repeat it.
This patch: Stats → Memory breakdown shows PSS figures again; XHTTP extra keeps
sessionIDPlacement / sessionIDKey; a hop chain on Servers stays between the
rows you drop it among.
Три правки поверх v2.25.0.
Основной корпус изменений — там: один движок разбора с
лаунчером 2.0.0
(контракт 1.1.46) и страховка кнопки Start, когда ядро отказывается от
сервера (#147). Сначала читайте
2.25.0 — этот патч его не повторяет.
В этом патче: в Stats → Memory разбивка PSS снова с цифрами; XHTTP extra
сохраняет sessionIDPlacement / sessionIDKey; цепочка на Servers остаётся
между строками, куда её поставили.
🇬🇧 English
🩹 Fixes
| § | Before | Now |
|---|---|---|
| 507 | After v2.25.0 the Stats → Memory sheet still showed RSS and native-heap malloc counters, but the Breakdown section (Java / Native / Graphics / Code / Stack / System / Other) was all 0 B. Debug.getMemoryInfo no longer fills summary.* PSS categories on Android 10+ |
The snapshot comes from ActivityManager.getProcessMemoryInfo. If AMS is empty, the old call is the fallback; empty summary.* categories fall back to dalvikPss / nativePss / otherPss / totalPss |
| 508 | A live vless+xhttp link parsed, and seqPlacement from extra arrived, but Xray proto names sessionIDPlacement / sessionIDKey were dropped. The core then put the session id in the path (its default), while the server looked for a cookie with a custom key |
Those aliases map to session_placement / session_key (in extra and as flat query params). Canonical names still win. sessionIDLength / sessionIDTable are not mapped — "0" without a table means unset. Overlay until the launcher registry takes the alias (launcher #131) |
| 509 | Servers draws subscriptions, servers, folders and hop chains in one list, but a drop wrote two blocks: chains were saved at the tail of sources[] and jumped back down |
A mixed drag writes the array as shown. Chain records keep their slots among the other kinds. The “a hop may only point at a chain above” rule is unchanged — it is computed over the chains’ mutual order |
🧪 Tests
CI checks (analyze, the full test suite, four l10n checkers, docs parity) is
the release gate. Locally: xhttp_test for the proto aliases, chains_storage_test
and lx_backup_test for mixed sources[] order.
🇷🇺 Русский
🩹 Исправления
| § | Было | Стало |
|---|---|---|
| 507 | После v2.25.0 шторка Stats → Memory по-прежнему показывала RSS и malloc-счётчики native heap, а секция Breakdown (Java / Native / Graphics / Code / Stack / System / Other) была сплошными 0 B. Debug.getMemoryInfo на Android 10+ больше не заполняет категории PSS summary.* |
Снимок берётся у ActivityManager.getProcessMemoryInfo. Если AMS пуст — запасной прежний вызов; пустые summary.* подставляют dalvikPss / nativePss / otherPss / totalPss |
| 508 | Живая vless+xhttp ссылка разбиралась, seqPlacement из extra доезжал, а proto-имена Xray sessionIDPlacement / sessionIDKey терялись. Ядро клало session id в path (свой дефолт), сервер искал cookie с кастомным ключом |
Алиасы мапятся в session_placement / session_key (в extra и в плоском query). Канон сильнее proto-имени. sessionIDLength / sessionIDTable не мапятся: "0" без таблицы — «не задано». Оверлей, пока реестр лаунчера не заберёт алиас (лаунчер #131) |
| 509 | Servers рисует подписки, серверы, папки и цепочки одним списком, но drop писал два блока: цепочки сохранялись хвостом sources[] и возвращались вниз |
Смешанный drag пишет массив как на экране. Записи цепочек держат свои слоты среди остальных родов. Инвариант «хоп ссылается только на цепочку выше» не менялся — он считается по взаимному порядку цепочек |
🧪 Тесты
Релизный гейт — CI checks (analyze, полный набор тестов, четыре l10n-чекера,
паритет доков). Локально: xhttp_test на proto-алиасы, chains_storage_test и
lx_backup_test на смешанный порядок sources[].
Install / Установка
adb install -r LxBox-v2.25.1-arm64-v8a.apkБез uninstall! Поверх существующей установки. Настройки и подписки сохранятся.
No uninstall needed — install over the existing one. Settings and subscriptions
are preserved.
Previous release / Предыдущий релиз: v2.25.0.
The main body of changes is there / Основной корпус изменений — там:
GitHub Release v2.25.0.