直接研究未公开的行为
Parall 的兼容性配置来自对每个目标应用的直接观察,包括它如何启动、存储数据、处理独立进程以及与 Dock 交互。快捷方式从 Spotlight、Raycast 和 Alfred 打开时仍能正确工作,也是这项逆向工程的成果。随着 macOS 和应用变化,这项工作也会持续进行。
Parall 为何存在、快捷方式包如何工作,以及其本地隐私优先设计背后的技术选择。
原创 macOS 工程
Parall 的核心无法根据公开文档拼装出来,因为它所依赖的应用行为并没有文档说明。它来自多年对 macOS 应用架构的逆向工程、对各个应用的实际测试,以及围绕真正有效的方法持续改进引擎。
Parall 的兼容性配置来自对每个目标应用的直接观察,包括它如何启动、存储数据、处理独立进程以及与 Dock 交互。快捷方式从 Spotlight、Raycast 和 Alfred 打开时仍能正确工作,也是这项逆向工程的成果。随着 macOS 和应用变化,这项工作也会持续进行。
脚本有时也能启动另一个进程。Parall 解决的是更难的问题,让受支持的实例拥有真正可用的独立身份和 Dock 行为,并在目标应用允许时分离数据、账号、配置文件和设置,同时继续连接原始应用。
Parall 不会修改目标应用,也不会把它固定在某个版本。每个快捷方式始终启动已安装的原始应用,因此能保留其代码签名,并让内置更新功能继续工作。应用更新后,所有快捷方式都会在重新启动时使用新版本。这一点很重要,因为应用更新经常修复安全漏洞。
研究结果只用于决定 Parall 如何配置标准 macOS 启动机制。Parall 不使用私有 API,不注入或修补代码,也不修改 macOS 或原始应用。
最终成果是由人主导的原创工程。Parall 引擎由 Ihor July 亲自设计、编写、测试和维护,而不是通过人工智能提示词生成,也不是照搬公开方案。
不同的架构
许多多实例解决方案会复制目标 App 包,修改其身份标识,然后重新签名。Parall 则通过单独的快捷方式启动已安装的原始 App。它从不修改、重新打包或重新签名目标 App 包。
| 对比项目 | 常见的复制和重新打包方式 | Parall |
|---|---|---|
| 目标 App 包 | 创建第二份副本,修改其内容或包身份标识,并且可能再次打包。 | 保持已安装的目标 App 完全不变,通过单独的快捷方式启动其原始可执行文件。 |
| 签名与安全 | 修改已签名的 App 包会使开发者的原始签名失效。重新签名会产生签名不同的副本,并且可能改变或移除权限、沙盒行为和其他保护措施。 | 目标 App 包从不被修改,因此会保留其开发者签名、沙盒、权限和安全措施。 |
| 原生 App 服务 | 身份标识、签名或权限发生变化,可能会干扰与其关联的服务,包括钥匙串群组、通行密钥、推送通知身份、授权回调以及更新程序所依赖的信息。 | 继续启动目标 App 的已签名包,因此不会移除它原有的能力。各项服务仍取决于目标 App 和 macOS,FAQ 中也记录了已知的多实例限制。 |
| 更新 | 复制或重新打包的版本可能脱离原始更新路径,并在重新构建或替换之前一直停留在旧版本。 | 保留原始更新路径。目标 App 更新后,每个 Parall 快捷方式都会在下次启动时使用更新后的 App。 |
| 外部依赖 | 可能依赖脚本、手动签名步骤或从 App 之外获取的辅助工具。 | Parall 主 App 是独立的沙盒 App,并通过 Mac App Store 分发。无需下载辅助工具,也无需后台守护进程。 |
更新经常修补安全漏洞。Codex 和 Claude 等快速发展的 AI 与开发工具可能会频繁获得重要修复,同时 AI 辅助安全研究也在加快漏洞发现速度。保持软件最新是重要的防御层,并应与恶意软件防护和其他安全控制措施配合使用。
Parall 的快捷方式生成流程经过专门设计,使主 App 能够保留沙盒并通过 Mac App Store 分发,而无需外部辅助工具。创建和启动快捷方式均可在本地离线完成。可选的下载兼容性设置操作是隐私政策中明确说明的网络例外。
Parall 所采用的快捷方式架构没有公开 API、完整文档或已发布的实现方案。我通过个人逆向工程和直接测试 macOS 原生行为开发了这个引擎。公开示例和通用 AI 生成实现通常会退回到脚本、复制 App 包或重新打包的方式。据我所知,Parall 是首个在不改动目标 App 的情况下解决这一问题的消费级工具。随着我继续研究更多 macOS 行为,这个引擎也将持续发展。
十多年来,我一直在处理 macOS 运行同一应用多个实例时的限制。我曾为自己构建脚本化应用包来绕过这些限制,后来意识到普通用户没有一种简单且完善的方式来创建这种像应用一样工作的快捷方式。Parall 把这个流程变成同类中的第一款工具,专门用于创建支持多实例的应用快捷方式。
Parall 支持对基于 Chrome、Firefox、Electron、Eclipse 和 ToDesktop 的兼容应用自动分离数据,即使目标应用在沙盒中运行也可以。高级 HOME 重定向模式还支持许多其他兼容应用。有关详细的最新列表,请访问兼容性页面。
即使不需要多实例模式,你仍然可以用 Parall 创建带有独立身份和启动配置的网站、应用、文件、文件夹或命令快捷方式。应用快捷方式可以添加自定义命令行参数,或覆盖包括 HOME 在内的环境变量,以控制行为、选择配置文件或重定向数据路径。HOME 覆盖会构建类似容器的结构,同时保留关键 macOS 链接以确保兼容性。
你可以定义只应用于该快捷方式的自定义环境变量,非常适合精细配置、调试或按项目设置环境。Parall 还支持 Arduino IDE,让你可以并排运行带有不同 toolchain、开发板和库的独立开发环境。
对于教学实验室和课堂,Parall 可以在快捷方式退出时自动清除其重定向的数据存储。这样学生实验的每次会话都能从干净状态开始,无需手动清理。
Parall 让启动同一个 macOS 应用的多个实例比以往更简单。每个实例都有自己的 Dock 图标和配置,就像独立应用一样。你不必依赖临时方案或复杂脚本,Parall 会创建独立快捷方式来启动多个应用实例,让你可以同时使用多个配置文件或会话。
每个快捷方式都会直接连接到原始应用包。这意味着只要原始应用更新,所有用 Parall 创建的快捷方式也会自动使用更新后的版本。你无需重新创建或手动维护它们。
Parall 包含高级环境管理,让你精确控制每个应用实例如何存储和分离数据。这也支持高级流程,例如在 macOS 上运行多个分离的 Philips Hue Sync 实例,让不同显示器使用各自专用的 LED 设置,而不会发生实例重叠。
我是 Ihor July,以网络安全专家和逆向工程师的身份开发 Parall,专注于安全且尊重隐私的 macOS 工具。我也是 DockLock Pro 的开发者,它是用于控制多个显示器上 Dock 行为的 Mac Dock 工具;也是 App Trust Preview 的开发者,这是一款本地优先的 Mac 应用检查工具,可在打开应用前把签名、沙盒、权限和内部组件转换成易读报告;也是 LockLines 的开发者,这是一款用于设计、预览和复制适合 macOS 的纯文本锁定屏幕消息的 Mac 工具。
Parall 由我亲自设计、编写和测试。我负责应用代码,验证每一处改动,并维护供多个应用使用的 Objective-C 框架。人工智能和在线搜索可以协助研究错误、边缘情况、文字和翻译,但核心引擎、每个应用的兼容性研究、具体实现和测试都来自我自己的逆向工程和代码。
这款应用使用 C++ 原生构建以保证性能,并在沙盒中运行以最大化安全性。Parall 体现了多年研究和开发,目标是为 macOS 用户提供实用且隐私优先的解决方案。
Parall 创建的快捷方式是独立的 macOS 应用包,会直接执行目标应用的二进制文件。这些快捷方式包按设计不使用沙盒,因为它们必须在没有额外层的情况下直接启动原始应用。
每个快捷方式都未签名,因为任何对应用包的修改都会移除其原始签名。macOS 可能会显示一条消息,提示快捷方式“正在尝试修改另一个应用”,但这只是由访问触发的通用系统通知,并不是由修改触发。Parall 不会修改任何系统文件或应用。
按照设计,Parall 只创建镜像原始应用结构和配置的快捷方式包。它从不更改、注入或写入现有应用或操作系统,确保你的 Mac 保持安全且不被改变。