iPhoneMirror v1.4.1 - 修复 avutil 系统错误弹窗
Pre-release
Pre-release
🔴 严重警告:此版本存在已知问题,无法正常运行
该版本已确认可能无法启动或无法正常投屏,请勿下载或继续使用。正在排查修复,请等待后续稳定版本。
请不要将此版本用于日常使用或生产环境。已安装用户请暂时回退到 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.dllavcodec-58.dllavutil-56.dlldnssd.dllswresample-3.dllswscale-5.dll
- 如果 Windows 在映像映射阶段返回
4551、577等代码完整性错误,预检直接返回专用状态,由 iPhoneMirror 的现代化提示窗口显示处理建议,不再继续进入会弹出“损坏的映像”的依赖加载路径。 - 新增依赖映像回归测试:使用有效的 AirPlay Stub 并将相邻
avutil-56.dll替换为无效映像,验证预检在 5 秒内静默退出并返回预期代码41。
预期行为
- 遇到被策略阻止或无效的
avutil-56.dll时,不再出现 Windows 系统“损坏的映像”弹窗。 - iPhoneMirror 会在应用内显示可操作的错误说明,并停止自动反复启动 WirelessHost。
- 如果问题来自 ZIP 的下载来源标记,请优先使用本 Release 的 Setup 安装器。
- 如果电脑由组织强制执行 WDAC/App Control,程序不会绕过安全策略;无线运行库仍需要管理员加入允许列表或使用可信 Authenticode 签名版本。
安装建议
- 完全退出当前 iPhoneMirror。
- 使用
iPhoneMirror-Setup-v1.4.1-x64.exe覆盖安装。 - 从 Windows 开始菜单启动,不要继续运行桌面旧绿色版目录中的程序。
- 在“关于”页面确认版本为
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。