mikiyan1978’s 脱獄情報日記

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

iOS theos構築方法

今回は端末単体でTweak開発ができる「theos」の構築方法を紹介します。
早速参りましょう。

まずCydiaで

http://coolstar.org/publicrepo/
http://nix.howett.net/theos

この2つのリポジトリを追加します。

次に以下のパッケージをCydiaからインストールします。(もしDarwin CC Tools関連でエラーが出る場合は、BigBossにあるDarwin CC Toolsをインストールしてから実行)

iOS Toolchain

Perl

・Theos

次にiFileなどで
/usr/local/bin
ここにあるperl5.22.0を
/usr/bin
ここへリンク作成して下さい。
そしてperl5.22.0からperlへファイル名を変更して下さい。
コピペしないで下さい。

次にiOS Terminal等からrootユーザーとしてログインし、以下のコマンドを実行します。

mkdir -p $THEOS/sdks

すると/var/theosディレクトリにsdksフォルダーが作成されます。


次に以下のリンクよりSDKをダウンロードして下さい。ダウンロードされたファイルはzipファイルなので解凍します。

https://app.box.com/s/watb8ra4r0k70bh50gvjhek795vz4vtx

解凍して「iPhoneOS8.4.sdk」フォルダーを先程作成した/var/theos/sdksフォルダーの中に移動します。

また次のコマンド実行でもSDKを取得できます。
9.3のSDKになります。

curl -ksL "https://sdks.website/dl/iPhoneOS9.3.sdk.tbz2" | tar -xj -C $THEOS/sdks



画像ではiPhoneOS8.4.sdkとなってますが問題ありません。

次に以下のリンクよりヘッダーをダウンロードします。

include

同じく解凍して「include」フォルダーを/var/theosディレクトリに上書き保存します。

次に64bit端末へ対応させるために次のコマンドを実行します。

ln -s /var/theos/makefiles/platform/Darwin-arm.mk /var/theos/makefiles/platform/Darwin-arm64.mk

ln -s /var/theos/makefiles/targets/Darwin-arm /var/theos/makefiles/targets/Darwin-arm64



画像のようになっていればOKです。


次項は不具合やエラーが起きる場合のみ実行して下さい。
次にiOS9へ対応させるために次のコマンドを実行します。

rootログインして

cd /usr/bin

ldid -S *

次に

/var/theos/makefiles/package/deb.mk

このファイルをテキストビューで開き、以下の記述部分を

$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)

以下のように変更します。

$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -Zgzip -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)

もう1つ
/var/theos/bin
ここにある
bootstrap.sh
というファイルを開き、

if [[ "$(uname -s)" == "Darwin" && "$(uname -p)" != "arm" ]]

この部分を

if [[ "$(uname -s)" == "Darwin" && "$(uname -p)" != "arm64" ]]

これに書き換えます。

最後に
/var/theos/bin/fauxsu
このファイル名を
fauxsu

fauxsu%
このようにリネームします。

以上で基本的なtheos構築方法になります。

Tweak作成はターミナルより

$THEOS/bin/nic.pl

でプロジェクト作成できます。


質問がありましたら下のLINE追加ボタンより追加して下さい。
友だち追加

Twitterやってます。

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







iOS theosによるApplicationの作成方法

今回は端末に構築したtheosを使い簡単なアプリを作ってみましょう。
ボタンを配置してタップするとアラートを表示させるというシンプルなアプリです。

theos構築をしていない方はこちらを参考に構築して下さい。


では作っていきましょう。

ターミナルから次のコマンドを実行します。

$THEOS/bin/nic.pl

するとテンプレートがいくつか表示されますのでApplicationを選択します。

NIC 2.0 - New Instance Creator
------------------------------
  [1.] gazelle/view_plugin
  [2.] iMokhles/Tweak
  [3.] iOS/Aoraki2 Button
  [4.] iOS/CCLoader Plugin
  [5.] iOS/Command Line Interface
  [6.] iOS/Dynamic Library
  [7.] iOS/Flipswitch Toggle
  [8.] iOS/Scription Module
  [9.] iOS/Scription Script
  [10.] iOSGods CSCI Patcher v2.0
  [11.] iOSGods CSCI Patcher v3.0 NewAutoLipo
  [12.] iOSGods Patcher v1.1
  [13.] imported/iphone/action_menu_handler
  [14.] imported/iphone/activator_listener
  [15.] iphone/Application
  [16.] iphone/cctoggle_toggle
  [17.] iphone/cydget
  [18.] iphone/framework
  [19.] iphone/library
  [20.] iphone/preference_bundle
  [21.] iphone/tool
  [22.] iphone/tweak
  [23.] iphone/velox_plugin
  [24.] mikiyan1978's/tweak

諸所の入力が終わりましたらiFileなどのファイルマネージャーで作成したプロジェクトフォルダを開きます。

今回のプロジェクト名はbuttonappとしましょう。


次にMakefileというファイルの1番上に

ARCHS = armv7 arm64

これを追加記述します。32bit、64bit端末に対応させる為の記述です。
もうこの時点でこのアプリのコードは完成しています。ここでどんなアプリが出来るかビルドしてみましょう。

cd buttonapp
make package

このコマンドを実行します。
するとプロジェクトフォルダ内にdebファイルが作成されるのでインストールしてみましょう。
ここで注意ですがホーム画面に表示されるタイプのアプリなのでインストールしたあとは

uicache

キャッシュをクリアしてあげましょう。

暫くするとホーム画面にアプリが追加されます。
起動してみます。すると上下に黒帯がある真っ赤な画面が表示されます。とりあえず「真っ赤な画面を表示させるだけ」のアプリが完成しました。

ではこの真っ赤な画面を変更してみましょう。
例として普通の白い背景画面にしてみます。
RootViewController.mm
というファイルを開きます。

デフォルトでは

//デフォルト
#import "RootViewController.h"

@implementation RootViewController
- (void)loadView {
        self.view = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
        self.view.backgroundColor = [UIColor redColor];
}
@end

こんなコードになっているはずです。
これを次のコードに書き換えます。

//書き換える
#import "RootViewController.h"

@implementation RootViewController
- (void)loadView {
        self.view = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
        self.view.backgroundColor = [UIColor whiteColor];
}
@end

最後の行の

self.view.backgroundColor = [UIColor redColor];

ここのredColorを

self.view.backgroundColor = [UIColor whiteColor];

whiteColorへ書き換えます。こうする事で背景画面の色を変更できます。

さて背景画面の変更が出来ましたので、次は本題のボタンを配置してみましょう。
RootViewController.mmファイルを次のように書き換えます。

#import "RootViewController.h"

@implementation RootViewController
- (void)loadView {
        self.view = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
        self.view.backgroundColor = [UIColor whiteColor];

    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    myButton.frame = CGRectMake(110, 50, 100, 35);

    [myButton setTitle:@"ボタン" forState:UIControlStateNormal];

    [myButton addTarget:self action:@selector(myButtonPressed)  forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:myButton];
}
@end

ここでビルドしてインストールしてみましょう。
すると画面に「ボタン」という名前のボタンが配置されているはずです。

タップする事も可能ですが、まだタップされた時の処理を書いていないのでアプリはクラッシュします。
では実際に処理を書いていきましょう。

#import "RootViewController.h"

@implementation RootViewController
- (void)loadView {
        self.view = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
        self.view.backgroundColor = [UIColor whiteColor];

    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    myButton.frame = CGRectMake(110, 50, 100, 35);

    [myButton setTitle:@"ボタン" forState:UIControlStateNormal];

    [myButton addTarget:self action:@selector(myButtonPressed)  forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:myButton];
}

//タップ処理
- (void)myButtonPressed {
    UIAlertView *theAlert = [[UIAlertView alloc] initWithTitle:@"こんにちは!" message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK!", nil];

    [theAlert show];
    [theAlert release];
}
@end

これでタップ処理を実装出来ました。ビルドしてインストールしてみましょう。
ここでビルド時にエラーが出てしまう方は多いと思います。それはアラート表示させる為の
UIKitにあるUIAlertView
というフレームワークを使用します。
なのでMakefileというファイルに

buttonapp_FRAMEWORKS = UIKit

これを追加記述します。

ARCHS = armv7 arm64
include theos/makefiles/common.mk

APPLICATION_NAME = buttonapp
buttonapp_FILES = main.m buttonappApplication.mm RootViewController.mm
buttonapp_FRAMEWORKS = UIKit

include $(THEOS_MAKE_PATH)/application.mk

これでビルドできるはずです。

ボタンをタップすると上記画像のようにアラートが表示されたら完成です。

さて今回はボタンを配置してアラートを表示させるアプリを作ってみました。タップ処理の部分に別のコードを実装する事も可能です。
需要があれば続きを書きたいと思います。

質問がありましたら下のLINE追加ボタンより追加して下さい。
友だち追加

Twitterやってます。

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







iOS10でIconSupportをインストールする方法

ホーム画面をカスタマイズする為に必要なIconSupportですがCydiaにあるものはiOS10ではインストールできません。下記のURLよりdebファイルをダウンロードしiFileなどでインストールして下さい。

IconSupport

質問がありましたら下のLINE追加ボタンより追加して下さい。 友だち追加

Twitterやってます。

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

iOS Terminalで音楽を再生する方法

ブログ移行しました

http://mikiyan1978.hatenablog.com/



音楽を聴くときはミュージックアプリで聴きますよね。今回はiOS Terminalを使って再生したいと思います。

使う物 iOS Terminal Erica Utilities

Erica Utilitiesはコンソールパッケージでインストールすると便利なコマンドが使えます。その中に再生コマンドが含まれます。 インストールが終わりましたらiOS Terminalを起動してください。 そして、 play 音楽ファイルID とコマンドを打ち込んでください。これで音楽ファイルが再生されます。IDはファイル名になります。 iFileでファイルの右のiマークを押すと表示される画面で確認できます。

質問がありましたら下のLINE追加ボタンより追加して下さい。 友だち追加

Twitterやってます。

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

Could not open file/var/lib/dpkg/status - open (2: No such file or directory) The package lists or status file could not be parsed or opened.というエラー回避方法

このようなエラーの回避方法を紹介します。

iFile、Filza File Managerがある場合の回避方法です。

まず下記のリンクからlib.zipファイルをダウンロードしてiFileかFilza File Managerで開いてください。

lib.zip

そしてそのファイルを解凍します。解凍はiFileでやるよりFilza File Managerの方が早いですね。Filza File Managerで解凍した場合はlibフォルダーの中に更に目的のlibフォルダーが現れますのでそのフォルダーをコピーして下さい。iFileで解凍した場合は現れたlibフォルダーをコピーで構いません。

するとlibというフォルダーが現れます。

このlibフォルダーをコピーします。そして

/var

このディレクトリに貼り付けます。

iFile、Filza File Managerでの作業は以上になります。

あとはRespringしてCydiaを起動し通常通りインストール出来るか確認して下さい。

次はiFile、Filza File Manager、Terminal系のアプリが無い場合の回避方法です。

まずパソコンでiFunBoxとCydia impactorというツールをインストールして下さい。

次にパソコンで下記のリンクからTerminalのdebファイルとlib.zipをダウンロードして下さい。

Terminal

lib.zip

lib.zipファイルは解凍しておいて下さい。libというフォルダーが現れます。 Terminalのdebは拡張子をipaに変更しておいて下さい。

できましたらiFunBoxを開きlibフォルダーを次の場所にコピーして下さい。

/var/mobile/Media/Books

次にCydia impactorを開きTerminalのipaファイルをドラッグ&ドロップします。そしてApple IDを入力して署名します。できましたらiFunBoxでそのTerminalのipaファイルを端末へインストールして下さい。

次にインストールされたiOS Terminalを起動して下記のコマンドを実行します。

su

alpine(パスワードを変更していない場合はこれになります。変更している場合はそのパスワードを入力します。)

cp -R /var/mobile/Media/Books/lib /var

最後はリターンキーを押します。

作業は以上です。

あとはRespringしてCydiaよりインストール出来るか確認して下さい。

質問がありましたら下のLINE追加ボタンより追加して下さい。 友だち追加

Twitterやってます。

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

強制アップデートのアラートを回避する方法

今回は上記のLINE Qアプリのようにアップデートをしなければプレー出来ないアプリの強制アップデート回避方法を紹介します。

※AppStoreアプリは何万とリリースされており、事実上、全てのアプリで回避できる事を確認していません。

使うもの:

iFileまたはFilza File Manager

あると便利なもの

Icon Tool(有料)/アプリのDataやBundlesに簡単にアクセスできる

App Admin/ダウングレードTweakで今回書き換えに必要なバージョンやsoftwareVersionExternalIdentifierの値を簡単に確認できる

では早速参りましょう。例として上記のLINE Qアプリを回避してみます。

まずLINE Qアプリのlineqna_release.appがある段階にiTunesMetadata.plistというファイルがあります。このファイルをプロパティリストビューで開きます。この時App Adminを使って最新バージョンとsoftwareVersionExternalIdentifier(バージョンの下に書いてある数値)を確認しておきます。

そして

CFBundleShortVersionStringの項目を最新バージョンに書き換えます。

同じくsoftwareVersionExternalIdentifierの項目も最新バージョンに書き換えます。上記の画像だと

softwareVersionExternalIdentifierは3.3.1→3.4.0

CFBundleShortVersionStringは819642628→819649859

となります。

次にlineqna_release.appフォルダーの中にあるInfo.plistというファイルをプロパティリストビューで開きます。

ここも同じくCFBundleShortVersionStringのバージョンを最新バージョンに書き換えます。

以上で書き換え作業は完了です。あとはRespringして下さい。これでアップデートアラート回避ができているはずです。

質問がありましたら下のLINE追加ボタンより追加して下さい。 友だち追加

Twitterやってます。

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

アカウントを切り替える方法

今回は本垢とサブ垢を簡単に切り替える方法を紹介します。 既にSlicesというTweakがありますがセーフモードに入ったりと安定しないので今回は 361一键新机(MultiAccount Master)-最强大的傻瓜式改串软件 という脱獄アプリを使います。 Cydiaよりインストールして下さい。

361一键新机(MultiAccount Master)-最强大的傻瓜式改串软件を起動して下の真ん中のボタンをタップします。

そしてアプリを選択します。例としてグラブルでやってみましょう。

中央部の「操作」の真ん中をタップすると今現在のグラブルのアカウントが保存されます。ここで保存されたアカウントをタップするとリネーム出来ますので分かりやすい名前にしておく事をオススメします。

保存されたら上の赤文字をタップします。するとログアウトします。ログアウトしたあとグラブルを起動してサブ垢を登録します。登録出来たら361一键新机(MultiAccount Master)-最强大的傻瓜式改串软件を起動して同じようにサブ垢を保存します。あとは切り替えたいアカウントをタップして1番上の赤文字をタップすると切り替わります。

質問がありましたら下のLINE追加ボタンより追加して下さい。 友だち追加

Twitterやってます。

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