From b71873fbfced0488c87942731200af515972d445 Mon Sep 17 00:00:00 2001 From: qiyinxi <52456734+qiyinxi@users.noreply.github.com> Date: Sun, 15 Nov 2026 05:29:12 +0100 Subject: [PATCH 1/2] v0.12.0: version, resources, release notes and checksums (#172) --- cmd/modavd-gui/rsrc_windows_amd64.syso | Bin 73396 -> 73396 bytes internal/buildinfo/buildinfo.go | 2 +- release/0.12.0.SHA256SUMS.txt | 3 ++ release/0.12.0.md | 62 +++++++++++++++++++++++++ rsrc_windows_amd64.syso | Bin 73428 -> 73428 bytes 5 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 release/0.12.0.SHA256SUMS.txt create mode 100644 release/0.12.0.md diff --git a/cmd/modavd-gui/rsrc_windows_amd64.syso b/cmd/modavd-gui/rsrc_windows_amd64.syso index e75d5a98bffc9f49a76a8384d4804934e79e7c0a..8d578287052ee00d4a960ce62b7a27f0c648d714 100644 GIT binary patch delta 42 scmdn8mu1UdmWC~iJz|_Z3=qIGeX1DaUq++tlf@a;8G-a}3C5qS00kopoB#j- delta 42 scmdn8mu1UdmWC~iJz|{P3=qIQeX1DaUq-|2lf@a;8G-a}3C5qS00h|!m;e9( diff --git a/internal/buildinfo/buildinfo.go b/internal/buildinfo/buildinfo.go index 0c3459d..c511d34 100644 --- a/internal/buildinfo/buildinfo.go +++ b/internal/buildinfo/buildinfo.go @@ -4,7 +4,7 @@ package buildinfo // Version of modavd itself, kept in the source rather than set with -ldflags -X: release builds must come out byte // for byte the same for the same source (Mirror 酱 ships per-file deltas, and a version stamped per package would // change the exe in every release). The ModAVD package version comes from the root at run time. -var Version = "0.11.0" +var Version = "0.12.0" // Protocol is the version of the machine-readable contract: the commands, the JSON written by `--json`, the exit codes // and the MCP tool schemas. Callers such as AUTO-MAS check it (`modavd version --json`) before relying on a field. diff --git a/release/0.12.0.SHA256SUMS.txt b/release/0.12.0.SHA256SUMS.txt new file mode 100644 index 0000000..8ead853 --- /dev/null +++ b/release/0.12.0.SHA256SUMS.txt @@ -0,0 +1,3 @@ +50607be60d8df3ad4b1ed75822aa6bbe61ed8582ae840c85cc03d18093010bfe ModAVD.exe +c67d6c0405b14320c25f8a6a9ed59be9b03cdc2e7d84c77534127f700eacada5 ModAVDManager-0.12.0-win-x64.zip +c7515e082546579fc81859843f0ef2017a643ab4f33b8e205e369d11cdf0c16c tools/modavd.exe diff --git a/release/0.12.0.md b/release/0.12.0.md new file mode 100644 index 0000000..5e10b18 --- /dev/null +++ b/release/0.12.0.md @@ -0,0 +1,62 @@ +# ModAVDManager v0.12.0 + +- `ModAVD.exe`:`50607be60d8df3ad4b1ed75822aa6bbe61ed8582ae840c85cc03d18093010bfe` +- `tools/modavd.exe`:`c7515e082546579fc81859843f0ef2017a643ab4f33b8e205e369d11cdf0c16c` + +随 ModAVD 0.41.0 进包。下面是相对 v0.11.0 的改动。这一版主要是:开机前发现截图共享内存还被别的程序拿着时,写出是哪个程序;新建时语言没设成不再算新建失败;开机后记下客体的时钟源,给排查变慢的问题取证。 + +## 新增 + +- 开机前,如果这台实例的截图共享内存还在(上次那台模拟器退出后,有程序一直拿着它,多半是 MAA 这类用截图的工具),记一条警告,写出拿着它的程序和 pid,开机照常进行。这时截图共享可能开不起来,用它截图的工具会变慢;把这些程序退出后再开机就好。问题包里也单独记一节:没在运行的实例还留着截图共享内存的,写出拿着它的程序;没有就不出这一节。(ModAVDManager#168,ModAVD/ModAVD#210) +- 每次开机后设置的最后一步,记下客体的时钟源,写进这次开机的日志。x86_64 客体的时钟源不是 tsc 时(这次开机期间整体会变慢,关机再开才恢复),记一条警告,马上存下客体的内核日志到 `logs\mas_-<时间>-clocksource.txt`,每台实例留最新 5 份。读不到时只记一句,不拦开机。问题包里实例那一节多一行最近一次开机的时钟源,并带上最新 3 份这类内核日志。这一条只是取证,不改时钟源本身。(ModAVDManager#171,ModAVD/ModAVD#110) + +## 变更 + +- 模拟器的构建号(`sdk\emulator\source.properties` 的 `Pkg.BuildId`、包清单 `modavd-manifest.json` 的 `build`)除了 `mas-N`,也认版本号的写法(比如 `0.42.0`),开机检查、装包和更新都一样。这是为以后的模拟器改用版本号当构建号做准备;ModAVD 0.41.0 的模拟器仍是 `mas-41`。(ModAVDManager#169) + +## 修复 + +- 新建实例时语言没设成,不再让这次新建算失败:新建照常完成并正常关机,语言留到下次冷启动再设。(ModAVDManager#167,ModAVD/ModAVD#206) +- 打开运行中实例的设置页时,读安卓里的语言和时区只读系统属性,不再往客体里推送程序、用 root 起进程。(ModAVDManager#167,ModAVD/ModAVD#206) + +## 给调用方(AUTO-MAS) + +- `protocol` 还是 2:没有删命令、参数和 `--json` 字段,没有新的错误码和退出码。调用方不用改。 +- `--json`:根信息多一个字符串 `build_id`(模拟器的 `Pkg.BuildId` 原样,比如 `mas-41`;不知道时省略)。整数 `build` 保留,构建号是 `mas-N` 时还是 N,以后是版本号写法时为 0。`update status` 的 `current_build` 以后也可能是版本号写法。(ModAVDManager#169) +- 新建时语言没设成,`create` 不再报失败,也不用 `create --resume N`;`regional ` 里照旧看得到 `pending_language`。(ModAVDManager#167) + +## 下载与核对 + +用 Go 1.26.5、`GOTOOLCHAIN=local` 运行仓库里的 `build.ps1`,能编出相同的字节。单独下载的包里还有 Go 的许可原文和文件清单。请用附件 `SHA256SUMS.txt` 核对 zip 和解压出的两个 exe,例如在 PowerShell 里运行 `Get-FileHash .\ModAVDManager-0.12.0-win-x64.zip -Algorithm SHA256`。 + +单独下载的管理器不会自己更新,新版本要手动替换;ModAVD 包里的那份随 ModAVD 整包一起更新。单独使用时请给 `--root` 或设置 `MODAVD_ROOT`,否则会提示找不到 ModAVD 根目录。不要把单独下载的 zip 解压到 ModAVD 根目录,覆盖整包里的文件。 + +## English + +Shipped in ModAVD 0.41.0. Changes since v0.11.0. This release mostly brings: before a boot, a screenshot shared-memory region still held by another program is reported with that program's name; a language that could not be set at creation no longer fails the creation; each boot records the guest's clock source, as evidence for slowdowns. + +### New + +- Before a boot, when the instance's screenshot shared-memory region still exists (a program kept holding it after the last emulator exited, most likely a screenshot tool such as MAA), a warning names the programs holding it and their pids; the boot goes on. Frame sharing may then not start, and tools that take screenshots through it get slower; quit those programs and boot again. The problem report has a section of its own for regions left by instances that are not running, with the programs holding them; without any, the section is not there. (ModAVDManager#168, ModAVD/ModAVD#210) +- As the last step of the setup after each boot, the guest's clock source is written to that boot's log. When an x86_64 guest's clock source is not tsc (everything is slower until the instance is shut down and started again), a warning is logged and the guest's kernel log is saved right away to `logs\mas_-