Skip to content

iPhoneMirror v1.4.1 - 修复 avutil 系统错误弹窗

Pre-release
Pre-release

Choose a tag to compare

@RayrenSX RayrenSX released this 28 Jul 17:11

🔴 严重警告:此版本存在已知问题,无法正常运行

该版本已确认可能无法启动或无法正常投屏,请勿下载或继续使用。正在排查修复,请等待后续稳定版本。

请不要将此版本用于日常使用或生产环境。已安装用户请暂时回退到 v1.3.0。


修复内容

v1.4.1 是针对部分电脑在 v1.4.0 中仍会弹出 iPhoneMirror.WirelessHost.exe - 损坏的映像avutil-56.dll、错误状态 0xc0e90002 的补丁版本。

为什么 v1.4.0 仍可能弹窗

v1.4.0 在 WirelessHost 进入程序代码后才设置线程错误模式。在部分 Windows 安全策略环境中,代码完整性 Hard Error 会在 DLL 依赖解析阶段由系统直接显示,单独设置 Host 线程错误模式不足以保证拦截该窗口。

本次具体修改

  • 主程序启动时设置进程级 SEM_FAILCRITICALERRORS,并让该设置在创建 WirelessHost 子进程时被继承,覆盖子进程初始化阶段。
  • WirelessHost 同时设置进程级与线程级错误模式,避免后续动态加载路径重新触发系统窗口。
  • 在调用 LoadLibraryEx 解析依赖前,使用不执行代码的 SEC_IMAGE 映射依次检查:
    • airplay2dll.dll
    • avcodec-58.dll
    • avutil-56.dll
    • dnssd.dll
    • swresample-3.dll
    • swscale-5.dll
  • 如果 Windows 在映像映射阶段返回 4551577 等代码完整性错误,预检直接返回专用状态,由 iPhoneMirror 的现代化提示窗口显示处理建议,不再继续进入会弹出“损坏的映像”的依赖加载路径。
  • 新增依赖映像回归测试:使用有效的 AirPlay Stub 并将相邻 avutil-56.dll 替换为无效映像,验证预检在 5 秒内静默退出并返回预期代码 41

预期行为

  • 遇到被策略阻止或无效的 avutil-56.dll 时,不再出现 Windows 系统“损坏的映像”弹窗。
  • iPhoneMirror 会在应用内显示可操作的错误说明,并停止自动反复启动 WirelessHost。
  • 如果问题来自 ZIP 的下载来源标记,请优先使用本 Release 的 Setup 安装器。
  • 如果电脑由组织强制执行 WDAC/App Control,程序不会绕过安全策略;无线运行库仍需要管理员加入允许列表或使用可信 Authenticode 签名版本。

安装建议

  1. 完全退出当前 iPhoneMirror。
  2. 使用 iPhoneMirror-Setup-v1.4.1-x64.exe 覆盖安装。
  3. 从 Windows 开始菜单启动,不要继续运行桌面旧绿色版目录中的程序。
  4. 在“关于”页面确认版本为 v1.4.1

验证结果

  • 本地完整 Release 构建通过。
  • CTest 6/6 通过,包括新增的 WirelessHostInvalidImagePreflight
  • 应用逻辑测试和驱动安装器测试通过。
  • v1.4.0 → v1.4.1 隔离覆盖安装、开始菜单、卸载注册、保留/删除用户数据测试通过。
  • GitHub Actions Windows Build/Test/Publish 通过。
  • Setup 版本、ZIP 内容、SHA256 校验和及 SPDX 2.2 SBOM 已验证。

下载

  • 推荐: iPhoneMirror-Setup-v1.4.1-x64.exe
  • 绿色版: iPhoneMirror-v1.4.1-win-x64.zip
  • 同时提供 latest ZIP、SHA256SUMS.txt 和 SPDX 2.2 SBOM。

当前安装器和第三方无线运行库尚未使用商业 Authenticode 证书签名,SmartScreen 可能显示“未知发布者”。请只从本 GitHub Release 下载并核对 SHA256。