#THEOSで簡単なTweakを作ってみよう!ホーム画面にボタン追加する編
どーも。高校生のクソガキです。
Twitterはこちら
twitter
##theos構築
これはいちいち手動で構築する人がめんどくさい人向けのtweak
theos instaler2を使ってください
インストールしたらterminalにてroot権限で
theosinstaller 12.2
と打って実行すれば構築できるはずです。
##プロジェクトの作成
terminalで
$THEOS/bin/nic.pl
とうって指示通りに進めていけば作成できます。
詳しくは前記事にしたのでみてみてください。
##tweak作成
さっき作成したプロジェクトにtweakのコードを記述していきます。
Tweak.xというファイルができているはずなので、
そこに書いてある内容を全て消してください
今回はホーム画面にボタンを追加するコードを書いていきます。
#import <spawn.h>
%hook SBHomeScreenViewController
-(void)viewDidLoad {
//viewが読み込まれたとき
%orig;
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(10, 10, 100, 30);
//btnを大きさ指定して生成
[btn setTitle:@"押してね" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(hoge:)
forControlEvents:UIControlEventTouchDown];
//btnを押したときに呼び出されるmethodの名前を決める
[self.view addSubview:btn];
//btnをSBHomeScreenViewControllerのviewに追加
}
%new
-(void)hoge:(UIButton *)sender {
UIViewController *view = [UIApplication sharedApplication].keyWindow.rootViewController;
while (view.presentedViewController != nil && !view.presentedViewController.isBeingDismissed) {
view = view.presentedViewController;
}
UIAlertController *alertController =
[UIAlertController alertControllerWithTitle:@"Respring"
message:@"respringしたいか?"
preferredStyle:UIAlertControllerStyleAlert];
[alertController addAction:[UIAlertAction actionWithTitle:@"Yes"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {
//respring
pid_t pid;
int status;
const char* args[] = {"killall","-9","backboardd",NULL};
posix_spawn(&pid,"usr/bin/killall",NULL,NULL,(char* const*)args,NULL);
waitpid(pid,&status,WEXITED);
}]];
[alertController addAction:[UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {
}]];
[view presentViewController:alertController animated:YES completion:nil];
}
%end
こんな感じでtweak.xを書いてください。
1行目のspawn.hはリスプリングするときに必要になるのでインポートしといてください。
ちなみに四行目の%origがないと、既存の処理が全て消え、今回書いたコードだけになるので、絶対つけてください。
ではコードが書き終わったので、次はmakefileを開いてください。
開きましたら一番上に
ARCHS = arm64 arm64e
とかいてください。
書かなくても一応コンパイルはできますが、
arm64eという記載がないと、A12プロセッサーに対応したtweakが作れません。
では作業が終わったので、コンパイルしてみましょう。
terminalを開いて、
tweak.xとかmakefileがあるディレクトリにcdコマンドで移動します。
cd /var/mobile/test
みたいな感じでやってください。
できましたら、
makefile
と入力してください。
何もエラーが出なければdebian packageの出来上がりです。
先ほどのディレクトリにpackageというフォルダーができてるはずなので、
そこにいき、debをインストールしてみてください。
respringしてホーム画面にボタンが出現すれば完成です!!
##ターミナルいくのめんどくさい!!て方
わざわざfilzaからターミナルに行ってコンパイルするのめんどくさいよという方は、
僕がfilzacompilerというtweakを作ったので、
twitterのdmくればあげます
#まとめ
簡単でしたね!!何か質問があればtwitterのdmとかにくれば教えます。
お疲れ様でした。