Skip to content

ModAVDExtras:路线和现状 #1

Open

Description

@qiyinxi

11-07 起由维护者自己做,不再找人接手。原来这里的交接稿(MAA issue 草稿、MaaCore 补丁全文、测量脚本)已经过时,删掉了:MaaCore 的改动以 MAA 的 PR 为准,旧稿在这个 issue 的编辑历史里能看到。

路线

  1. 短期:AUTO-MAS 用本仓库 Release 里的兼容外壳 external_renderer_ipc.dll 冒充 MuMu 截图增强,导出、返回值和截出来的图都和旧伪装 DLL 一样。
  2. 中期:MaaCore 有自己的 ModAVD 连接配置,从 ModAVD 根目录的 extras\ 载入 modavd_extras,不再冒充 MuMu,Windows、Linux、macOS 都能用。触控照旧用 MaaTouch。
  3. 之后:宿主侧点击。有明确需求再做,开工前先写方案。

现在做到哪

步骤 状态
发 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

以后:清理冒充 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 再做一轮对比测试。

Activity

  1. assigned and unassigned on Nov 6, 2026
  2. HarcoChen commented on Nov 9, 2026

    @HarcoChen
    Contributor

    我这边接 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。仅测试桌面和通知栏。

    实测发现两种情况。

    • 首次开流失败后,映射已有宽高,但 frame_number、timestamp 都是 0,像素全零,open / capture 仍返回成功。
    • 正常关机后残留的 POSIX 共享内存可被下一次冷启动读取。新实例尚未开流,open 直接接受上次末帧并跳过控制台开流,capture 返回成功。ADB 此时能取得当前桌面。清理测试映射后,库自动开流成功。

    另一个崩溃与您提交的 google/gfxstream#190 一致。加 -feature -VulkanNativeSwapchain,保留 GuestAngle,Vulkan 后,可以稳定截图,客体仍报告 GLES 3.1。两轮通知栏动态测试分别完成 654 / 650 次采样,86 / 105 个不同帧,全部成功。同帧 BGR、RGBA 和上下翻转逐字节检查通过,稳定桌面对 ADB 的 RGB 平均每通道差约 0.2725。

    我会先补首帧未发布的回归测试,再检查控制台查询与重复开流行为,验证静止画面和多客户端连接后确定旧映射的修复范围。不会用帧号短时间不变来判定失效。后续 PR 会附实测条件、变异测试结果和限制。使用 Codex 辅助,测试会在本机实际执行。

  3. changed the title [-]交接:截图增强 DLL(ModAVDExtras)接下来的工作[/-] [+]ModAVDExtras:路线和现状[/+] on Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions