iPhone应用程序可以以root身份运行吗?
我正在考虑我想创建的iPhone应用程序的设计。一个可能的问题是,这个应用程序必须以root身份运行(以访问某些网络端口)。在典型的UNIX应用程序中,我只想让应用程序使用setuid运行,但我想知道如果iPhone应用程序可以这样做。iPhone应用程序可以以root身份运行吗?
我读过在苹果的论坛,这是令人沮丧的这个问题:
http://discussions.apple.com/thread.jspa?threadID=1664575
据我了解,苹果公司希望限制什么程序可以做的,但也有很多的好的,正当的理由用户使用提升的权限运行程序。我不想在这里创建一个黑客工具。
我敢肯定,我可以绕过这个*破碎的iPhone,但这不是我所追求的。有没有什么办法可以在不间断的iPhone上使用提升的权限运行应用程序?
(顺便说一句,有没有必要提醒我关于NDA)。
的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;你甚至不能再从另一个应用程序的沙箱中读取数据。因此,即使目前是可能会提升您应用的权限,但很可能不会在将来发布。
你唯一的选择是
运行在iPhone上
的应用程序根目录设置应用程序setuid位和业主根。
我看不到他们中的任何一个都被Apple祝福。
我想这取决于你想要做的特权,如果你幸运的话可能有更细粒度的权限提供什么,但据我所知,你必须选择1024以上
端口不如果你可以在普通的台式电脑上做到这一点,那就重要一点。 iPhone不是普通的台式电脑。
与桌面电脑不同,只有获得iPhone上的应用程序没有越狱的方式是从App Store中获取它。 只有上AppStore的方式是遵循Apple规则,并且Apple的规则明确包括“没有特权升级”,“不转义沙箱”和“不访问现有的提供的API之外的网络端口” 。
你想要做的是不可能。
我不认为NDA是你的问题,也许是iPhone的许可和使用条款;)。 – kokos 2008-09-14 14:07:09