Skip to content

Releases: Hellmessage/Hellmessage-VM

HVM v2.0.0

Choose a tag to compare

@Hellmessage Hellmessage released this 31 May 10:25

HVM v2.0.0 — QEMU 单后端 (aarch64 + HVF + HDP IOSurface) macOS 虚拟机管理器,支持 Linux + Windows guest。

本版亮点

  • 加密快照修复 — 快照捕获/还原加密 routing,防解密后恢复导致 VM 孤立(含真机 LUKS e2e)
  • guest helper 万能 RPC — exec / write-file / read-file,登录用户会话执行;无 DLL 单 exe(crt-static)
  • 新 GUI 克隆 — 明文 + 加密 VM 克隆,身份重生(id/MAC/数据盘),VMControl.clone 单一来源
  • 文件拖拽 + Cmd+V 粘贴 — 拖文件到 VM 画面 / Cmd+V 直接进 guest
  • guest IP 显示 — 详情页自动显主 IPv4 + 复制(qemu-ga)
  • 端口转发 — user NAT 模式 host→guest 端口转发 + GUI 编辑器
  • 创建向导 / 单一 tray 归属 / 快照接入 GUI / 开机 logo 居中

完整能力

创建 · 启停暂停 · 整盘加密(LUKS)/解密/改密 · 快照(clonefile)· 克隆 · 磁盘管理 · 网络(vmnet shared/host/bridged + user NAT + 端口转发)· 剪贴板(文本+文件)· 共享目录(WebDAV)· 动态分辨率 · swtpm

构建

源码发布。完整 .app 走 make build-all(EDK2 + QEMU + guest-helper + 签名)。

v0.1.13

Choose a tag to compare

@Hellmessage Hellmessage released this 03 May 15:43

v0.1.13

三大块新功能:

  1. host ↔ guest 剪贴板双向共享

    • 自家实现 spice-vdagent 协议 (ANNOUNCE_CAPABILITIES 协商 + GRAB/REQUEST/CLIPBOARD
      状态机 + multi-chunk reassembly), 不依赖 spice-gtk
    • PasteboardBridge: 1Hz NSPasteboard 轮询 + UTF-8 文本双向桥, 防 echo loop
    • vdagent socket 由 VMHost 唯一持有 (single-client 限制), GUI 走 IPC
      display.setMonitors / clipboard.setEnabled
    • per-VM 配置 (clipboardSharingEnabled), 运行中可即时切换
  2. macOS 风快捷键 (cmd → ctrl 映射)

    • host cmd+c/v/x/a/... 自动映射成 guest ctrl+c/v/x/a/...
    • 修了 macOS 已知 "按住 cmd 字符键 keyUp 不送 view" 卡键问题
      (NSEvent local monitor 拦截 + flagsChanged 兜底)
    • per-VM 配置 (macStyleShortcuts), 默认开
  3. detached 独立窗口完全重写 (borderless + 自家 chrome)

    • styleMask 改 .borderless 彻底去掉系统 titlebar (之前 fullSizeContentView
      仍残留 titlebar 概念跟自家 toolbar 重叠)
    • BorderlessKeyableWindow subclass + 自家 TrafficLights 三按钮
      (close→关 detached / min→miniaturize / zoom→toggleFullScreen)
    • 单条 28px toolbar: 红绿灯 + GuestBadge + name + status + config + Pause/
      Stop/Kill + clipboard toggle, 删原 DetailBottomBar
    • aspect ratio 严格保持 guest 比例 (chrome 真实高度 layout-pass 量出反算),
      不再有大左右黑边
    • resize 触发改用 NSWindow live resize (用户真拖动才 resize), 不再被
      layout-driven drawableSizeWillChange 误触发
    • broadcastSurface fd 顺序 race 修复 (close-before-dup 让 detached 永远收
      不到新 surface)

附加:

  • VMConfig schema v2 yaml + 加 clipboardSharingEnabled / macStyleShortcuts
    字段 (decodeIfPresent 兜底, 老 yaml 自动迁移)
  • 新 IPCOp: display.setMonitors / clipboard.setEnabled
  • dbg.display.resize handler 改用 state 内持久 vdagent
  • README 更新: 删过时不做项 (QEMU 嵌入主窗口已实现) + 修 install-vmnet
    脚本名 + config.yaml 路径 + 加新功能描述