我已经在ios 7.1.2上对iPhone 5s进行了越狱,我想做一个调整,通过按下按钮动作启动一些命令行。因此,我提出了几个问题:
我已经读到可以在mac os x应用程序中通过NSTask启动命令行,但我也读过NOSask在ios中不可用。那么如何才能在用户操作上启动多个命令行呢?
我需要某些命令的管理员权限,如果我将我的应用程序放在/ Applications /中,我将自动拥有管理员权限,这是真的吗?所以不需要调用su二进制等...?
我是ios和越狱开发的新手,所以如果我告诉愚蠢的事情纠正我!提前致谢
答案 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在设备上。