绕过Mac App Store对特权升级的限制

时间:2019-01-25 02:00:17

标签: macos mac-app-store

根据Mac App Store Review Guidelines

  

2.4.5通过Mac App Store分发的应用还需要记住一些其他要求:

     

(i)必须将它们适当地沙箱化,并遵循macOS文件系统文档。他们还应该仅使用适当的macOS API来修改其他应用存储的用户数据(例如书签,地址簿或日历条目)。

     

...

     

(iv)他们可能不会下载或安装独立的应用程序,kexts,其他代码或资源,以添加功能或与我们在审阅过程中看到的内容大为不同。

     

(v)他们可能不请求升级为root特权或使用setuid属性。

沙箱操作已经无法使用诸如AuthorizationCreate()之类的API,无论如何,第(v)项非常清楚。

在某些情况下,例如Parallels(MAS link)之类的应用程序一定无法在不诉诸特权提升的情况下进行编码。确实,常规(非MAS)Parallels应用程序会安装至少3个kext,其中之一是虚拟机管理程序,否则我相信Parallels绝对没有用。因此,他们显然违反了这些规则。

如果开发人员希望编写一个像Parallels这样的应用程序,该应用程序需要特权升级并且没有特权就完全没有用,那么开发者将如何绕过这些限制?还是仅仅是足够大的问题而使苹果公司在审查过程中对此视而不见?您可以要求苹果公司例外吗?

1 个答案:

答案 0 :(得分:0)

(不幸的是)对App Store政策问题没有评论,但我可以回答您有关Parallels的问题。 Mac App Store上的Parallels版本不使用kext,也不需要使用kext。 Hypervisor framework使得可以编写类似Parallels的应用程序而无需root特权,也无需编写和分发自定义的kext(需要Apple的单独批准)。 Hypervisor框架也可以从沙盒应用程序中使用。我相信此框架是专门为解决此问题而创建的。希望这会有所帮助!