github Leadaxe/singbox-launcher v1.1.4
release v1.1.4

4 hours ago

Release v1.1.4

Downloads

macOS (Universal) - Supports both Apple Silicon and Intel

Option 1: Installation Script (Recommended)

Install with a single command (version v1.1.4):

curl -fsSL https://raw.githubusercontent.com/Leadaxe/singbox-launcher/develop/scripts/install-macos.sh | bash -s -- v1.1.4

The script will:

  • Download the release archive
  • Extract and install to /Applications/
  • Fix macOS quarantine attributes and permissions
  • Launch the application automatically

Option 2: Manual Installation

  1. Download: singbox-launcher-v1.1.4-macos.zip
  2. Extract the ZIP file
  3. Remove quarantine attribute (required):
    xattr -cr "singbox-launcher.app" && chmod +x "singbox-launcher.app/Contents/MacOS/singbox-launcher"
  4. Double-click singbox-launcher.app to run
    • If macOS blocks the app, go to System Settings → Privacy & Security and click "Open Anyway"
    • Alternatively, right-click the app and select "Open" (first time only)

Windows (amd64)

  1. Download: singbox-launcher-v1.1.4-win64.zip
  2. Extract the ZIP file to a folder, for example: C:\Program Files\singbox-launcher\
  3. Run singbox-launcher.exe from that folder
    • You may need administrator rights to install to Program Files
    • The launcher will automatically download sing-box and wintun.dll on first launch

Windows 7 (x86, legacy)

  1. Download: singbox-launcher-v1.1.4-win7-32.zip
  2. Extract the ZIP file to a folder and run singbox-launcher-win7-32.exe
    • For Windows 7 / 32-bit or legacy compatibility only

Linux Support

⚠️ Linux build temporarily unavailable - мы ищем тестировщика для ручного тестирования перед включением автоматической сборки.

Checksums

See checksums.txt for SHA256 checksums of all files.

v1.1.4 — AmneziaWG 2.0 ranged magic headers (H1–H4)

Real AmneziaWG 2.0 exports randomize magic headers as ranges (H1 = 43613244-384550127) — now they import and work end-to-end. Requires core 1.13.13-lx.6 (pin bumped): update via Core Dashboard → Download / Reinstall. No config migration is needed.

Реальные экспорты AmneziaWG 2.0 рандомизируют magic-заголовки диапазонами (H1 = 43613244-384550127) — теперь они импортируются и работают end-to-end. Требуется ядро 1.13.13-lx.6 (пин забампен): обновите через Core Dashboard → Download / Reinstall. Миграция конфигов не нужна.

EN

Highlights

  • AmneziaWG 2.0 header ranges (H1-H4 = lo-hi) are now imported and passed to the core. Previously the parser silently dropped all four fields — the node imported without them and the handshake never matched. Ranges now flow 1:1 into the endpoint ("h1": "N-M"), and the core picks a fresh in-range value on every handshake. Single values stay JSON numbers, mixing is fine. Applies to awg:// links, vpn:// profiles (v1.1.3) and pasted .conf text (v1.1.3). Validated against the real 1.13.13-lx.6 binary: sing-box check accepts both the ranged config built from a real AWG 2.0 export and the single-value regression. (SPEC 073.2)
  • Import-time diagnostics for magic headers. Garbage in H1H4 now logs a warning instead of a silent debug entry (a dropped header silently falls back to the WireGuard default in the core — the handshake-mismatch failure mode). Overlapping effective header ranges — including the WireGuard defaults (14) of unset headers — are detected at import and warned about; the core rejects such an endpoint with headers must not overlap.

Technical / Internal

  • parseAWGHeaderRange in node_parser_wireguard.go: plain uint32 → int64 (JSON number) as before; lo-hi on h1h4 → normalized range string (reversed bounds reordered); ranges on other numeric AWG fields and invalid values are skipped. Share-URI emits the range unchanged (awgNumericString already passes strings through) — lossless endpoint → URI → endpoint round-trip. awgHeaderOverlap mirrors the core contract (unset = WG default, single = [v,v], range = [lo,hi]). Tests: awg_range_test.go.
  • chore(core): RequiredCoreVersion 1.13.13-lx.5 → 1.13.13-lx.6 (native "hN": "lo-hi" support; earlier cores reject the string form).
  • fix(scripts): the prepare-commit-msg hook no longer drops a commit message without a trailing newline (POSIX read skips the final unterminated line; e.g. git merge -m messages vanished entirely).

RU

Основное

  • Диапазоны заголовков AmneziaWG 2.0 (H1-H4 = lo-hi) теперь импортируются и пробрасываются в ядро. Раньше парсер молча выбрасывал все четыре поля — узел импортировался без них, и handshake не сходился. Теперь диапазон идёт в endpoint один в один ("h1": "N-M"), и ядро само выбирает свежее значение внутри диапазона на каждый handshake. Одиночные значения остаются JSON-числами, смешивать можно. Работает для awg://-ссылок, vpn://-профилей (v1.1.3) и вставленного .conf-текста (v1.1.3). Проверено на реальном бинаре 1.13.13-lx.6: sing-box check принимает и диапазонный конфиг из реального экспорта AWG 2.0, и регрессионный с одиночными H. (SPEC 073.2)
  • Диагностика magic-заголовков при импорте. Мусор в H1H4 теперь даёт warn в логе вместо тихой debug-записи (молча выброшенный заголовок откатывается у ядра на WireGuard-дефолт — тот самый сценарий несовпадения handshake). Пересечение эффективных диапазонов заголовков — включая WireGuard-дефолты (14) незаданных — ловится при импорте с предупреждением; такой endpoint ядро отвергает с headers must not overlap.

Техническое / Внутреннее

  • parseAWGHeaderRange в node_parser_wireguard.go: одиночный uint32 → int64 (JSON-число) как раньше; lo-hi на h1h4 → нормализованная строка диапазона (перевёрнутые границы упорядочиваются); диапазоны на прочих числовых AWG-полях и невалидные значения скипаются. Share-URI отдаёт диапазон без изменений (awgNumericString уже пропускал строки) — round-trip endpoint → URI → endpoint без потерь. awgHeaderOverlap зеркалит контракт ядра (незаданный = WG-дефолт, одиночный = [v,v], диапазон = [lo,hi]). Тесты: awg_range_test.go.
  • chore(core): RequiredCoreVersion 1.13.13-lx.5 → 1.13.13-lx.6 (нативная поддержка "hN": "lo-hi"; старые ядра отвергают строковую форму).
  • fix(scripts): hook prepare-commit-msg больше не теряет сообщение коммита без завершающего перевода строки (POSIX read пропускал последнюю незавершённую строку; например, сообщения git merge -m исчезали целиком).

Don't miss a new singbox-launcher release

NewReleases is sending notifications on new releases.