Repository navigation
Open
Description
11-07 起由维护者自己做,不再找人接手。原来这里的交接稿(MAA issue 草稿、MaaCore 补丁全文、测量脚本)已经过时,删掉了:MaaCore 的改动以 MAA 的 PR 为准,旧稿在这个 issue 的编辑历史里能看到。
路线
- 短期:AUTO-MAS 用本仓库 Release 里的兼容外壳
external_renderer_ipc.dll冒充 MuMu 截图增强,导出、返回值和截出来的图都和旧伪装 DLL 一样。 - 中期:MaaCore 有自己的
ModAVD连接配置,从 ModAVD 根目录的extras\载入modavd_extras,不再冒充 MuMu,Windows、Linux、macOS 都能用。触控照旧用 MaaTouch。 - 之后:宿主侧点击。有明确需求再做,开工前先写方案。
现在做到哪
| 步骤 | 状态 |
|---|---|
| 发 v0.1.0(库和外壳两个 DLL) | 11-07 已发 |
| 正式版 MAA 实测外壳 | 11-07 做过:MaaCore v6.21.4 测速选中 MumuExtras(2 ms),截图 0 次失败。还差用 Release 里 CI 编的那份再连一次 |
AUTO-MAS 换掉 res/avdshim |
AUTO-MAS-Project/AUTO-MAS#1878,11-07 已合,用的是 v0.1.0 的外壳 |
| 库:拷贝途中次次来新帧时返回未就绪(#6) | 已合,随 v0.1.1 发(11-08) |
ModAVD 发布包带上 extras\modavd_extras.dll |
ModAVD 0.39.0 起带(11-08,Extras v0.1.1)。下次 ModAVD 发版换成 v0.1.2 |
| Release 带 macOS、Linux 的库,发出 #8、#9 | v0.1.2,11-10 已发:macOS arm64 libmodavd_extras.dylib(macOS 12 起)、Linux x64 libmodavd_extras.so(glibc 2.34 起)(#10) |
MaaCore 适配:ModAVD 连接配置和 ModAvdExtras 截图方式 |
MaaAssistantArknights/MaaAssistantArknights#19178,开着,等 MAA 审 |
AUTO-MAS 改用 MAA 的 ModAVD 连接配置 |
等 MAA 发出带 ModAvdExtras 的正式版 |
MaaFramework 接 modavd_extras |
PR 还没提 |
| 清理冒充 MuMu 的代码 | 等 MAA、MaaFramework 都合入并发版,见下 |
Linux、macOS
- 11-09 有贡献者在 Apple Silicon 上实测了库(官方 Emulator 37.2.13,API 35 ARM64):通知栏动态画面两轮各约 650 次采样全部成功,BGR、RGBA、上下翻转逐字节对得上。
- 实测时
GuestAngle,Vulkan下回读画面会崩溃,对应 host: Fix post callback readback without GL emulation google/gfxstream#190,测试时加了-feature -VulkanNativeSwapchain绕开。
- 实测时
- 实测发现的两个问题由 POSIX 连接先确认开流,截图拒绝未发布首帧 #8 修了(11-10 已合):
- 上次运行留下的共享内存被当成当前画面:POSIX 上打开时先经控制台开流;
- 还没发布第一帧也当成截图成功:现在返回
MODAVD_E_NOT_READY。
- POSIX 连接先确认开流,截图拒绝未发布首帧 #8 让 Windows 上的 MuMu 外壳在第一帧前也返回失败,MaaCore 连上时会因此放弃这条路。MuMu 外壳在第一帧发布前照旧交出尺寸和黑图 #9 让外壳照旧交出尺寸和黑图,公开接口不变。
- Linux 上还没有在模拟器上实测。
以后:清理冒充 MuMu 的代码
MAA 和 MaaFramework 接 modavd_extras 的改动都合入并发版以后,冒充 MuMu 这条路就没用了,到时候一起删:
- 本仓库:兼容外壳
shim/mumu_shim.c、tests/test_shim.c,CMake 和 CI 里的external_renderer_ipc目标,Release 里的这个 DLL,README 的「兼容外壳」一节。 - AUTO-MAS:
res/avdshim里的外壳,以及让 MAA 把它当 MuMu 安装路径的配置,改走 MAA 的ModAVD连接配置。 - ModAVDManager:只有注释里提到,顺手改掉。
删了以后,旧版 MAA 在 ModAVD 上只剩 adb 截图,慢一些,但能用。
按需
- 防撕裂的新共享内存写法(要改模拟器):真看到撕裂造成识别错误再做。
- 不再做的:测量脚本收进仓库,和 MFW
AVDExtras再做一轮对比测试。
Metadata
Metadata
Assignees
Labels
No labels
Activity
fix(avd): 魔改 AVD 实例的端口和序列号改取 modavd 返回的值
fix(avd): 更新前认运行中的实例不再比默认端口段
v0.1.1:两个 DLL 的哈希
v0.1.1 说明:按另审意见改三处措辞
发版工具:包里带 ModAVDExtras 的截图库 extras\modavd_extras.dll (ModAVD#154)
HarcoChen commentedon Nov 9, 2026
我这边接 macOS 真机验证,并准备给共享帧就绪判断补一个小 PR。
环境为 Apple M5 / macOS 26.6.2,Extras v0.1.1(3fa5b1d),官方 Emulator 37.2.13,API 35 Google APIs ARM64,1920×1080,独立测试根、控制台 23000 / ADB server 23050。仅测试桌面和通知栏。
实测发现两种情况。
另一个崩溃与您提交的 google/gfxstream#190 一致。加 -feature -VulkanNativeSwapchain,保留 GuestAngle,Vulkan 后,可以稳定截图,客体仍报告 GLES 3.1。两轮通知栏动态测试分别完成 654 / 650 次采样,86 / 105 个不同帧,全部成功。同帧 BGR、RGBA 和上下翻转逐字节检查通过,稳定桌面对 ADB 的 RGB 平均每通道差约 0.2725。
我会先补首帧未发布的回归测试,再检查控制台查询与重复开流行为,验证静止画面和多客户端连接后确定旧映射的修复范围。不会用帧号短时间不变来判定失效。后续 PR 会附实测条件、变异测试结果和限制。使用 Codex 辅助,测试会在本机实际执行。
[-]交接:截图增强 DLL(ModAVDExtras)接下来的工作[/-][+]ModAVDExtras:路线和现状[/+]