Release v1.1.7
Downloads
macOS (Universal) - Supports both Apple Silicon and Intel
Option 1: Installation Script (Recommended)
Install with a single command (version v1.1.7):
curl -fsSL https://raw.githubusercontent.com/Leadaxe/singbox-launcher/develop/scripts/install-macos.sh | bash -s -- v1.1.7The 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
- Download:
singbox-launcher-v1.1.7-macos.zip - Extract the ZIP file
- Remove quarantine attribute (required):
xattr -cr "singbox-launcher.app" && chmod +x "singbox-launcher.app/Contents/MacOS/singbox-launcher"
- Double-click
singbox-launcher.appto 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)
- Download:
singbox-launcher-v1.1.7-win64.zip - Extract the ZIP file to a folder, for example:
C:\Program Files\singbox-launcher\ - Run
singbox-launcher.exefrom that folder- You may need administrator rights to install to Program Files
- The launcher will automatically download
sing-boxandwintun.dllon first launch
Windows 7 (x86, legacy)
- Download:
singbox-launcher-v1.1.7-win7-32.zip - 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.7 — hotfix: junk pbk on a TLS node no longer breaks the whole config
Fixes a launch failure introduced by broken public subscriptions: a vless:// node carrying a junk pbk (e.g. pbk=enabled) while declaring security=tls made the launcher emit tls.reality.public_key: "enabled", and sing-box check rejected the entire generated config.json (initialize outbound[N]: invalid public_key) — so the VPN wouldn't start at all. No config migration is needed.
Чинит отказ запуска из-за кривых публичных подписок: нода vless:// с мусорным pbk (например pbk=enabled) при security=tls заставляла лаунчер писать tls.reality.public_key: "enabled", и sing-box check отбраковывал весь сгенерированный config.json (initialize outbound[N]: invalid public_key) — VPN не стартовал вовсе. Миграция не нужна.
EN
Highlights
- A junk
pbkno longer takes down the whole config. Some public lists (e.g. the free "BLACK LISTS" community subscription) shipvless://nodes withsecurity=tlsbut a boguspbk=enabled(or other non-key) parameter. The parser used to build a REALITY block from any non-emptypbk, emittingpublic_key: "enabled";sing-box checkthen failed on the first such node and refused the wholeconfig.json, so nothing started. The parser now only builds a REALITY block whenpbkis a real X25519 public key (base64url/std, 32 bytes); an invalidpbkis ignored and the node degrades to plain TLS, like the rest of the config.
Technical / Internal
core/config/subscription/node_parser_transport.go: newisValidRealityPublicKey()(43-char base64url/std, decodes to 32 bytes) gates the REALITY branch invlessTLSFromNodeinstead of the oldpbk != ""check — mirrors the existing "broken list" hardening (normalizeRealityShortID). Tests:TestIsValidRealityPublicKey+ regressionTestParseNode_VLESS_JunkPbkOnTLSNode(realpbk=enabledfrom the affected subscription);TestBuildOutbound/VLESS_with_Realityupdated to use a real key (its placeholder is now correctly rejected).
RU
Основное
- Мусорный
pbkбольше не валит весь конфиг. Часть публичных списков (например бесплатная community-подписка «BLACK LISTS») отдаёт нодыvless://сsecurity=tls, но с мусорнымpbk=enabled(или другим не-ключом). Раньше парсер строил блок REALITY по любому непустомуpbkи писалpublic_key: "enabled"; затемsing-box checkпадал на первой такой ноде и отбраковывал весьconfig.json— VPN не запускался. Теперь блок REALITY строится только еслиpbk— настоящий публичный ключ X25519 (base64url/std, 32 байта); невалидныйpbkигнорируется, и нода деградирует до обычного TLS, как остальной конфиг.
Техническое / Внутреннее
core/config/subscription/node_parser_transport.go: новаяisValidRealityPublicKey()(43 символа base64url/std, декодируется в 32 байта) гейтит ветку REALITY вvlessTLSFromNodeвместо прежней проверкиpbk != ""— в духе уже имеющейся защиты от «broken lists» (normalizeRealityShortID). Тесты:TestIsValidRealityPublicKey+ регрессионныйTestParseNode_VLESS_JunkPbkOnTLSNode(реальныйpbk=enabledиз затронутой подписки);TestBuildOutbound/VLESS_with_Realityобновлён на настоящий ключ (его placeholder теперь корректно отвергается).