ほしのぶろぐ

ほしのぶろぐ

iPhone関連の記事

【備忘録】Theosで簡単なTweak作成

今回作成するTweakは

LINEでのNewsTabの無効化: Disable LINENewsTab

 

本記事で使用している環境

  • iPhone 6s (iOS10.3.3) Meridian Jailbreak
  • MacbookPro 2013
  • Xcode 9.4.1
  • Theos

 

まずはFlexでの動作確認

f:id:bluesquare:20180817135712p:image

 

正直、Tweak開発者でFlexを入れていない人はいないと思う。

 

LINEのNewsTabのメソッドは

-(bool)useNewsTab

このメソッドの返り値をfalseにしてあげれば、NewsTabは無効化される。

 

NewsTabを無効化するとCallTabが出てきてしまうので、CallTabも無効化する。

 

CallTabのメソッドは

-(bool)useCallTab

CallTab無効化はこのメソッドの返り値をfalseにしてあげる。

 

適用させるメソッド

-(bool)useNewsTab

-(bool)useCallTab

どちらも返り値: false

 

どちらともクラスはNLConfigurationManager

 

f:id:bluesquare:20180817142707p:image

f:id:bluesquare:20180817142711p:image

f:id:bluesquare:20180817142730p:image

 

ONにしてLINE開くとNewsTabが無くなってるはず。

f:id:bluesquare:20180817143811p:image

 

確認できたら、Theosで実際に作っていきましょう〜

 

Project作成

Finderで作成場所を決め、ターミナルにてcdコマンドで移動し、Theosを起動

今回はTweak作成なので12でEnter

 

f:id:bluesquare:20180818012132p:plain

 

入力項目は次の通り

  • Project Name: [プロジェクト名]
  • Package Name: [パッケージ名]
  • Author/Maintainer Name: [作者名]
  • MobileSub...: [適用するBundle ID]
  • List of ...: [インストール後の終了するアプリ]

 

今回は

  • Project Name: Disable LINENewsTab
  • Package Name: com.bluesquare.disablelinenewstab
  • Author/Maintainer Name: BlueSquare
  • MobileSub...: jp.naver.line
  • List of ...: [Enter] (デフォルトではSpringBoardなのでインストール後Respringする)

 

f:id:bluesquare:20180818012542p:plain

 

disablelinenewstabのフォルダが作成されたことを確認する。

f:id:bluesquare:20180818012704p:plain

 

さらに中身も確認する。

f:id:bluesquare:20180818013444p:plain

  •  control: Tweakの情報
  • [TWEAK_NAME].plist: 適用するBundle IDが書かれたファイル
  • Makefile: Tweakのbuild情報が書かれている
  • Tweak.xm: Tweakのプログラム

 

情報を書き込む

controlファイルは各自で編集してください。

plistファイルは特に編集することないです。

 

Makefileには下記を追記するくらい。

64bitに対応。

ARCHS = armv7 armv7s arm64

 

また、インストールしやすいようにIPアドレスも設定すると良いかもしれません。 

その場合は、設定>接続してるWi-Fiのℹ︎マークから端末のIPアドレスを確認しましょう。

 

f:id:bluesquare:20180818015209p:image

 

IPアドレスを設定する場合は下記のように追記

THEOS_DEVICE_IP = 192.168.0.9

 

 

SSH接続でインストールするので端末にOpenSSHを入れてSSH接続できるようにしておいて下さい。

SSH接続できるか下記のように確認しましょう。

ssh root@IPアドレス

f:id:bluesquare:20180818021131p:plain

 

次にTweak.xmの編集。

 

適用させるメソッドは

-(bool)useNewsTab

-(bool)useCallTab

のふたつで、どちらとも返り値はfalse

 

どちらもクラスはNLConfigurationManager

 

これをTweak.xmに書いてあげればいい。

 

書き方としては

%hook クラス名
          メソッド{
処理
} %end

みたいな。

 

だから、今回はこうなる。

%hook NLConfigurationManager

//Disable News Tab

-(bool)useNewsTab
{
    return false;
}


//Disable Call Tab

-(bool)useCallTab
{
    return false;
}

%end

 

これだけ。

 

あとはbuidしましょう。

cdでdisablelinenewstabに移動し、make packageでOK

f:id:bluesquare:20180818022736p:plain

 

IPアドレスを設定した人はmake package installでbuildしてインストールできます。

 

debファイルはpackagesフォルダに保存されています。

 

完成。

f:id:bluesquare:20180818023937p:plain

 

今回作成したTweakのファイルはGitHubに載せておきます。

github.com