Mac App Store 沙盒化:画地为牢与矫枉过正

Mac App Store 沙盒化:画地为牢与矫枉过正

根本无需你的参与,Mac OS X 即可防御各种病毒和其他恶意程序或软件的侵扰。

过去很多年,苹果公司都将这句话骄傲地挂在官网“你会爱上 Mac 的理由”页面上。然而这几天,苹果悄悄地撤下了这句话,改为相对比较保守的说法:

OS X 采用强大、先进的技术设计,力求让你的 Mac 安全无忧。

近来 Mac OS X 一贯引以为豪的绝佳安全性受到了各种质疑,也出现了破坏性极大的 FlashBack 病毒和其它各种明显的安全威胁。而苹果方面也一直在着力提高 Mac OS X 系统的安全性,在下一代 OS X 操作系统 Mountain Lion 中引入 GateKeeper 新特性默认阻止用户安装未经官方认证的应用,而 Mac App Store 的沙盒化(Sandboxing)特性也在多次推迟之后最终于 6 月 1 日上线执行了。

按照苹果官方的说法,沙盒化会限制应用程序可以访问的系统资源,将应用程序的活动范围限定在一个安全的“沙盒”中。这将显著加大恶意程序入侵系统的难度,保护系统和用户的安全。然而在将近一个月的时间中,强制要求 Mac App Store 程序接受沙盒化的做法造成了很多不满与不便。

iOS 的前车之鉴

Mac App Store 沙盒化的概念和实际做法与 iOS 上的情况一脉相承。iOS 是一个从一开始就彻底应用沙盒机制的系统,正常情况下,所有 iOS 设备都只能安装 App Store 中的应用程序,而所有这些应用程序都彻底采用了沙盒机制,不能访问除自己目录之外的资源。

iOS 的这种做法固然为 iOS 带来了一定的安全性,然而这种割裂应用程序间相互联系,将各个程序分裂为一个个孤岛的极端保守做法,也为用户和开发者带来了种种不便。

对于开发者来说,由于沙盒机制的限制,他们的应用程序无法调用其它程序配合完成任务,导致必须重复实现各种已有的功能。像 Twitter 和微博客户端在应用内自行实现浏览器,新闻阅读客户端自行实现分享选项和邮件界面(如下图的网易新闻客户端 iOS 版与 Android 版对比),甚至文件阅读器自行实现 HTTP 服务器这样冗余低效的现象屡见不鲜。

对于用户来说,应用程序被沙盒机制限制之后无法完全满足用户的常见需求,导致他们无法在 iOS 上进行一些非常基本的操作。例如把 RSS 阅读器中的条目分享到饭否、或者给一封邮件添加两个附件。这样的情况也是 iPad 无法成为高效办公工具的重要原因。

一刀切的沙盒机制是 iOS 系统中很多长期不能解决的重大缺陷的诱因,也是很多人给 iOS 设备进行越狱的动机所在。

Mac App Store 沙盒化的后果

从 6 月 1 日开始执行沙盒化至今,已经有多个程序的新版本被迫退出了 Mac App Store,另外一些程序则不得不采取其它更为复杂和繁琐的方法来应对沙盒化机制:

优秀程序挥别 Mac App Store

TextExpander 是 Mac OS X 平台上最著名的自动替换式输入增强工具,在 OS X 平台上享有极高的声誉和广泛的用户群体。然而,它也不幸是 Mac App Store 沙盒机制上线后首当其冲的受害者,被不少国外科技博客称为“沙盒机制的第一个牺牲品”。现在在 Mac App Store 中只能找到沙盒机制强制执行前的旧版本,最新的 TextExpander 4 无法登陆 Mac App Store。

作为一个采用自动替换机制的输入增强工具(例如当输入“jkgy”时自动替换为“极客公园”),TextExpander 需要监听系统中的所有输入内容才能正常高效地工作。然而在沙盒机制下,这样的监听行为根本不可能进行。在这样的情况下,新版本退出 Mac App Store 重新开始走传统的销售渠道成为了唯一的选择。

与 TextExpander 命运相仿的程序还有不少,并且随着时间的推移还会越来越多。离开 Mac App Store 意味着失去便捷的分发与支付渠道,还要重新引入旧式的正版验证机制,再次面对各种破解和盗版的威胁。这对开发者来说是明显的损失。此外,之前在 Mac App Store 购买应用的用户的升级问题也给开发者带来了不小的麻烦。

“两条腿走路,其中一条是瘸腿”

今年四月刚刚过完 20 岁生日的 BBEdit 是 Mac OS 上历史最悠久的代码编辑器。这个从 Mac OS 6 开始一路走来,见证了苹果起死回生全过程的经典软件如今也受到了沙盒机制的影响。在 BBEdit 的 App Store 页面上有这样一段话:

请注意,从 Mac App Store 付费安装的 BBEdit 将不支持命令行工具、也无法直接修改和保存需要管理员权限的文件……

由于沙盒机制的影响,从 Mac App Store 付费购买 BBEdit 的用户将无法安装和使用命令行工具,也无法修改和保存非用户目录下的文件。像笔者一样习惯用 BBEdit 来修改 Hosts 文件以便“科学上网”的用户必须另寻其它工具了。

现在,BBEdit 的做法是在 Mac App Store 提供一个阉割部分功能的版本,同时在官网提供一个功能完整的非沙盒版本。同时维护两种版本给开发者带来了额外的负担,两种版本用户之间地升级和互相转换也带来了一定程度的混乱。

很多软件面临 BBEdit 这样的问题,大多也采取了类似的解决方法,即提供一个 Mac App Store 版本,但是阉割掉违反沙盒机制的非核心功能,再提供一个传统销售渠道版本,功能完整不加阉割。

盗版软件的死灰复燃

Mac App Store 的一大特色是便捷的支付渠道,这一特点不仅为开发者和苹果公司带来了巨大的利益,也为用户提供了很大方便。中国用户就是一个典型的例子,传统的软件出售渠道很少有提供支付宝和人民币支付的渠道,而 Mac App Store 则可以方便地用人民币来充值和一键购买应用。

应用程序撤出 Mac App Store 或仅在 Store 中提供阉割版本之后,很多支付不便的用户将不得不再次面临购买正版有心无力的情况。也不得不再次选择使用盗版应用程序。这对用户、对开发者、对苹果的整个 Mac 生态圈都是一种损失。

结语:过火的 Back to the Mac

2010 年 10 月苹果举行 Back to the Mac 发布会,开始慢慢地将 iOS 的各种成功特性反馈给 Mac,接下来各种 iOS 风格的软件应用、硬件特性和界面风格都被陆续移植回 Mac 产品线。这样的做法比微软强行嫁接 Metro 化界面的思路要更为优越,然而也有很多这样的移植有矫枉过正之嫌,比如拟物化的设计思想,和本文所讨论的沙盒机制。

2005 年 Intel 版本 Mac OS X 的出现,使用户可以在 Mac 上安装 Windows,于是我们这样吐槽某些买椟还珠的 Mac 用户:

于是那家伙买了台 Mac 电脑,格盘装上 Windows XP,然后又套了一个 OS X 的皮肤。

也许再过几个版本,苹果会进一步收紧应用的安装与管理机制,到时候我们可能会这样进行吐槽:

于是那家伙买了台 Mac 电脑,跑到中关村花 200 块给它越了狱,又花 200 块装了一堆盗版游戏。

苹果MAS沙盒机制行业趋势
关注极客公园公众号
反馈