从PreferenceLoader中退出

时间:2013-09-10 17:35:16

标签: iphone objective-c jailbreak cydia

我正在使用Preference Loader将自定义设置加载到设置应用中。我想知道如何从我的Preference Loader设置面板中重新启动设备。请帮我。 提前谢谢。

我试过system("killall SpringBoard");但没有任何反应。

1 个答案:

答案 0 :(得分:1)

可能有很多方法可以做到这一点,但一种方法是利用same technique I used in this answer。从本质上讲,问题在于您没有以足够的权限发出命令。

您可以将killall SpringBoard命令移动到由SBSettings的特权守护程序运行的命令脚本中,从而获得所需的权限。

See reference document here,在调用外部函数和脚本... 下。

您可以创建名为(例如)com.mycompany.respring可执行脚本。在该脚本中,添加

#!/bin/sh
killall SpringBoard

并将其保存在/var/mobile/Library/SBSettings/Commands下。然后,在preference bundle's PSListController内,您可以添加以下代码:

#import <notify.h>

notify_post("com.mycompany.respring");

发布该自定义通知将导致SBSettings的守护程序运行同名的脚本文件。当然,这会强制您的包依赖于SBSettings(您可以将其放在包的DEBIAN/control文件中):

Depends: preferenceloader, sbsettings

...但由于它是免费的,稳定的,广泛使用和喜爱的,这似乎不是一个很大的限制。