在iOS中获取root访问权限并启动守护程序

时间:2011-05-09 20:55:40

标签: objective-c ios jailbreak

我是iPhone开发人员,现在我正在制作需要运行命令的应用程序(例如“launchctl”) 我可以启动的唯一方法是使用root权限,但我不知道如何获得root权限。

我想用System(“launchctl ....”)或其他方式调用它?

提前致谢;)

4 个答案:

答案 0 :(得分:1)

如果您要在App Store中分发此权限,则无法获得root权限。但是,如果您正在为越狱设备开发此选项,则可以获得root访问权限。

答案 1 :(得分:1)

我试图做类似的事情后,我建立了一个越狱应用程序。我没有使用launchctl,但我正在使用system()发出呼叫。

我发现即使我让我的应用以 root which requires more than what edc1591 outlined in his comment above用户运行,系统调用仍会运行您传递的任何命令(例如launchctl)具有用户移动权限。 (旁白:我认为原因可能与to this issue)有关。

如果你想这样做,我发现了一种相当复杂的方式。 See that answer here.

答案 2 :(得分:1)

首先,使用system();是一个C方法,并且执行这样的命令根本不可靠(我从经验中知道)。 您想要做的是将NSTask.h文件从foundation.framework复制到项目窗口并使用它。找到它的方法是为mac打开一个新项目,然后在foundation.framework上单击show in finder,然后复制它。 (确保删除顶部附近的行,检查您是否具有Mac OS 10.6或更高版本)

然后尝试运行它。如果它仍然没有正确的权限,请尝试查看setuid();但除此之外,我不知道它是如何完成的。 也许你可以联系iFile的开发者,他会知道如何......

答案 3 :(得分:0)

不幸的是,没有Apple认可的方法来做到这一点。换句话说,需要root访问权限的应用程序不会被批准在App Store中使用。 Apple可能会授予例外,但严重,非常, 不太可能