Skip to content

v0.6.0

Choose a tag to compare

@wkbin wkbin released this 25 Aug 16:49
· 243 commits to main since this release

TaiXu v0.6.0 — 构建工坊、SSH 直连、QEMU 兼容

22 个提交,从 v0.5.0 (versionCode 7) → v0.6.0 (versionCode 8)


✨ 新功能

  • 🚀 PRoot 运行时升级 5.1.107.89 → 5.1.107.92

    • 修复 link2symlink statx 硬链接计数与描述符命名问题
    • 修复 ptrace sysenter skip 导致的挂起
    • 修复 l2s 目录按描述符命名问题
  • 🔐 内置 SSH 服务

    • 新增 SSH 设置页,支持 VPN 感知网络探测
    • SshServiceManager 生命周期与连接管理
    • 局域网直连沙箱,无需额外 App
  • 🖥️ QEMU x86_64 兼容插件(可选安装)

    • qemu-user-static + 最小 x86_64 Ubuntu 24.04 rootfs
    • 用于运行只有 x86_64 版本的构建工具,Android 产物仍为 arm64-v8a
    • 运行时自动检测 QEMU 布局并集成到 PRoot 命令
  • 🔧 工坊设置页

    • Gradle / CMake / Ninja / AAPT2 / Gradle User Home / Pub Cache 路径全部可配置
    • 移除 /opt 路径硬编码,支持自定义持久化工具链
  • 🔏 工坊发布签名

    • 内置 keystore 管理(生成、验证)
    • 签名配置界面 + Gradle signingConfig 自动注入
    • keytool 使用沙箱内路径,修复宿主路径问题
  • ♻️ 零流量快速重置沙箱

    • 每个发行版独立控制,无需重新下载 rootfs
    • 倒计时确认弹窗防误触
  • 🧠 Harness 可恢复上下文历史

    • Agent 可回溯和利用历史对话上下文
  • 🔌 离线插件构建兼容

    • 支持离线插件安全导入与同版本原子替换
    • 无 unzip 环境自解压,兼容旧版插件包
  • 🎨 真实主题系统 + 插件使用指南

  • 🌐 GitHub Pages 官网,配色与 App 主题对齐


🐛 Bug 修复

  • 🔥 修复工具链 exec 死循环(高优先级)

    • ToolCommandLinker 写 shim 时通过 > 跟随符号链接链,把真正的 java 启动器覆盖成 exec wrapper,在 PRoot ptrace 下无限 exec 烧 CPU
    • 六层修复:ELF magic 断言 → 写前 rm -f → 安装时 flock 独占 → 链接链复检 → 超时回滚 → Flutter unzip 自愈
  • 📦 修复 ABI x86 泄漏

    • AAR 依赖(如 androidx.graphics.path)自带 x86/x86_64 so,通过 managed init script 强制 abiFilters 剥离,APK 只保留 arm64-v8a
  • 修复终端构建状态永久转圈

    • runProject 的 channelFlow 中心跳协程永不结束,构建结束后对话框一直 loading、终端消息每 4 秒被覆盖
    • finally 中取消心跳 job,coordinator 丢弃孤儿心跳
  • 🐦 修复 Flutter SDK 检测失败

    • Flutter locateAndroidSdk 要求 SDK 目录含 platform-tools/adb,离线套件从未创建
    • 安装器和 build_flutter.sh 现自动补 adb 符号链接 + SDK license 文件(已有沙箱自愈)
  • 📋 修复 APK 验证选错文件

    • outputs 目录有残留 fat APK 时随机选取,现按 mtime 选最新并记录路径
  • 🔧 修复 Flutter NDK 版本不匹配(CXX1100)

    • Flutter 默认 ndkVersion 27.x 与实际 NDK 29.x 冲突
    • build_flutter.sh 构建前临时注入实际版本,trap EXIT 构建后自动恢复,不修改 NDK 本身
  • 🔧 修复 Flutter CMake 版本不匹配(CXX1300)

    • Flutter 硬编码 CMake 3.22.1 与实际 3.31.7 冲突
    • 同样在 android {} 块临时对齐 externalNativeBuild.cmake.version
  • 🔄 修复同版本插件重新导入卡死

    • AlreadyImported 死路改为原子替换
  • 🚫 工具链损坏状态不再误触发 QEMU 自动重试


⚡ 改进

  • 🏗️ 构建脚本环境变量加载重构,工坊自定义路径优先透传
  • 🏗️ Gradle / Flutter shell wrapper 动态适配 $GRADLE_HOME / $FLUTTER_HOME
  • 🏗️ 项目分析器(Analyze / Doctor)支持识别显式声明的 NDK / CMake 版本
  • 🏗️ keep_project_arm64_only 自动清理 lib/ 下非 ARM64 生成目录
  • 🏗️ Flutter / Android 模板支持动态 SDK 路径探测
  • 🏗️ Doctor 预检增加 CMake、Ninja 检查
  • 📱 发行版卡片统一三按钮布局 + 倒计时删除确认
  • 📱 模型配置卡片和引导页输入框紧凑化
  • 🤖 新增 TaiXuDev CI 工作流和自定义迭代模块

完整对比[v0.5.0...v0.6.0](https://github.com/wkbin/taixu/compare/v0.5.0...v0.6.0)