解决方法
让我们来看看,这个方法使用[UIApplication launchApplicationWithIdentifier:suspended:] private方法:
[[UIApplication sharedApplication] launchApplicationWithIdentifier:@"com.apple.Preferences" suspended:NO];
从我所测试的调用此方法的方法不是以root身份运行的应用程序是无用的,显然SpringBoard(或LaunchServices)只允许root应用程序使用此方法启动其他应用程序.
所以,首先你需要越狱你的iPhone,然后你需要让你的应用程序以root身份运行.
要使您的应用程序以root身份运行,您需要将其放在/Applications/YourApp.app中,而不是通常的/User/Applications/UUID/YourApp.app.
您可以使用Cydia安装OpenSSH,并使用SSH访问手机的shell.
然后,在您的应用程序在正确的位置后,您需要设置权限,例如:
我会使用与Cydia相同的:
chown -R root:wheel /Applications/YourApp.app
接下来,一个小技巧.二进制将需要setuid bit:
chmod 4755 /Applications/YourApp.app/YourApp
而对于最后一步,SpringBoard不会使用setuid打开应用程序,但它会打开一个脚本(可以打开另一个应用程序)!只需将二进制文件的名称更改为像YourApp_:
mv /Applications/YourApp.app/YourApp /Applications/YourApp.app/YourApp_
并使用以下脚本在您的应用程序文件夹中创建一个名为YourApp的新文件:
#!/bin/bash CrrDir=$(dirname "$0") exec "${CrrDir}"/YourApp_
对不起,如果这似乎很难,不是,我不记得我在哪里学到了,但是很久以前.这种方法在所有iOS版本中都可以正常工作,而且我已经使用iOS 5.1进行了测试.
再次,如果您这样做,您的APP不会被苹果公司批准.
原文地址:https://www.jb51.cc/c/113115.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。