mikiyan1978’s 脱獄情報日記

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

FLEXibleを使ったTweak作成方法

今回はFLEXibleという脱獄アプリを使い、簡単なTweak作成方法を紹介します。
Theos構築〜ビルド、インストールまでは割愛します。ご了承ください。

FLEXibleを使うのでCydiaよりインストールしておいてください。インストール完了しましたら、設定アプリからFLEXibleを選択します。


image

そしてアプリのメソッドを特定したい場合は「Enabled Applications」からアプリを選びスイッチをオンにします。


image

image

そして前の画面に戻り「Respring」をタップして適応させます。
ホーム画面(SpringBoard)の場合は「Enabled on SpringBoard」のスイッチをオンにします。そしてRespringして適応させます。すると


image

画面のようにFLEXibleのtool barが表示されます。ここまで出来れば準備はOKです。
それではTweak作成に行きましょう。
例えばDockのボカシを消したい場合の操作方法です。tool barの「select」をタップします。


image

このようになります。この状態から更にDockの背景部分をタップします。


image

するとDock部分が囲まれました。更に「view」をタップします。


image

こんな画面になりました。これはその画面で使用されてるクラスの一覧のようなものだと思ってください。そしてグレーになってるクラスの右にあるiマークをタップします。


image

こんな画面になりました。次に「preview image」をタップして消したいものなのかを確認します。


image

この場合はアプリまで表示されています。これだとアプリまで消えてしまうので探してるクラスではありません。なので前の画面に戻り、上の方にある「SBDockView」というクラスのiマークをタップします。そして同じく画像表示させて確認します。


image

このような画像が表示されたらOKです。まさにこの画像がDockの背景部分です。これでひとまずクラスが特定出来ました。
前の画面に戻り下にスクロールさせると「IVARS」という項目があります。これはSBDockViewクラスで宣言されているインスタンス変数です。この中のそれっぽいものが、
UIImageView *_backgroundImageView
これになります。同様に画像確認しておきます。先程と同じ画像ならこのインスタンス変数がDock背景画像となります。
image



次にTweakを作成するのですが、今回のような何かを消す又は非表示にするといったTweakの場合は、
-(void)layoutSubviews
というメソッドが使えます。
それとこの背景画像はUIImageViewなので本来はこのクラスをhookしなければいけません。そこで便利なのが
MSHookIvar
これです。インスタンス変数を変更する為の関数です。Tweakを作ってる方なら大体の察しはついているかとは思いますがこの背景画像はUIImageViewでインスタンス変数を定義しています。この変数をhookして非表示にするという事ですね。まあ難しい事は置いといて、取り敢えず$THEOS/bin/nic.plからTweakでプロジェクト作成し、Tweak.xmを編集しましょう。
ここに記述するコードは
image

|objc| @interface SBDockView:UIView @end

%hook SBDockView -(void)layoutSubviews { %orig; UIImageView * backgroundImageView = MSHookIvar self, "_backgroundImageView") backgroundImageView.hidden = YES; ||<

こんな感じになります。
書けましたらビルドしてdebファイルをインストールしてRespringしてみましょう。Dock背景が消えて透明になっていれば成功です。
FLEXibleを使ったTweak作成はだいたいこんな感じで進めていきます。
他にもメソッドを任意に呼び出したりする事もできます。気になるメソッドがある場合、呼び出して動作確認するといった使い方もありますね。

2016/2/29

追記:このコードを簡略化した物が下記になります。
私のiOS9.3.2の環境で上記のコードでは動作しませんでしたので こちらのコードを使用して下さい。 https://ghostbin.com/paste/xs2g5
質問がありましたら下のLINE@ボタンより追加して下さい。
友だち追加

Twitterやってます。


オマケのカスタム検索です。