Files
Unlucky-Launcher/packaging/release-notes.md
T
AskaEth 59eefdb052 docs(packaging): M129 发布说明重写到现行事实(下划线资产名 / MSA client id / 删 Termux 下载引导)
资产名全部改成 make_artifacts.py::asset_stem() 的 `名字_版本号_平台_架构`(下划线):
六行矩阵、ull 资产、tar 包名与解压出的顶层目录、PowerShell 校验命令。旧的连字符名
按文档下载会 404(D49 2026-11-05 改名,文档没跟)。

删掉「微软登录等 Mojang 白名单审批」整条(白名单 2026-11-03 已批准并真机验签),
换成真缺口:发布版不带 Azure 公共客户端 id,要 ULL_MSA_CLIENT_ID(环境变量或构建期
注入),未配置时界面说「未配置」而不是静默失败。不写任何 id 值。

Termux:删掉「下 ull 资产」的引导(ull 的 Linux 资产是 glibc 版,Android/bionic 上跑
不起来),矩阵行只留「构建自源码、GUI 未验证、不在本发布矩阵」。

顺带清掉三处过期陈述:Windows 数据根(原文说有 `portable.marker` 就便携、否则落
%APPDATA%——实际 portable 是默认模式,首次运行在 exe 旁建 .ULL/ 与 .minecraft/);
CLI 子命令表漏了 `pack import`;arm64 行里的内部决策编号 D21。124 → 107 行。
2026-11-05 17:54:18 +08:00

5.6 KiB

Unlucky Launcher {{VERSION}}

Rust-native single-file Minecraft launcher: iced 0.14 + Material 3 Expressive UI, built-in AI agent (chat / setting edits / crash diagnosis) and an MCP server other agent tools can attach to. No WebView, no bundled runtime, no JRE download needed to start the launcher itself.

Downloads

Asset names are <name>_<version>_<platform>_<arch>, underscore separated — the rule packaging/make_artifacts.py::asset_stem() applies:

Platform Asset Notes
Windows 10/11 x64 unlucky-launcher_{{VERSION}}_windows_x64.exe single exe, double-click to run
Windows 11 ARM64 unlucky-launcher_{{VERSION}}_windows_arm64.exe single exe, runs natively on ARM64 Windows
Linux x64 (X11/Wayland) unlucky-launcher_{{VERSION}}_linux_x64.tar.gz single binary inside, no installer
Linux arm64 (X11/Wayland) unlucky-launcher_{{VERSION}}_linux_arm64.tar.gz single binary inside; needs glibc 2.35+
macOS 12+ Apple Silicon unlucky-launcher_{{VERSION}}_macos_arm64.tar.gz single binary inside, no installer
macOS 12+ Intel unlucky-launcher_{{VERSION}}_macos_x64.tar.gz single binary inside, no installer

Each archive unpacks to one top-level directory of the same name holding the binary plus LICENSE, NOTICE and README.md; the Windows assets are bare .exe files, so those three documents are attached to this release next to them — the license terms travel with every download.

Every slot also ships the command line as its own small bare asset, ull_{{VERSION}}_<platform>_<arch> (.exe on Windows):

chmod +x ull_{{VERSION}}_linux_x64            # release assets carry no executable bit
./ull_{{VERSION}}_linux_x64 instances list    # servers and CI: no graphics stack needed

ull runs instances, install, pack import, launch, accounts, sessions, logs, diag, config, java and agent, and links no graphics library at all. The GUI binary accepts the same set before it ever opens a window, so a desktop machine does not need ull.

Support matrix

Platform Level Runtime requirements
Windows 10/11 x64 first class nothing beyond the OS (UCRT is part of Win10+)
Windows 11 ARM64 first class (launcher artifact) nothing extra; the launcher runs natively, the game itself runs through the OS x64 emulation layer with an x64 JDK
macOS 12+ (arm64 / x64) first class nothing; unsigned build, see the Gatekeeper note
Linux x64, X11 first class libxkbcommon, fontconfig, libGL (or software renderer), libxcb
Linux x64, Wayland supported wayland-client, libxkbcommon, plus the X11 set for XWayland apps
Linux arm64, X11 first class glibc 2.35+ (same floor as x64), libxkbcommon, fontconfig, libGL, libxcb
Linux arm64, Wayland supported the above plus wayland-client
Windows 8.1/8/7 unsupported the baseline is Windows 10
Android — Termux + X11 experimental, not promised CLI only and only when built from source; GUI unverified; not part of this release matrix

Both arm64 rows are formally released slots (assets ship here and in SHA256SUMS.txt), not the experimental Termux path: Linux arm64 is built and smoke-tested on a native ARM64 runner, Windows ARM64 is cross-built with the same static-CRT gate as x64.

Install

Windows — put the .exe anywhere and run it (pick _windows_arm64.exe on ARM64 Windows, _windows_x64.exe everywhere else). The first run creates .ULL/ and .minecraft/ next to the exe (portable is the default data mode); the per-user %APPDATA%\ULL plus %APPDATA%\.minecraft, or a custom root, are selectable instead.

Linux / macOS

tar -xzf unlucky-launcher_{{VERSION}}_linux_x64.tar.gz   # _linux_arm64 on aarch64; _macos_arm64 / _macos_x64 on macOS
cd unlucky-launcher_{{VERSION}}_linux_x64                # ditto
xattr -d com.apple.quarantine unlucky-launcher           # macOS only: unsigned build, Gatekeeper
chmod +x unlucky-launcher && ./unlucky-launcher

No GPU? Software renderer

The UI renders through wgpu (GPU) and falls back to the tiny-skia CPU rasteriser when no usable adapter is present; --software-renderer (or its equivalent --renderer=cpu) forces that path.

Verify the download

sha256sum -c SHA256SUMS.txt --ignore-missing   # Linux / macOS
Get-FileHash .\unlucky-launcher_{{VERSION}}_windows_x64.exe -Algorithm SHA256   # Windows PowerShell
{{SUMS}}

Known limitations of this build

  • Microsoft (MSA) sign-in needs an Azure public client id, and release binaries do not carry one: set ULL_MSA_CLIENT_ID=<id> before launching, or build with that variable set. Until then the app says "not configured" (with the command to fix it) instead of failing silently. Offline profiles and authlib-injector servers need no id.
  • Binaries are not code-signed / notarized yet: Windows SmartScreen and macOS Gatekeeper warn on first launch. The checksums above are the integrity reference for now.
  • macOS ships the bare binary (single-file promise), not a .app bundle: no Dock icon or Finder double-click — launch it from a terminal.

License

Apache-2.0, third-party notices in NOTICE. Not affiliated with Mojang or Microsoft; no game files ship.

UI framework in this build

Every asset here is built from the iced UI (crates/app-iced, iced 0.14, MIT); no Slint code is linked into it. The earlier Slint UI (crates/app) stays in the repository as historical source only — excluded from the workspace, not built, in no asset and in no release slot. The Slint Royalty-Free 2.0 attribution it carried belongs to the v0.1.0 release and remains where it was published.