このTweak開発には「theos」が構築されていることが前提条件。
環境構築方法は下記を参考に。

【脱獄アプリ開発】「theos」の構築手順
2020-02-17更新:脱獄アプリ開発に必須な「theos」の構築方法を簡単に説明していく。
基本的に記事の手順に添って実行していけば構築が完了する。また、脱獄アプリ開発方法も紹介している。
筆者はTwitterに潜っている事が多いので、Twitterでの質問も受け付けている。
今回はLINEの既読をつけないようにするTweakを作成する。
既存のクラスをhookし、メソッドの処理を書き換えてアプリ内の処理を改変する。
開発環境
- iPhone 6s (iOS 12.1.2) unc0ver Jailbreak
- Macbook Pro 2013 MacOS Mojave 10.14.4(18E227)
- Xcode 10.3
目次
Flexのインストール
最新版のFlexを下記のリポジトリを追加してFlex 3 Betaをインストール。
https://getdelta.co/
Flexでpatchを作成する
既読がつく時に呼び出されるクラスとメソッドを確認。
クラス | メソッド |
ManagedSquareChat | notifyServerReadUpToMessage |
ManagedChat | notifyServerForAllUnsyncedChatsInContext |
ManagedChat | notifyServerReadUpToMessage |
これらのメソッドの全引数、返り値をNULLに処理を改変すると既読がつかなくなる。
このpatchを作成して、既読がON/OFFできるか確認する。
theosでプロジェクトを作成
ターミナルでtheosを実行してTweakを選択する。

その他の入力項目は下記の通り。
Project Name | プロジェクト名 |
Package Name | パッケージ名 |
Author/Maintainer Name | 作成者名 |
MobileSubstrate Bundle filter | 適用するAPPのBundle ID |
List of applications to terminate upon installation | インストール後にkillするアプリ デフォルトではSpringBoard |
今回は次のように入力した。
Project Name | LINE No Read |
Package Name | info.nanato12.linenoread |
Author/Maintainer Name | nanato12 |
MobileSubstrate Bundle filter | jp.naver.line |
List of applications to terminate upon installation | そのままEnter |
4つのファイルが作成されたことを確認する。

それぞれのファイルの役割は下記の通り。
control | Tweakの情報ファイル |
[tweak_name].plist | 適用するBundle IDが書き込まれているファイル |
Makefile | Tweakのbuild情報ファイル |
Tweak.x | Tweakの処理ファイル |
Tweakの処理を書く
Tweakの処理はtweak.xに書き込む。
下記のように該当のクラスをhookしてメソッドの引数、返り値を全てNULLに書き換える。
%hook ManagedSquareChat
-(id)notifyServerReadUpToMessage:(id)arg1 chatMID:(id)arg2 completion:(id)arg3
{
arg1 = NULL;
arg2 = NULL;
arg3 = NULL;
return NULL;
}
%end
%hook ManagedChat
+(void)notifyServerForAllUnsyncedChatsInContext:(id)arg1
{
arg1 = NULL;
return;
}
-(id)notifyServerReadUpToMessage:(id)arg1 chatMID:(id)arg2 completion:(id)arg3
{
arg1 = NULL;
arg2 = NULL;
arg3 = NULL;
return NULL;
}
%end
プロジェクトをbuildする
プロジェクトのディレクトリに移動し、make packageを実行。

packages直下にdebファイルが作成される。

あとは自分の脱獄端末にインストールしてあげれば、おk。
連絡先
何かあればコメントや下記の連絡先に連絡ください。
コメント