- app/boot/termux_gpu:glibc 构建 + Termux 且随附 ICD 存在时,在探测前设 VK_ICD_FILENAMES/VK_DRIVER_FILES;用户显式设置不覆盖 - 文档:Mesa 26.2.6 + KGSL 的完整构建/安装/验证步骤(含 shebang、 --wrap-mode=nofallback、C++/链接参数三处坑) - 实测:wgpu 选中 Adreno 840(turnip Mesa 26.2.6),截图首帧 61 ms - README.termux:GPU 标 ✅,MC 标 🟡(glibc JRE+AWT 已验证,GLX 待 GL 构建)
51 lines
2.7 KiB
Markdown
51 lines
2.7 KiB
Markdown
# Unlucky Launcher · Termux 适配(`termux-glibc` 分支)
|
||
|
||
这条分支把启动器带到 **Termux(Android)**:用 glibc 工具链编出 `aarch64-unknown-linux-gnu`
|
||
二进制,在 **termux-x11** 里跑 GUI;同时补上 Termux 平台识别、系统 JDK 安装与中文字体。
|
||
|
||
## 已验证
|
||
|
||
| 项 | 状态 | 证据 |
|
||
| --- | --- | --- |
|
||
| 源码构建(GUI + CLI) | ✅ | Rust 1.99.1 gnu + clang/lld + glibc 运行时;CPU-only(tiny-skia) |
|
||
| 窗口显示 | ✅ | termux-x11 `:0`,截图 1180×760,首帧 ~330 ms |
|
||
| 中文 | ✅ | 启动时注册 `/system/fonts/NotoSansCJK-Regular.ttc` |
|
||
| 微软登录 id | ✅ | 构建期注入,日志 `client_id=configured source=build` |
|
||
| 横屏适配 | ✅ | 默认窗口按 X 屏幕等比自适应(`source=termux-screen`) |
|
||
| Java 发现 | ✅ | `JAVA_HOME`/PATH + `$PREFIX/lib/jvm` 扫描 |
|
||
| Java 自动安装 | ✅ | `ull java install 17` 由内置镜像装完 openjdk-17(约 20 s) |
|
||
| GPU(wgpu) | ✅ | 自编 Mesa 26.2.6 + KGSL;wgpu 选中 Adreno 840(Vulkan/turnip) |
|
||
| Minecraft 运行 | 🟡 | glibc JRE(Temurin 21.0.13)可跑,AWT/X11 正常;GLX 待 Mesa 26 GL 构建 |
|
||
|
||
## 快速开始
|
||
|
||
完整配方(工具链、patchelf、linker、门禁)见
|
||
[`packaging/docs/termux-glibc-build.md`](packaging/docs/termux-glibc-build.md)。最短路径:
|
||
|
||
```sh
|
||
termux-x11 :0 -ac &
|
||
DISPLAY=:0 ./unlucky-launcher-iced --software-renderer
|
||
```
|
||
|
||
- 没有 GPU 栈时**必须**加 `--software-renderer`(CPU 渲染)。
|
||
- 窗口尺寸默认按屏幕自适应;`ULL_WINDOW_SIZE=1520x900` 可覆盖。
|
||
- Java:`ull java install 17|21|25` 在 Termux 上默认用系统包(内置镜像 + 隔离 apt 状态)。
|
||
|
||
## 已知边界
|
||
|
||
- 仅单机(OnePlus 15 / Android 17)验证,试验级、不在发布矩阵内。
|
||
- **GPU**:已打通,但驱动是自编的(Mesa 26.2.6 + KGSL),装到
|
||
`$PREFIX/glibc/{lib,share/vulkan/icd.d}` 后应用会自动启用;Termux 官方源里的
|
||
glibc Mesa 太旧(24.2.6 不认识 Adreno 840)。驱动缺失时自动降级 CPU,不会崩。
|
||
- **MC**:Android 原生 natives 走不通(LWJGL 没有官方 Android/bionic 产物,且 GLFW 的
|
||
窗口模型与 termux-x11 的 X11 不兼容)。可行路线是 glibc JVM(Temurin linux-aarch64 +
|
||
glibc Mesa)——JRE 与 AWT/X11 已验证,GLX 还差一份 Mesa 26 的 GL 构建。
|
||
- Termux 上三条测试失败是环境差异(`/proc/*/children`、长路径脱敏、mtime flaky),
|
||
PC 的 Linux CI 不受影响。
|
||
|
||
## 后续
|
||
|
||
1. Mesa 26 GLX(zink/softpipe)构建 → MC 的 LWJGL/GLFW 打通
|
||
2. MC 运行链接线:启动器在 Termux 上改用 glibc JVM(Temurin),bionic java 留给 UI/CLI
|
||
3. 剪贴板/IME 在 termux-x11 下的行为验证
|