rebootアプリの作成方法
Respringアプリに引き続き
起動するとreboot
するアプリを作っていきましょう。
コードは
#import "XXRootViewController.h" #include <sys/sysctl.h> //systemf int systemf(const char *cmd, ...) { va_list ap; va_start(ap, cmd); NSString *cmdstr = [[NSString alloc] initWithFormat:@(cmd) arguments:ap]; va_end(ap); return system([cmdstr UTF8String]); } @implementation XXRootViewController { } - (void)loadView { systemf("reboot"); } @end
ほぼ同じですね。しかしここまではrebootしてくれません。
そこでこのアプリ自体に権限を与えてあげます。
Makefileの最後に
after-stage:: $(ECHO_NOTHING)chmod 06755 $(THEOS_STAGING_DIR)/Applications/rebootapp.app/rebootapp $(ECHO_END)
これを追加してください。プロジェクト名がrebootapp
の場合です。
注意ですが下の画像の部分はスペースでは無くタブとなります。したがって上記のコードをコピペして下さい。
次にmain.mファイルを下記のように
setuid(0);
setgid(0);
を追加してください。
#import "XXAppDelegate.h" int main(int argc, char *argv[]) { setuid(0); setgid(0); @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass(XXAppDelegate.class)); } }
あとはビルドして完了です。