从越狱应用程序ios 7启动命令行

时间:2014-09-30 12:49:26

标签: ios iphone command-line admin jailbreak

我已经在ios 7.1.2上对iPhone 5s进行了越狱,我想做一个调整,通过按下按钮动作启动一些命令行。因此,我提出了几个问题:

  • 我已经读到可以在mac os x应用程序中通过NSTask启动命令行,但我也读过NOSask在ios中不可用。那么如何才能在用户操作上启动多个命令行呢?

  • 我需要某些命令的管理员权限,如果我将我的应用程序放在/ Applications /中,我将自动拥有管理员权限,这是真的吗?所以不需要调用su二进制等...?

我是ios和越狱开发的新手,所以如果我告诉愚蠢的事情纠正我!提前致谢

1 个答案:

答案 0 :(得分:1)

感谢其他成员和一些搜索,我找到了2个问题的答案:

  • (非常感谢@Nate提供此版本),可以通过将头文件导入应用程序项目来在ios中使用NSTask。语法与在mac os x应用程序中的使用相同,但您可以找到一些帮助here

  • 放入/ Applications /的应用程序没有管理员权限。为此,您必须:

1)在main()函数中添加setuid(0);setgid(0);

2)正常构建应用程序。

3)如果你构建一个名为HelloWorld的应用程序,Xcode将创建一个
    HelloWorld.app目录,里面有一个名为HelloWorld的文件,其中     是可执行的。将此可执行文件重命名为,例如,MobileHelloWorld

4)完成后,在HelloWorld.app中创建一个新文件     名为HelloWorld的目录,并使用文本编辑器对其进行编辑     这个内容:

#!/bin/bash
dir=$(dirname "$0")
exec "${dir}"/MobileHelloWorld "$@"

当您点击应用程序的图标时,该脚本将会运行,因为在 app的Info.plist文件,可执行文件的名称是

<key>CFBundleExecutable</key>
<string>HelloWorld</string>

HelloWorld现在是一个shell脚本,它调用MobileHelloWorld 重命名二进制可执行文件。

5)在终端中,导航到应用包。

6)chmod 0775原始可执行文件和chmod 6775复制 可执行文件。

7)将应用包复制到/Applications到设备。重启SpringBoard 你应该好好去。如果应用程序未启动,请重复步骤5 &安培; 6在设备上。

对于这个问题,所有学分都归入(再次:P)@Nate(here)和@JonasG(here