mikiyan1978’s 脱獄情報日記

脱獄に関する情報を発信します

Respringアプリの作成方法

こんにちは、mikiyan1978です。
さて今回は端末単体で
起動するとRespringする
アプリを作っていきましょう。

まず$THEOS/bin/nic.plにてApplicationのプロジェクト作成をします。

次にRootViewController.mm若しくはXXRootViewController.mmを開き、#import〜の次の行に

#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の下のloadView{}の中に

- (void)loadView {
    systemf("killall -9 SpringBoard");
}

上記をコピーします。コードは以上になります。
全体のコードは

#import "RootViewController.h" //RootViewControllerの部分はtheosバージョンによってはXXRootViewControllerの場合がありますが変更は必要ありません

#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 RootViewController
//この上のRootViewControllerも上と同じく変更の必要ありません
- (void)loadView {
//デフォルトではここに白い背景を配置するコードが書かれていますが今回は敢えて消します
    systemf("killall -9 SpringBoard");
}
@end

あとはmake packageコマンドでビルドして下さい。