iPhone应用程序可以以root身份运行吗?

问题描述:

我正在考虑我想创建的iPhone应用程序的设计。一个可能的问题是,这个应用程序必须以root身份运行(以访问某些网络端口)。在典型的UNIX应用程序中,我只想让应用程序使用setuid运行,但我想知道如果iPhone应用程序可以这样做。iPhone应用程序可以以root身份运行吗?

我读过在苹果的论坛,这是令人沮丧的这个问题:

http://discussions.apple.com/thread.jspa?threadID=1664575

据我了解,苹果公司希望限制什么程序可以做的,但也有很多的好的,正当的理由用户使用提升的权限运行程序。我不想在这里创建一个黑客工具。

我敢肯定,我可以绕过这个*破碎的iP​​hone,但这不是我所追求的。有没有什么办法可以在不间断的iPhone上使用提升的权限运行应用程序?

(顺便说一句,有没有必要提醒我关于NDA)。

+0

我不认为NDA是你的问题,也许是iPhone的许可和使用条款;)。 – kokos 2008-09-14 14:07:09

的iPhone SDK协议第3.3.4建议您一定不要在沙箱之外运行。

鉴于Apple has been somewhat arbitrary on which applications they permit,你应该仔细检查他们之前你开始开发。

与2.0.x相比,the sandbox restrictions have actually increased in 2.1;你甚至不能再从另一个应用程序的沙箱中读取数据。因此,即使目前可能会提升您应用的权限,但很可能不会在将来发布。

你唯一的选择是

  1. 运行在iPhone上

  2. 的应用程序根目录设置应用程序setuid位和业主根。

我看不到他们中的任何一个都被Apple祝福。

我想这取决于你想要做的特权,如果你幸运的话可能有更细粒度的权限提供什么,但据我所知,你必须选择1024以上

端口不如果你可以在普通的台式电脑上做到这一点,那就重要一点。 iPhone不是普通的台式电脑。

与桌面电脑不同,只有获得iPhone上的应用程序没有越狱的方式是从App Store中获取它。 只有上AppStore的方式是遵循Apple规则,并且Apple的规则明确包括“没有特权升级”,“不转义沙箱”和“不访问现有的提供的API之外的网络端口” 。

你想要做的是不可能