Skip to content

Releases: RayrenSX/iPhoneMirror

iPhoneMirror v1.4.4 - Apple 服务安装与设备恢复提示修复

Choose a tag to compare

@RayrenSX RayrenSX released this 29 Jul 09:49

iPhoneMirror v1.4.4

本版本重点修复 Apple Mobile Device Service 在部分 Windows 10/11 电脑上无法准备完成的问题,并强化驱动变更后的设备信任确认与投屏握手超时提示。

Apple Mobile Device Service 安装修复

此前,Microsoft Store 版 Apple Devices 可能已经提供 appleusb.inf,但传统的 Apple Mobile Device Service 并未注册。旧逻辑会继续等待约三分钟并重复记录状态,随后才下载 Apple 官方兼容包,容易让用户误认为安装器卡死或安装失败。

v1.4.4 调整为按驱动和服务的实际状态选择路径:

  • Apple USB INF 已存在、服务缺失时,不再重复安装 Microsoft Store 版 Apple Devices,直接进入服务兼容组件安装。
  • Apple USB INF 缺失时,仍优先通过固定 Store 产品 ID 9NP83LWLPZ9K 安装 Apple Devices。
  • Store 安装完成后只进行短时验证;如果只获得 INF 而没有服务,会立即进入兼容组件路径。
  • 已注册但停止的 Apple Mobile Device Service 会优先尝试启动,不再无条件重装。
  • 状态轮询改为一秒一次,并只写入开始、可恢复、成功或超时摘要,避免产生数百行重复日志。

只安装必要的 Apple 组件

兼容路径不再静默安装完整桌面版 iTunes:

  1. 从 Apple 官方 HTTPS 地址下载已签名的安装包。
  2. 在普通用户权限下执行 Apple 官方 /extract 提取流程。
  3. 只选择 AppleMobileDeviceSupport64.msi
  4. 验证 EXE 与 MSI 的 Windows Authenticode 签名主体必须为 Apple Inc.
  5. 计算 SHA256,并在提权执行前再次锁定文件、验证签名和哈希。
  6. 仅通过 msiexec 安装 Apple Mobile Device Support,不安装完整 iTunes 应用。
  7. 安装后验证 Apple USB INF、服务注册和服务运行状态;必要时尝试启动服务。

官方兼容包下载现在显示百分比、已下载大小和总大小。用户取消 UAC 后会立即停止,不再继续下载或重复弹出授权。Windows Installer 返回 16413010 时,会明确提示重启电脑完成驱动和服务注册。

公共 Release 不包含、也不重新分发 Apple 专有 MSI、INF 或驱动二进制文件。缺失的 Apple 组件始终从 Microsoft Store 或 Apple 官方 HTTPS 渠道获取。持有 Apple 再分发授权的构建者仍可使用项目已有的授权离线 MSI 构建参数。

驱动变更后的设备信任确认

以下操作成功改变驱动状态后,驱动管理器会要求用户检查 iPhone/iPad 屏幕:

  • 安装 Apple USB 支持;
  • 一键安装全部驱动;
  • 修复错误的 Apple USB 父驱动绑定;
  • 安装或修复当前设备的 libusb0 采集过滤驱动;
  • 卸载当前设备的采集过滤驱动。

确认窗口提供三个明确选项:

  • “出现了提示,我已点击信任”;
  • “没有出现提示(此前已信任此电脑)”;
  • “尚未处理”。

用户选择“尚未处理”时,驱动管理器会保留待处理状态,并将选择写入结构化日志。设备密码只应输入在 iPhone/iPad 上,iPhoneMirror 不会要求或保存设备密码。

投屏 no-PING 超时提示强化

当设备已连接但长时间没有响应投屏握手(日志包含 sent no PING)时,不再使用普通小字号错误正文,而是显示专用恢复窗口:

  • 重启 iPhone 或 iPad
  • 更换 Apple 原装或 MFi 认证数据线

这两项操作使用大字号、半粗体和高对比警示区域显示,并单独提醒重新连接和投屏时保持设备解锁。普通投屏错误仍使用原有错误窗口,不受影响。

日志与诊断

  • 驱动管理器主日志:%LOCALAPPDATA%\iPhoneMirror.Driver\Logs\driver-ui.log
  • Apple MSI 详细日志:%LOCALAPPDATA%\iPhoneMirror.Driver\Packages\apple-support-install.log
  • 驱动变更后的信任选择会记录为 device_trust_response 事件。
  • AMDS 提取、签名验证、下载、MSI 返回码、服务恢复和重启要求均有独立事件。
  • 主程序“清理日志和更新缓存”现在也会清理 Apple MSI 安装日志。

其他修复

  • 修正原生核心 DLL 数字型文件版本仍停留在 1.4.1.0 的问题;v1.4.4 的托管程序集、原生资源、安装器和发布脚本版本保持一致。
  • FFmpeg 构建依赖下载遇到超时、限流或服务器临时错误时会按 5、15、30 秒间隔重试,避免第三方下载源短暂返回 HTTP 503 导致整个发布构建失败;每次失败都会清理未完成文件,固定 SHA256 校验保持不变。
  • 更新中英文资源,并增加 UI 回归测试,确保 no-PING 窗口中的两条关键建议保持至少 18px 且使用半粗体。
  • 更新 Apple 驱动依赖文档和未发布变更记录。

下载

  • iPhoneMirror-Setup-v1.4.4-x64.exe:推荐使用的 Windows x64 安装程序,支持覆盖升级与卸载。
  • iPhoneMirror-v1.4.4-win-x64.zip:便携版。
  • iPhoneMirror-v1.4.4-win-x64-latest.zip:自动更新使用的便携版别名。
  • iPhoneMirror-v1.4.4-win-x64-sbom.spdx.json:SPDX SBOM。
  • SHA256SUMS.txt:所有 Release 资产的 SHA256 校验清单。

验证范围

  • Windows 原生协议、输出状态、无线接收和虚拟摄像头测试;
  • 主程序逻辑测试及 no-PING 视觉优先级回归测试;
  • 驱动安装器状态矩阵、包签名、文件锁、路径安全和日志测试;
  • Microsoft VC Runtime 解析与 Apple 离线支持包验证;
  • 中英文资源键完整性与 Release x64 发布构建。

已知提示

  • 当前公开安装程序尚未使用商业代码签名证书签名,Windows SmartScreen 可能显示“未知发布者”。请只从本项目官方 GitHub Release 下载,并使用 SHA256SUMS.txt 校验完整性。
  • 安装 Apple Mobile Device Support 后,如果 Windows 要求重启,请重启电脑再重新检测驱动。
  • 驱动安装完成但设备没有出现信任提示时,通常表示该电脑此前已经被设备信任;仍需保持设备解锁后重试投屏。

iPhoneMirror v1.4.3 - Apple 驱动自动安装与构建修复

Choose a tag to compare

@RayrenSX RayrenSX released this 29 Jul 07:21

iPhoneMirror v1.4.3

本版本重点完善全新 Windows 环境中的 Apple 驱动引导,并修复 Windows GitHub Actions 构建兼容性问题。

Apple 驱动自动安装

  • 当系统完全没有 Apple USB 支持时,驱动管理器会优先通过 winget 安装 Microsoft Store 中固定产品 ID 9NP83LWLPZ9K 的 Apple Devices。
  • 将 Apple Mobile Device Service 与 Apple USB INF 分开检查,避免服务存在但 USB 驱动缺失时被误判为已就绪。
  • 同时识别现代 appleusb.inf 和旧版 usbaapl64.inf / usbaapl.inf;恢复模式专用的 applekis.inf 不再被误认为正常投屏驱动。
  • Microsoft Store 或 winget 不可用时,回退到 Apple 官方 HTTPS 地址提供的已签名桌面版 iTunes 安装程序。
  • 支持在拥有 Apple 再分发授权时,通过构建参数嵌入并校验 Apple 签名的 AppleMobileDeviceSupport64.msi,供离线安装使用。

公开发布的 v1.4.3 安装包不包含、也不重新分发任何 Apple 专有 MSI 或驱动二进制文件。离线 Apple MSI 只会在构建者明确提供授权文件并确认再分发权时纳入私有构建。

构建与稳定性修复

  • 修复 GitHub Actions 对 Microsoft VC Runtime 文件版本的解析,兼容 14.29.30157.0 built by: cloudtest 等带 runner 后缀的版本字符串,同时保留 Microsoft 数字签名及复制后哈希验证。
  • 修正虚拟摄像头异步采样压力测试:允许运行较慢时为追赶真实时钟产生合法空档,同时仍拒绝时间倒退和采样重叠。
  • 完成 Apple USB 驱动依赖审计;项目自身需要的 libusb-win32、VC Runtime、FFmpeg 与无线接收运行库继续随安装包提供。

验证结果

  • Windows GitHub Actions build-test:通过。
  • 原生协议、输出模式、无线主机、虚拟摄像头组件:6/6 通过。
  • 应用逻辑、驱动管理器、VC Runtime 解析、Apple 离线支持包安全校验:全部通过。
  • 虚拟摄像头异步采样压力测试额外连续运行 5 次通过。
  • 安装程序产品版本:1.4.3,文件版本:1.4.3.0

下载说明

  • iPhoneMirror-Setup-v1.4.3-x64.exe:推荐,Windows x64 安装程序。
  • iPhoneMirror-v1.4.3-win-x64.zip:便携版。
  • iPhoneMirror-v1.4.3-win-x64-latest.zip:自动更新使用的便携版别名。
  • iPhoneMirror-v1.4.3-win-x64-sbom.spdx.json:SPDX SBOM。
  • SHA256SUMS.txt:所有发布资产的 SHA256 清单。

SHA256

2b0d5df2bb61ad3484c41c67df3984d64811ee663472de819efc94b6af2d4725  iPhoneMirror-Setup-v1.4.3-x64.exe
3de1ac409aa85bd827a5cc57ff020130599bbc52584e8f4c1e1fbfda061b1838  iPhoneMirror-v1.4.3-win-x64.zip
3de1ac409aa85bd827a5cc57ff020130599bbc52584e8f4c1e1fbfda061b1838  iPhoneMirror-v1.4.3-win-x64-latest.zip
14f14f51769010d1efa6831b32772e63e4e4d94ee6f715ad5d045e4e839c61c4  iPhoneMirror-v1.4.3-win-x64-sbom.spdx.json

已知提示

当前公开安装程序尚未使用商业代码签名证书签名。首次下载运行时,Windows SmartScreen 可能显示“未知发布者”;请从本项目官方 Release 下载并使用上方 SHA256 校验文件完整性。

iPhoneMirror v1.4.2 - 干净机启动与完整日志修复

Choose a tag to compare

@RayrenSX RayrenSX released this 29 Jul 06:03

v1.4.2 修复说明

本版本重点修复 v1.4.0 / v1.4.1 在部分干净 Windows 电脑上无法启动的问题,并补齐全链路诊断日志。v1.4.0 和 v1.4.1 已标记为 Pre-release,请直接升级到 v1.4.2。

启动兼容性修复

  • 随主程序内置经过固定 SHA256 校验的官方签名 x64 libusb0.dll 用户态运行库,使尚未安装投屏过滤驱动的电脑也能先正常启动应用并打开驱动管理器。
  • 随主程序和无线接收组件内置 Microsoft 签名的 MSVCP140.dllVCRUNTIME140.dllVCRUNTIME140_1.dll,修复未安装 Visual C++ Redistributable 的干净系统在 im_initialize() 阶段崩溃。
  • 启动前检查核心 DLL 和 VC++ Runtime,缺失或损坏时显示应用内错误窗口并给出日志路径,不再静默退出。

投屏恢复提示

  • 识别有线 QuickTime 握手长时间 no PING 的情况。
  • 提示用户重启 iPhone、保持解锁,并更换 Apple 原装或 MFi 认证数据线后重试。

完整诊断日志

  • 新增进程级托管日志,覆盖 WPF Dispatcher、AppDomain、未观察 Task 异常,以及更新、设置、录制、FFmpeg、虚拟摄像头、无线接收和驱动管理器流程。
  • 日志目录统一为 %LOCALAPPDATA%\iPhoneMirror\Logs\
    • application.log:界面与业务异常
    • capture.log:USB、解码与渲染核心
    • startup.log:启动预检和环境信息
    • installer-update-时间.log:自动更新安装日志
  • LocalAppData 不可写时,关键错误回退到 %TEMP%\iPhoneMirror-fallback.log
  • “关于 → 诊断”新增打开日志目录和一键清理。
  • 日志自动轮转,清理超过 14 天的文件,并将主日志目录限制在 64 MB。

更新流程加固

  • 自动更新安装器启用独立 Setup 日志。
  • 限制 Release JSON、校验文件和更新包大小,校验资产文件名,下载/校验/启动失败均写入日志。
  • 发布和安装脚本会验证全部必需运行库,防止后续版本再次漏包。

验证结果

  • App Logic Tests:通过
  • Driver Installer Tests:通过
  • 原生测试:6/6 通过
  • v1.4.1 → v1.4.2 覆盖升级:通过
  • 卸载与用户数据保留:通过
  • 干净机启动:通过
  • 安装包 SHA256:79adcff4bc2523bf3c4cdf4b9e72d3cde791aa9ab84c89996ed842bedf898f90

注意:当前 Setup 安装器尚未使用商业代码签名证书签名,因此 Windows SmartScreen 可能显示“未知发布者”。Release 中的 SHA256SUMS.txt 可用于校验下载完整性。

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

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。

iPhoneMirror v1.4.0 - Windows 安装与自动更新

Choose a tag to compare

@RayrenSX RayrenSX released this 28 Jul 16:36

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

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

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


本次重点

v1.4.0 将 iPhoneMirror 从仅提供绿色 ZIP 的分发方式升级为完整的 Windows 安装、卸载和自动更新体验,并修复部分电脑上无线投屏运行库被 Windows 安全策略阻止时出现的 avutil-56.dll 损坏的映像 / 0xc0e90002 问题。

Windows 安装与卸载

  • 新增标准 x64 安装程序 iPhoneMirror-Setup-v1.4.0-x64.exe,支持双击安装和自定义安装目录;管理员安装默认位于 C:\Program Files\iPhoneMirror
  • 注册 Windows“设置 → 应用 → 已安装的应用”卸载信息、程序版本和图标。
  • 创建开始菜单目录,包含 iPhoneMirror、更新日志和卸载入口;桌面快捷方式可选。
  • 注册 RayrenSX.iPhoneMirror AppUserModelID 和 App Paths,适配 Windows 10/11 启动与快捷方式行为。
  • 卸载时询问是否删除用户配置和已下载的更新;选择保留后重新安装不会丢失这些数据。
  • 安装器支持覆盖升级并在更新完成后自动重新启动应用。

GitHub Release 自动更新

  • 启动时可自动检查 GitHub Release,也可在“关于”页面手动检查。
  • 正确解析 tag_name、版本名称、发布时间、Markdown 更新说明和发布资产。
  • 使用语义化版本比较,能够正确处理 v1.2.0 > v1.1.9,并区分正式版与 Beta 预发布版。
  • 可分别控制启动检查、自动下载、正式版提醒和 Beta 版提醒。
  • 更新窗口显示当前版本、最新版本、发布日期、Markdown Release Notes、下载百分比与实时速度。
  • 一键下载、可重试、清理中断临时文件,并在提供 SHA256SUMS.txt 时自动执行 SHA256 完整性校验。
  • 优先选择名称明确的 x64 Setup/Installer EXE;不会误把普通 EXE 当成安装器。没有安装器时自动回退到 ZIP 更新。
  • 下载完成后自动关闭旧版本、覆盖升级并重新启动,无需用户手动下载 ZIP。
  • 网络不可用、GitHub 超时或下载失败不会阻止软件正常启动。

0xc0e90002 与“损坏的映像”修复

  • 已确认该错误实际为 Windows STATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION,通常表示文件被 Smart App Control、WDAC/App Control 或下载来源标记阻止,并不等同于 DLL 内容损坏或位数错误。
  • 无线接收启动前新增无窗口运行时预检,提前验证 AirPlay/FFmpeg DLL 及所需导出函数。
  • 抑制误导性的系统“Bad Image/损坏的映像”弹窗,并识别 Win32 4551577 等代码完整性错误。
  • 在应用内提供中英文可操作提示:优先安装本 Release 的 Setup;如必须使用 ZIP,请先在原始 ZIP 的“属性”中选择“解除锁定”,再重新解压。
  • 失败后增加 30 秒退避,避免无线接收和 Media Cast 反复启动并连续弹错。
  • 企业电脑若由组织强制执行 WDAC/App Control,未签名第三方运行库仍可能需要管理员批准或加入允许列表。

现代化界面

  • 主界面、更新窗口和关于页面采用 Windows 11 风格的圆角、Mica 背景、阴影和过渡动画。
  • 支持系统、浅色、深色三种主题;切换主题后已打开窗口会动态更新。
  • 修复浅色主题中部分控件仍残留深色画刷的问题,并为黑色预览画布保留稳定的高对比文字。
  • 新增“关于”页面,集中显示版本、GitHub、更新设置、检查更新、更新日志与许可证信息。
  • 页脚版本改为从程序集读取,当前正确显示 iPhoneMirror v1.4.0

验证结果

  • Release 完整构建通过,CTest 5/5 通过。
  • 应用逻辑测试和驱动安装器测试通过。
  • 中英文资源各 413 个键,代码引用缺失键为 0
  • 已隔离验证模拟 v1.3.0 → v1.4.0 覆盖升级、卸载注册、App Paths、开始菜单快捷方式、保留用户数据和明确删除用户数据。
  • Setup 产品版本、ZIP 内容一致性、SHA256 文件和 SPDX 2.2 SBOM 均已校验。

下载说明

  • 推荐: iPhoneMirror-Setup-v1.4.0-x64.exe
  • 绿色版: iPhoneMirror-v1.4.0-win-x64.zip
  • iPhoneMirror-v1.4.0-win-x64-latest.zip 与版本化 ZIP 内容相同,供自动化使用。
  • SHA256SUMS.txt 包含全部四个载荷的 SHA256;同时提供 SPDX 2.2 SBOM。

当前安装器尚未使用商业 Authenticode 证书签名,因此 Windows SmartScreen 可能显示“未知发布者”。请只从本 GitHub Release 下载并使用 SHA256SUMS.txt 核验文件。

iPhoneMirror v1.2.2

Choose a tag to compare

@RayrenSX RayrenSX released this 28 Jul 03:29

iPhoneMirror v1.2.2

本版本重新整理了画面设置流程,移除了对当前上游镜像流没有实际意义的 HDR 选项,并补齐了解码器切换、画面调节和多设备状态的一致性。

画面调节

  • 移除 HDR 输出选择。当前上游驱动不会发送 HDR 镜像流,因此预览统一使用 SDR 输出;若兼容来源带有 HDR 标记,渲染器仍会执行确定性的 HDR 到 SDR 映射。
  • 新增独立的“更多设置 / 调节画面”窗口,可按设备调整亮度、对比度、饱和度和伽马。
  • 拖动滑块时立即预览效果;点击“保存”提交当前值。
  • 未保存时通过返回、Esc 或直接关闭窗口,会恢复打开窗口前的数值。
  • 调节窗口为非模态窗口,打开后仍可操作主窗口、独立预览窗口和其他设备页面,不再出现页面层级互相阻塞。
  • 独立预览窗口的右键菜单新增“调节画面”,可直接打开对应设备的调节页面。

解码器与设置应用

  • 主页面只保留分辨率、帧率和解码器三项画面设置,整体布局和现有控件风格保持一致。
  • 解码器选项只有在点击“应用画面设置”后才提交,不会在下拉选择时提前生效。
  • 实时切换失败且需要重建设备会话时,会先弹出确认窗口,由用户决定是否重连。
  • 预览框下方状态栏现在显示解码器请求、等待关键帧、实际硬件/软件解码器以及回退状态,避免底层尚未切换时误报“已生效”。

多设备与稳定性

  • 每台设备独立保存画面设置;切换设备时不会继承上一台设备的亮度、分辨率、帧率或解码器状态。
  • 会话创建使用不可变设置快照,防止多窗口并行操作时混入另一台设备的新旧参数。
  • 分辨率/帧率、画面参数和解码器分别按原生调用结果记账,部分失败不会再被记录成全部成功。
  • 修复非预设分辨率/帧率在切换设备时被默认预设覆盖的问题。
  • 修复重复本地化键可能导致 WPF 启动崩溃的问题。

验证

  • 原生协议测试、输出模式测试、无线 Host smoke、应用逻辑测试和驱动安装器测试全部通过。
  • WPF 应用与驱动管理器 Release 构建为 0 警告、0 错误。
  • 已完成主设置布局、非模态画面调节窗口和最小窗口尺寸下的 UI smoke 检查。

下载

  • iPhoneMirror-v1.2.2-win-x64.zip:版本固定的 Windows x64 完整包。
  • iPhoneMirror-v1.2.2-win-x64-latest.zip:供固定 latest 地址使用的同内容完整包。
  • SHA256SUMS.txt:发布包 SHA-256 校验值。

兼容 Windows 10/11 x64。本版本未生成或附带 SBOM 文件。

iPhoneMirror v1.2.1

Choose a tag to compare

@RayrenSX RayrenSX released this 27 Jul 05:13

iPhoneMirror v1.2.1

正式版,适用于 Windows 10/11 x64。

本版重点

  • 新增 HDR 视频链路:支持 AVC/HEVC、NV12/P010、BT.601/709/2020、Display P3、PQ/HLG、HDR 转 SDR tone mapping,并可在开启 Windows HDR 的显示器上使用 FP16 scRGB 输出。
  • 新增多解码器策略:提供自动、硬件优先、软件兼容三种模式;Media Foundation 解码器初始化或运行失败时会自动回退,并按设备独立保存设置。
  • 完善多设备投屏:两台及以上设备可以同时拥有独立的采集、解码、音频、主预览和独立窗口会话;停止或切换一台设备不会中断其他设备。
  • 增强 iPad 与 USB-C 设备兼容性:动态识别 QuickTime configuration、interface、alternate setting 和 endpoint,支持重枚举后的序列号与物理端口匹配。
  • 视频软件投放现已与有线/无线镜像共用主预览、独立窗口、全屏、截图、统计信息和右键功能链路。

视频投放与窗口

  • 暂停、继续、拖动进度改为独立 Pause、Resume、Seek IPC 命令,不再通过重新加载 URL 模拟进度跳转。
  • 右上角按钮在视频投放期间显示“停止投屏”,并向接收端发送协议 Stop 请求。
  • 修复直播流和 HLS 已连接但不播放的问题,并加入受限重试与媒体后端恢复。
  • 修复播放状态横条残留、分辨率/帧率/音频统计缺失、设备选项卡无法切换以及播放结束时可能卡死的问题。
  • 视频投放独立窗口使用 Windows 原生标题栏和标准圆角;有线/无线镜像继续使用无标题栏设备外形,并保留“去除圆角”选项。
  • 独立窗口支持双击全屏,修复拖动窗口时严重掉帧、右键菜单不一致及窗口关闭/恢复竞态。

HDR 与解码

  • 支持 avc1avc3hvc1hev1 sample entry,以及 hvcC、VPS/SPS/PPS、NAL 长度、位深和色彩信息解析。
  • 每帧优先读取实际 Media Foundation sample 色彩/HDR 属性;流中参数集、位深或色彩配置变化时自动重建解码器。
  • 修复异步 MFT 的 NeedInput、HaveOutput、DrainComplete、sample 生命周期与 ShutdownObject 处理。
  • HDR 输出会随窗口所在显示器及 Windows Advanced Color 状态动态切换;普通 SDR 内容保持 BGRA8 低带宽路径。
  • 截图与 OBS BGRA 输出支持 P010 输入并正确转换为 SDR。

多设备与稳定性

  • 使用 USB serial 与物理端口 topology 共同确认设备身份,修复 QuickTime 重枚举期间串设备和左侧出现幽灵设备的问题。
  • 主预览 HWND 增加跨会话唯一所有权,重复挂接改为幂等刷新,修复 CreateSwapChainForHwnd 0x80070005
  • 改进 QuickTime shutdown、音频队列、应用关闭、后台设备错误和无线接收端生命周期,降低停止投屏或退出时卡死的风险。
  • 修复构建流程可能把旧版 native DLL 放入新 UI 产物的问题;普通构建、测试和正式发布现在使用同一份最新 native runtime。

日志与安全

  • 扩展应用、USB、协议、解码器、渲染器、视频投放、驱动操作和关闭流程的结构化日志,并加入日志轮转和隐私化设备标识。
  • 加固驱动负载哈希、Authenticode、结果文件、提权参数、退出码一致性、超时终止、重解析点及发布目录校验。
  • 发布包包含第三方许可、SHA-256 校验文件和 SPDX SBOM。

验证结果

  • Native Core protocol tests:通过
  • WirelessHost smoke test:通过
  • App logic tests:通过
  • Driver installer tests:通过
  • 两台 USB 真机同时投屏:通过;会话 1,2 均进入 Streaming,停止一台后另一台继续运行
  • QuickTime shutdown:两台设备均发送 2 个停止消息
  • 多设备稳定选择:8 次刷新保持 2 台设备且选择不漂移
  • 视频投放集成测试:主预览、独立窗口、原生标题栏、Windows 圆角、双击全屏和停止投屏均通过
  • 媒体控制测试:Pause、Seek、Resume IPC 均通过
  • 主预览 swapchain attachment failure:0
  • Release 构建:0 warning,0 error

使用说明

  1. 下载 iPhoneMirror-v1.2.1-win-x64.zip 并完整解压后运行 iPhoneMirror.exe
  2. 首次使用有线投屏时,可通过随包提供的 iPhoneMirror.Driver.exe 检查 Apple USB 环境及设备驱动。
  3. iPhoneMirror-v1.2.1-win-x64-latest.zip 与版本 ZIP 内容相同,便于固定下载地址。
  4. 可使用 SHA256SUMS.txt 校验下载完整性;iPhoneMirror-v1.2.1-win-x64-sbom.spdx.json 提供依赖清单。

已知限制

  • Apple USB、AirPlay 和视频投放依赖设备及系统协议行为,未来 iOS 或 Windows 更新可能需要相应适配。
  • HDR 实际输出取决于视频元数据、显卡驱动、显示器能力和 Windows HDR 设置;SDR 显示器会自动使用 tone mapping。
  • 当前未提供 Windows Authenticode 发布签名,首次运行时 Windows 可能显示安全提示。

许可证

iPhoneMirror 原创代码使用 GNU GPL-3.0-only。Apple 组件及第三方库遵循各自许可,详情见发布包中的 THIRD_PARTY_NOTICES.md 与 licenses 目录。

iPhoneMirror v1.1.0-preview.1

Pre-release

Choose a tag to compare

@RayrenSX RayrenSX released this 17 Jul 10:58

iPhoneMirror v1.1.0-preview.1

预览版,面向 Windows 10/11 x64。发布日期:2026-07-17。

这是 1.1 系列的第一个测试版,重点加入视频应用投屏,并整理了无线接收、设备会话、
原生预览和发布打包的生命周期边界。

视频应用投屏

  • 新增“视频应用投屏”接收模式,可接收视频 App 通过 HTTP(S) 或 HLS 地址发送的影片。
  • 屏幕镜像与视频投放向用户显示同一个 AirPlay 接收端名称;程序按请求类型分流,避免用户
    在手机端面对两个难以区分的目标。
  • 视频播放请求进入主窗口内的专用播放界面,不会被注册成屏幕镜像设备,也不会覆盖已有的
    USB 或 AirPlay 镜像会话。
  • 播放时长、当前位置和播放状态会通过双向命名管道反馈给无线宿主,再返回发送设备。
  • 新增轻量 DLNA/UPnP MediaRenderer,提供 SSDP 发现、设备描述、AVTransport、
    ConnectionManager 和 RenderingControl 基础动作,兼容使用投屏按钮而非控制中心镜像的 App。

会话、窗口与无线接收重构

  • 将设备会话、屏幕镜像接收器和视频投放接收器的启动、停止与销毁职责拆分为独立服务,
    减少主 ViewModel 中重复的生命周期分支。
  • 删除旧的 XAML 独立预览实现,统一使用原生预览窗口;多设备、旋转、圆角、比例锁定和
    全屏继续通过 SessionHandle 与 HWND 绑定。
  • 屏幕镜像和视频投放共用一个 combined-mode 无线宿主和接收端身份,通过有界 IPC
    消息类型分流;镜像设备会话与视频播放界面仍保持独立状态。
  • 强化命名管道客户端进程验证、IPC 长度限制、父进程退出检测与宿主清理。
  • 修复 DLNA HTTP/SOAP 请求被拆分到多个 TCP 数据包时接收端提前断开连接的问题。
  • 新增有界 UTF-8 原生日志增量读取,避免实时日志面板重复扫描完整日志文件。

构建、打包与依赖

  • 主程序和驱动管理器改为压缩的自包含单文件 .NET 发布,目标仍为 win-x64
  • C++ Core、WirelessHost、DNS-SD shim、AirPlayServer 和 FFmpeg 继续作为外部运行时文件
    随包分发,便于确定性加载并保留完整许可证材料。
  • 更新固定版本 AirPlayServer 的屏幕镜像补丁、构建校验、来源说明和 SHA-256 清单。
  • 发布包继续排除日志、转储、抓包和 PDB,并提供 SPDX SBOM 与 SHA-256 校验文件。

构建与验证

  • Native Core protocol tests:passed
  • WirelessHost IPC and lifecycle smoke test:passed
  • App logic tests:passed
  • Driver installer tests:passed
  • Localization resource verification:passed
  • Integrated media-cast UI smoke test:passed
  • Fragmented DLNA HTTP/SOAP request regression:passed
  • Release build, self-contained publish, SPDX SBOM and SHA-256 packaging:passed
  • Release target: win-x64

已知限制

  • 这是预览版;视频应用投屏的 App 兼容范围仍需扩大真机测试。
  • DRM、登录态、Cookie 或私有播放协议保护的内容可能不会向第三方接收端提供可播放 URL。
  • 当前跨进程播放控制以 Play、Stop、Seek 和状态查询为主;部分发送端的 Pause 行为可能
    只更新接收端状态,尚未完整映射到 WPF 播放器。
  • 实际容器、编码和 HLS 播放能力取决于 Windows MediaElement 与系统媒体组件。
  • Apple USB、QuickTime 与兼容 AirPlay 均不是 Apple 的稳定第三方 API,未来 iOS 更新可能
    需要继续适配。
  • 程序尚未进行商业 Authenticode 签名,干净系统和更广泛网络环境仍需继续验证。

下载文件

  • iPhoneMirror-v1.1.0-preview.1-win-x64.zip:完整自包含程序包。
  • iPhoneMirror-v1.1.0-preview.1-win-x64-sbom.spdx.json:SPDX SBOM。
  • SHA256SUMS.txt:发布资产 SHA-256 校验值。

许可证

iPhoneMirror 原创代码使用 GNU GPL-3.0-only。Apple 组件和第三方库继续遵循各自许可,
详细信息见 THIRD_PARTY_NOTICES.md 与发布包内 Wireless/licenses

iPhoneMirror v1.0.3

Choose a tag to compare

@RayrenSX RayrenSX released this 14 Jul 10:18

iPhoneMirror v1.0.3

正式版,面向 Windows 10/11 x64。

本版重点

  • USB 有线投屏与局域网 AirPlay 无线投屏继续共用多设备会话、预览、音频、截图、独立窗口和 OBS 工作流。
  • 无线 AirPlay 接收端默认启动,并支持连接前选择最大质量、1080p、720p 或 540p 广播规格。
  • 有线投屏保留 A 演示模式、B AirPlay 实验模式和 C 爱思兼容模式;高级 USB 尺寸设置仍只对 B 模式开放。
  • 驱动管理器独立运行,支持 Apple USB 环境检测、libusb 过滤驱动安装、修复、卸载、日志和设备状态诊断。
  • 多设备列表支持长按排序、独立预览、单窗口静音及静音其他窗口。
  • 无线设备握手元数据会尽量解析为可读的 iPhone/iPad 型号,而不是直接显示 ProductType 编号。
  • 应用提示窗口、驱动管理器和中英文资源保持统一 UI 与语言切换行为。
  • 预览切换使用原生窗口同步和过渡遮罩,减少设备切换时白闪、边框闪动和旧画面残留。
  • 教程图片暂不随本版本发布,文字教程保留完整功能说明,后续可独立补充截图。

构建与验证

  • Native Core protocol tests: passed
  • WirelessHost smoke test: passed
  • App logic tests: passed
  • Driver installer tests: passed
  • Release target: win-x64

已知限制

  • Apple USB 与 AirPlay 使用私有协议,未来 iOS 版本可能改变行为。
  • OBS 当前推荐使用独立预览窗口进行 Window Capture,虚拟摄像头仍未内置。
  • Windows Authenticode 签名和干净系统矩阵验证仍是后续工作。

许可证

iPhoneMirror 原创代码使用 GNU GPL-3.0-only。Apple 组件和第三方库继续遵循各自许可,详细信息见 THIRD_PARTY_NOTICES.md

iPhoneMirror v1.0.1-preview.1

Pre-release

Choose a tag to compare

@RayrenSX RayrenSX released this 13 Jul 18:13

iPhoneMirror v1.0.1-preview.1

这是 1.0.1 的第一个测试版,重点更新了独立驱动管理器、AirPlay 设备识别,以及无线投屏分辨率和帧率协商。

无线 AirPlay

  • 修复 AirPlay 接收端重编后能力配置回退的问题。
  • 接收端显示能力恢复为 5120x2880 @ 60 FPS,避免 iPhone 被协商到 3440x1440 @ 30 FPS
  • 新增幂等的显示能力补丁和编译后 DLL 二进制校验,后续重编不会静默回退到低分辨率配置。
  • 扩展 AirPlay SETUP 握手解析,读取并显示 iPhone 的设备型号、ProductType 和系统版本。
  • 保留设备原始标识,同时对已知 Apple ProductType 显示可读型号。
  • 支持多个 iPhone 同时无线连接,并保持每个设备的分辨率、帧率、音量和窗口状态独立。
  • AirPlay 服务默认启动;设备未连接时不显示无意义的设备项。

有线连接和驱动管理

  • 提供独立的 iPhoneMirror Driver Manager。
  • 支持一键检测并安装缺失的 Apple USB 驱动组件。
  • 支持驱动安装、卸载、设备选择和高级诊断。
  • 驱动异常时可卸载不正确的父驱动后重新安装。
  • Apple Devices / iTunes 驱动处理增加防御性检查、日志和分阶段用户提示。
  • 驱动管理器语言与主程序设置同步,支持简体中文和 English。
  • 统一驱动管理器的提示窗口、错误提示和日志入口。

界面和设备信息

  • 无线设备列表显示设备名称、型号和序列标识,减少普通用户无法区分设备的问题。
  • 优化 AirPlay 接收端名称输入框、设备选择框和提示窗口的一致性。
  • 有线投屏模式选择和当前设备会话状态保持关联。
  • 改进多设备窗口操作和独立窗口静音逻辑。

验证结果

  • CoreProtocolTests: passed
  • WirelessHostSmoke: passed
  • App logic tests: passed
  • Driver installer tests: passed
  • AirPlay receiver display capability verification: 5120x2880 @ 60 FPS
  • Release package 已排除日志、转储、PDB 等调试文件。

下载说明

  • iPhoneMirror-v1.0.1-preview.1-win-x64.zip: 完整 Windows x64 程序包。
  • iPhoneMirror.Driver-1.0.1-preview.1-win-x64.exe: 独立驱动管理器。
  • SHA256SUMS.txt: Release 压缩包校验值。

这是测试版。首次使用无线投屏时,建议先停止旧 AirPlay 连接,再重新连接,以便 iPhone 重新协商新的分辨率和帧率能力。