1.2.3
- 延迟重启从30秒缩短到3秒：backdoor通道在appmarket启动插件时已就绪，30秒过长。ESXi Web UI刷新慢是宿主机端的问题，不是通道问题。

1.2.2
- 修复冷启动后ESXi Web UI不显示主机信息：vmtoolsd启动后延迟30秒自动kill+重启（等效于naixi restart），触发guestInfo重新推送。1.2.1的stat hosttime RPC无法触发guestInfo刷新，必须重启vmtoolsd进程。

1.2.1
- 修复冷启动后ESXi Web UI不显示主机信息：vmtoolsd启动后延迟30秒触发guestInfo刷新（vmware-toolbox-cmd stat hosttime），无需手动停用再启用。

1.2.0
- 冷启动自动加载彻底修复（第一个开机稳定常驻版本）。真正根因：build 脚本签名时传了 --file app/tools.conf，把 tools.conf 写进 manifest 的 integrity.files；而 appmarket 的 __native_app_verify_integrity 对可签名文件路径有白名单，app/tools.conf 不在白名单内，验签报 "unsupported file path app/tools.conf" 直接失败。install 路径不走验签所以每次装完能用，但 boot 路径先验签、失败后静默跳过 start.sh——完美解释"装完能用、重启拉不起"这一贯穿始终的现象。修法：签名时不再把 tools.conf 加入 integrity list（配置文件本就应允许用户修改）。经真机冷启动验证：appmarket boot 依次调 stop.sh→start.sh，vmtoolsd 稳定常驻，run.log 无 stopping。
- 保留 1.1.2 的 usevsocket=false（避免 vsock ioctl 刷屏触发 kernel CPU halt）。
- 全程兼容公开固件 appmarket 逻辑，不依赖任何私有功能。

1.1.2
- 真正根因定位（kernel panic）：vsock 探测以约 10Hz 发 ioctl 1976，iKuai 内核不支持该 ioctl，积累后触发 CPU halt/kernel panic，vmtoolsd 进程被杀，appmarket 清理打出 stopping。dmesg -n 1 只压控制台显示，ioctl 本身仍在跑。修法：tools.conf 加 [guestrpc] usevsocket=false 彻底关闭 vsock 探测，vmtoolsd 改走 backdoor 通道，ioctl 刷屏完全消失。同时移除 1.1.1 的 uptime gate（那个假设已被证伪）、移除 dmesg -n 1（不再需要）。

1.1.1
- 冷启动稳定常驻的最终修法（证据链已闭合）：读 appmarket 源码确认——appmarket 的 __native_app_start 只同步跑一次 start.sh、无 PID 健康检查、无进程死后重启；restart=1 只控制开机自动拉起（BOOT 的 SQL CASE），不做 watchdog。而 vmtoolsd 冷启动约53-60秒自杀是源码 RPCIN_MAX_RESTARTS=60 → VMTOOLSAPP_ERROR(EXIT_FAILURE) 硬触发（TCLO 通道未就绪），一旦连上则永不自退。因此唯一根治点是让 vmtoolsd 起得够晚：start.sh 在启动 vmtoolsd 前判断系统 uptime，<90秒则 sleep 补足到90秒（appmarket 同步调用 start.sh 且无超时，安全），确保 TCLO 通道就绪后再起，vmtoolsd 永不触发冷启动自杀。手动 install/正常运行时 uptime 早过90秒，零延迟。保留 restart=1 用于开机自动拉起。

1.1.0
- 尝试加 restart=1 委托 appmarket 开机拉起机制接管冷启动保活（后续 1.1.1 证明 restart=1 只控制开机自动拉起、不做进程死后重启，此假设被证伪）。彻底移除 1.0.x 系列所有 supervisor/watchdog/runner/uptime-sleep 复杂逻辑，start.sh 回归 1.0.1 的简单结构（setsid-exec 直接起 vmtoolsd），stop.sh 同步简化。

1.0.14
- 修复 supervisor 被 appmarket SIGKILL：vmtoolsd 冷启动~60秒后退出 → appmarket 健康检查发现进程消失 → SIGKILL 整个进程树（含 supervisor，无法捕获故无日志）。根本解法：将 uptime<90s 等待逻辑移入 supervisor Go 代码——supervisor 自身立刻后台起来（appmarket 看 PIDFILE 进程存活），内部等 uptime≥90s 再启动 vmtoolsd（TCLO 通道已就绪），vmtoolsd 永不触发冷启动60s退出，appmarket 不再 SIGKILL。

1.0.13
- 修复 supervisor 被 appmarket 主动 SIGTERM 杀死：1.0.12 用 setsid-exec 启动 supervisor，appmarket 仍可直接 kill PIDFILE 里的 PID。Go 静态二进制无需 setsid-exec——改为直接 `& ` 后台（与 proxyflowd 完全一致），start.sh 退出后进程被 init 收养，appmarket 不再干预其生命周期。

1.0.12
- 冷启动稳定常驻的终极修法：引入 ovt-supervisor（Go 单静态二进制，参考 proxyflowd 模式）接管 vmtoolsd 生命周期。start.sh 用 setsid-exec 把 supervisor 拉起为独立 session（脱离 appmarket cgroup），PIDFILE 存 supervisor PID（它常驻整个插件生命周期，appmarket 始终认为应用在线）。supervisor fork/exec vmtoolsd 并监控：冷启动 TCLO 通道没就绪导致 vmtoolsd 退出时立即重启（带 2→15 秒退避），直到稳定常驻；vmtoolsd 稳定超过2分钟后重置退避。收到 stop.sh 的 SIGTERM 时杀 vmtoolsd 子进程再自退。彻底移除 backdoor-poll/uptime-sleep/shell-runner 等所有与 appmarket 进程管理打架的脆弱 hack。

1.0.11
- 冷启动稳定常驻的最终修法（大幅简化，移除 1.0.9/1.0.10 的 runner/watchdog）：根因是冷启动时 VMware TCLO(RpcIn) 持久通道要60-90秒才稳定，vmtoolsd 提前启动会耗尽 RPCIN_MAX_RESTARTS=60 次重试后退出（stat hosttime 走的是一次性 RpcOut，通了不代表 TCLO 通了）。start.sh 增加系统 uptime 门槛：uptime<90秒时先 sleep 补足到90秒再启动 vmtoolsd，之后单次 setsid-exec 直接常驻。手动 install 时 uptime 早已超90秒不受影响，只有冷启动才等。回归 1.0.1 的简单 setsid-exec 直接启动结构。

1.0.10
- 修复冷启动 watchdog 被 appmarket cgroup 一并杀死：后台 subshell `( ) &` 仍在 appmarket 的 cgroup 中，start.sh 退出时被清理。改为生成一个 vmtoolsd-runner.sh，用 setsid-exec 将其作为真正的 daemon 启动（新 session、脱离 cgroup），runner 循环：第一次退出等30秒再重启，之后每次等5秒，彻底绕开冷启动 TCLO 通道60秒稳定期。

1.0.9
- 修复冷启动后 vmtoolsd 约77秒后自动退出：冷启动时 VMware TCLO（RpcIn）通道需要60-90秒才稳定，vmtoolsd 耗尽 RPCIN_MAX_RESTARTS=60 次重试后主动退出。改为 watchdog 模式：start.sh 启动一个后台 watchdog subshell，vmtoolsd 退出后等30秒（给 TCLO 通道充分稳定时间）再重启，第二次启动稳定常驻。stop.sh 发 SIGTERM 给 watchdog，watchdog 负责杀 vmtoolsd 子进程再退出。

1.0.8
- 修复冷启动后 start.sh 报"did not stay running"：setsid-exec 后只等2秒就检查进程，冷启动时 vmtoolsd 完成 vsock 探测+fallback 需要更长时间，检查时进程实际是活的但还没稳定。改为最多轮询15秒确认进程存活。

1.0.7
- 彻底修复冷启动后 vmtoolsd 自动退出：根因是 -c tools.conf 本身——带 [logging] file handler 的配置文件会让 vmtoolsd 在启动后约30-45秒退出。对照实验证明不传任何配置文件（纯 vmtoolsd 内置默认）时进程 90 秒稳定常驻、8 插件加载、ESXi 关机/重启/信息读取全部正常。start.sh 移除 -c tools.conf，回归内置默认。vsock 探测走默认流程失败后自动 fallback 到 backdoor，只打印两次 warning 不影响功能。

1.0.6
- 修复冷启动后 vmtoolsd 约13秒退出：[guestrpc] usevsocket=false 会破坏冷启动时 RpcIn TCLO 通道的初始化，导致进程在 channel reset 失败后退出。删除该选项，让 vsock 探测走默认流程（失败后自动 fallback 到 backdoor），冷启动可稳定常驻。vsock 探测失败只打印两次 warning，不影响功能。

1.0.5
- 修复冷启动后 vmtoolsd 约14秒自动退出：系统刚启动时 VMware backdoor RPC 通道尚未就绪，vmtoolsd 超过 channel-reset 重试上限后主动 cleanup 退出。start.sh 现在在启动 vmtoolsd 前先用 vmware-toolbox-cmd stat hosttime 轮询 backdoor 就绪（最多等60秒），就绪后再拉起 vmtoolsd，确保冷启动后自动常驻。

1.0.4
- 修复冷启动后 vmtoolsd 约30秒自动退出：tools.conf 缺 [logging] 段时 vmtoolsd 尝试写 /var/log/vmware/（爱快不存在）导致进程退出。在 tools.conf 加入 [logging] 段，日志写入插件自身 log 目录（/etc/log/apps/open-vm-tools-amd64/.pkg/log/vmtoolsd.log），进程可稳定常驻。

1.0.3
- 修复重启后关机/重启无效：/etc/ 在爱快是 tmpfs，重启后 /etc/vmware-tools/ 被清空，powerOps 找不到 state-change 脚本报"无法执行脚本"。start.sh 每次启动时自动重建四个 noop 脚本（poweroff/poweron/suspend/resume-vm-default）。

1.0.2
- 修复 ESXi 关机/重启无效：vmtoolsd 启动时 vsock 探测死循环（爱快内核无 vmw_vmci/vsock 模块）导致插件加载器永远轮不到，powerOps/guestInfo 未注册，宿主侧收不到关机响应。修复：打包 tools.conf 并通过 -c 传入，设 [guestrpc] usevsocket=false 跳过 vsock 探测，直接走 backdoor 通道；--plugin-path 改指 vmsvc/ 子目录（此前指向父目录导致 0 个插件 dlopen），补加 --common-path 参数（编译时默认路径 /usr/lib/... 在爱快上不存在，不传则插件注册失败）。

0.1.4
- 正式双架构版：补齐 arm64 setsid-exec（静态），amd64 已在实机验证 vmtoolsd 稳定常驻、vmware-toolbox-cmd 通信正常。
- amd64 setsid-exec 方案实机确认：appmarket 启动后 vmtoolsd 进程脱离 start.sh 会话持续存活。

0.1.3
- 根治后台存活：vmtoolsd 自带 --background 会 re-exec 裸 ELF 丢失 musl loader（uClibc 上必败）；shell & 后台又会被 appmarket 进程组回收 + SIGHUP 自杀。改用自带的静态 setsid-exec 包装器（fork+setsid+忽略 HUP 后 exec），让守护进程脱离 start.sh 会话存活，与 qemu-ga --daemonize 同理。
- 注意：本测试版仅含 amd64 setsid-exec，arm64 待补。

0.1.2
- 修复 daemon 化失败：vmtoolsd 自带 --background 在爱快 busybox/uClibc 控制台环境无法存活，系统也无 setsid/nohup。改用 shell 前台 + & 后台化（实机验证唯一能稳定存活的方式），记录 $! 到 pidfile。
- 抑制控制台刷屏：vmtoolsd 轮询 VMware backdoor 时内核会持续打 "Unknown ioctl" 到控制台，start.sh 启动时 dmesg -n 1 压低日志级别，stop.sh 停止时 dmesg -n 7 恢复。
- 修正 --debug 用法：该 build 的 --debug 需带日志文件参数，OVT_VERBOSE=1 时指向 log/vmtoolsd-debug.log。

0.1.1
- 修复启动失败：vmtoolsd 无 --pidfile 选项，改用 --background &lt;pidfile&gt; 合并 daemonize 与写 pidfile。

0.1.0
- 首个版本：在 VMware（ESXi/Workstation/Fusion）虚拟机中运行 open-vm-tools 13.0.0。
- 自带 musl 自包含运行时（vmtoolsd + vmsvc 插件 + glib + libtirpc 等），不依赖爱快 uClibc 系统库。
- 通用包同时打包 amd64 与 arm64，start.sh 按 uname -m 自动选择。
- 启动前检测 VMware 宿主（DMI/cpuinfo/dmesg），非 VMware 时报错；可用 OVT_FORCE=1 跳过。
- daemonize 启动，pidfile + 进程属主校验停止，避免误杀。
- 仅打包无 GUI 必需插件（guestInfo/powerOps/timeSync/vmbackup 等）；不含 gtk/hgfs/vix。
