mikiyan1978’s 脱獄情報日記

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

checkra1nで脱獄したデバイス向け単体theos構築方法

皆さんどうもmikiyan1978です。
今回はcheckra1nという今までにない新しい脱獄ツールで脱獄した方は少なくはないはずです。
そして単体theos構築してエラーが出てプロジェクト作成すら出来ない方も少なくないはずです。
そこでcheckra1nにて脱獄したデバイス向けのtheos構築方法を紹介します。

必要なもの
Theos Dependencies for iOS12+(私のリポジトリにあります)

まずFilza File Managerで/ディレクトリにoptという名前のフォルダーを作成します。

次にターミナルで下記のコマンドをrootで実行します

cd /opt
git clone --recursive https://github.com/theos/theos.git

すると先程作成したoptフォルダーの中にtheosがcloneされます。

次に下記のコマンドを実行します。

cd /opt/theos
rm -rf /opt/theos/lib
rm -rf /opt/theos/include
ln -s /opt/theos/vendor/lib /opt/theos/lib
ln -s /opt/theos/vendor/include /opt/theos/include

すると下記の画像のように
include
lib
この2つのシンボリックリンクが作成されます。

次にSDKをダウンロードして
/opt/theos/sdks
ここに入れます。

次に
/var/root
ここに
.profileという名前のファイルを作り

export THEOS=/opt/theos

上記をコピペします。

以上で構築完了となります。あとは
$THEOS/bin/nic.plでプロジェクト作成
make packageでビルドできます。
ここで1つ注意ですが、checkra1nは/var以下にある実行可能ファイルの動作を許可していない為、通常とは違う構築方法となります。
従って$THEOS/bin/nic.plにてプロジェクト作成/ビルドする際は常にrootログインして行って下さい。

私の場合、/にios12THEOSフォルダーを作成し、その中にプロジェクト作成をしています。この場合

cd /ios12THEOS
$THEOS/bin/nic.pl

このようなコマンドを実行する事でios12THEOSフォルダー内にプロジェクト作成することが出来ます。

任意のアプリのサブ垢作成方法

こんばんは、mikiyan1978です。
今回はアプリのサブ垢作成方法になります。
では参りましょう。

必要なもの
XLine (BigBoss)
*Sileoをお使いの場合
BigBoss+
このリポジトリを追加して下さい。エラーが出る場合がありますが無視して大丈夫です。
Cydiaからインストール出来ましたら設定アプリから
MASTER項目をオンにします。

次にその下からサブ垢を作りたいアプリを選択します。今回はLobiにしましょう。

選択したら上のMASTER項目をオンにします。

続いて下の青文字のCreate Xlineをタップして新規サブ垢を作成します。作業は以上になります。あとは該当アプリを起動するだけで本垢、サブ垢を選択できるようになります。適応されない場合はRespringなど行ってください。

アプリの垢バン回避方法

こんばんは、mikiyan1978です。
さて今回は
垢バン回避方法
になります。
注意ですがこのやり方で全ての垢バン回避ができるとは限りません。
必要なもの
Filza File Manager
Link Identity Editor
ターミナル系アプリ

今回は例としてLINEで説明します。(LINEで垢バンは聞いたことないですが…)

まずLINEのバイナリファイルを探します。
バイナリファイルとはアプリの主要ファイルになります。場所としては.appディレクトリにあります。
LINEの場合
/var/containers/Bundle/Application/***/LINE.app/LINE
このディレクトリにあります。***の部分は人それぞれユニークIDとなります。




最後の画面でコピーするとディレクトリがコピーされるのでメモしておきます。
/var/containers/Bundle/Application/854C10F2-39ED-41E1-A4BC-DF7D7847A811/LINE.app/LINE
私の場合は上のようなディレクトリがコピーされました。

次にTerminalアプリを開きます。
次のコマンドを実行します。

ldid -e [バイナリファイルパス] >> LINE.plist

ldid -eに続き先程コピーしたディレクトリを貼り付けてコマンド実行します。
私の場合は下記の通りになります。

ldid -e /var/containers/Bundle/Application/854C10F2-39ED-41E1-A4BC-DF7D7847A811/LINE.app/LINE >> LINE.plist

すると/var/mobileにLINE.plistというファイルが作成されるので開くと

このようになります。
上から2番目の
application-identifier
の項目に記述されているIDをコピーします。
ZW4U99SQQ3.jp.naver.line

次に下記のコマンドのapplication-identifierの部分に先程コピーしたIDを貼り付けます。
delete from genp where agrp = 'application-identifier'

今回の場合

delete from genp where agrp = 'ZW4U99SQQ3.jp.naver.line'

このコマンドが最終的に必要なものになります。

ではFilza File Managerで
/var/Keychains/keychain-2.db
このファイルを開きます。そして
genp
という項目を開きます。

そして右上のテキストフィールドに
delete from genp where agrp = 'ZW4U99SQQ3.jp.naver.line'
これを貼り付けて検索を押します。
ここで今回の場合検索を押してしまうとLINEアプリとデバイスとの紐付けが削除されてしまうので押さないでください。

そして次のように表示されれば完了です。
数字の部分はアプリによって異なります。

Myリポジトリを最速で更新する方法

こんにちは、mikiyan1978です。
さて今回は
「新しく脱獄アプリを作成してリポジトリに上げた後の最速更新する」
方法です。
通常の確認ならCydiaやSileoなどからソースのリフレッシュを行い確認するのですが、登録しているリポジトリが多すぎる場合に時間がかかってしまいます。
そこで自分のリポジトリのみを最速で更新させたい場合のやり方です。

このやり方はリポジトリ更新をFilza File Managerなどで端末単体で行なっている場合です。

まずリポジトリ更新に使っているディレクトリにある
Packagesファイルの中身をコピーします。

次に
/var/mobile/Library/Caches/com.saurik.Cydia/lists
ここにある自分のリポジトリ名ファイルを探します。
私の場合は、
mikiyan1978.webcrow.jp_._Packages
となります。
このファイルにコピペします。

以上になります。Cydiaを再起動してリポジトリの確認を行って下さい。

LINEの着信音と通知音を変更する方法

こんばんは、mikiyan1978です。
さて今回はLINEの着信音と通知音を好きな音楽や効果音に変更する方法を紹介します。

補足:
私の環境ではLINEを開いた状態では通知音の変更が反映されませんでした。

やり方
まずFilza File Managerでアプリマネージャーを開き、LINEの項目の右のiマークを押します。

そしてBundle→LINE.appと順にを押します。

次に
c.caf
というファイルがありますが、これが木琴の着信音になります。
もう一つ
n1.caf
というファイルがシンプルベルの通知音となります。
この2つのファイルを好きな音楽や効果音ファイルと差し替えます。
変更したいファイルはmp3形式が望ましいですね。
変更したいファイル名をそれぞれの元ファイル名に変更します。

例:mp3形式の場合
xxxxxx.mp3

c.caf (着信音を変更したい場合)
n1.caf (通知音を変更したい場合)

そしてLINE.appフォルダーの中にある元々のファイル名を読み込めないようにリネームします。

そして同じ場所に
c.caf
n1.caf
この、それぞれ2つの変更したい好きな音楽や効果音ファイルをコピペします。

あとはLINEアプリ内の設定から
着信音は木琴を、通知音ならシンプルベルを選択します。

変更されない場合は、LINEアプリをタスクから終了させる、もしくはRespringするなどして下さい。

rebootアプリの作成方法

Respringアプリに引き続き
起動するとreboot
するアプリを作っていきましょう。

コードは

#import "XXRootViewController.h"
#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 XXRootViewController {
}

- (void)loadView {
    systemf("reboot");
}
@end

ほぼ同じですね。しかしここまではrebootしてくれません。
そこでこのアプリ自体に権限を与えてあげます。
Makefileの最後に

after-stage::
	$(ECHO_NOTHING)chmod 06755 $(THEOS_STAGING_DIR)/Applications/rebootapp.app/rebootapp $(ECHO_END)

これを追加してください。プロジェクト名がrebootapp
の場合です。
注意ですが下の画像の部分はスペースでは無くタブとなります。したがって上記のコードをコピペして下さい。

次にmain.mファイルを下記のように
setuid(0);
setgid(0);
を追加してください。

#import "XXAppDelegate.h"

int main(int argc, char *argv[]) {
    setuid(0);
    setgid(0);
	@autoreleasepool {
		return UIApplicationMain(argc, argv, nil, NSStringFromClass(XXAppDelegate.class));
	}
}

あとはビルドして完了です。