iOS 7.0.2 仮脱獄(開発者向け) | iKMHacks

iKMHacks

著者のリポジトリもお願いします
http://cydia.ikmhacks.futene.net

どうも、iKMHacksです。
今回は、iOS 7.0.2の仮脱獄が完了したのでその手順を載せていきます。
iOS 7.0.2の仮脱獄は今までのものとは違い、「クリックだけでいけるもの」ではありませんし、Cydiaなどもないのでそれなりの知識自己責任がついてきます。また、SSHを用いて行うのでセキュリティにはご注意ください。それでも行う方はこれから紹介する手順をどうぞ。




〇参考
opensn0wを使ったiPhone 4 iOS 7.0.2 tethered jailbreakとsshのInstall方法


〇使用した環境
・iPhone 4(GSM) iOS 7.0.2
・Windows 7
・Mac OS 10.6.8


〇必要な物
・MacPorts
・UNIX Development Support(Xcode同封)
・iPhone 4 iOS 7.0.2
・Windows 7(私の環境では必要でしたが、普通は不必要かもしれません)
・Mac OS 10.6.x(10.6.8を使用)
・Java(x32)
・SSHソフト(私はWinSCP)




〇MacPortsなどのインストール
Macportsをインストールします。
ダウンロードして起動してください。
The MacPorts Project Official Homepage



手順に従い、インストール


インストールが完了したらTerminalでsuと打ち、rootにログインする(sudoでも可)
su
パスワード


次にパッケージリストをアップデートします。
port selfupdate


そして最後に必要なものをインストールさせます。
port install autoconf
port install automakke
port install libtool




以上で完了です。

後の作業は全てsuコマンドでログインしたまま行います




〇opensn0wの準備
opensno0wをクローンするのですが、Macに標準でgitは含まれていません。
そこでまずそれをインストールしましょう。
git-osx-installer

インストールが完了しましたらTerminalに戻りopensn0wをクローンします。

場所はその都度変更していただいて結構です(今回はDesktop)
cd Desktop
git clone https://github.com/winocm/opensn0w.git


これをビルドするのですが、Linux用でMacでは行えません。
なのでパッチを当てます。
面倒なのでターミナルでダウンロードしてしまいましょう。
※DLと解凍作業は手作業で行ってもいけます。
curl -O http://devbug.me/attachment/4174303333.zip
unzip 4174303333.zip
cp opensn0w3.diff opensn0w
cd opensn0w
patch -p1 < opensn0w3.diff


続いてopensn0wをビルドします。
chmod +x autogen.sh
./autogen.sh
./configure --prefix=/Users/ユーザ名/Desktop/opensn0w_build
make
make install


エラーも出ずに完了すれば準備完了です。




〇iOS 7.0.2のroot取得
続いての作業はMacで行ってOKです。
私の環境ではなぜか落ちるのでWindowsで行いました。

ssh_rd_rev04b.jarをダウンロードします。
ssh_rd_rev04b.jar

続いて先ほどのファイルを起動します。
ただし、32bitでしか動作しないため、64bit OSは注意です。

起動するとiPhone 4を繋ぎ、DFUモードにいれます。
すると勝手に作業が始まり、Success!と表示されれば完了です。
普通に起動してしまったり、Success!とでなければ失敗なのでもう一度行ってください。



続いてSSHソフトを立ち上げます。(私はWinSCP)

ホスト:localhost
アカウント:root
パスワードalpine

でログインを行います。

コンソール(コマンド⇒コンソールを開く)を開き、コマンドを入力します。
mount_hfs /dev/disk0s1s1 /mnt1

/mnt1にファイルがあればOK。
なければ一度切断して再度ログインすると表示されます。

/mnt/etc/fstabというファイルがあるのでコンピューターにコピー
テキストエディタで開き、「/dev/disk0s1s1 / hfs ro 0 1」を「/dev/disk0s1s1 / hfs rw 0 1」に変更。
そしてそれを元の場所に戻します。



次に/mnt1/System/Library/LockdownにあるServices.plistをコピーし、エディタ(plist Editor)で開き、以下の青字を追加する
<key>com.apple.afc</key>
  <dict>
    <key>AllowUnactivatedService</key>
    <true/>
    <key>Label</key>
    <string>com.apple.afc</string>
    <key>UserName</key>
    <string>mobile</string>
    <key>XPCServiceName</key>
    <string>com.apple.afcd</string>
  </dict>
<key>com.apple.afc2</key>
  <dict>
    <key>AllowUnactivatedService</key>
    <true/>
    <key>Label</key>
    <string>com.apple.afc2</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/libexec/afcd</string>
      <string>--lockdown</string>
      <string>-d</string>
      <string>/</string>
    </array>
  </dict>


同じく元の位置に戻します。

次にSSH2_bundle.tgzをダウンロード。
そして展開します。
その後展開したフォルダにあるbinの中身/usr/binにコピー
※WinSCPの場合エラーが出ますが、おそらく問題はないです。

続いてコピーしたファイルに実行権限を与えます。
tarを右クリックし、プロパティを開きます。
パーミッションのXに3つともチェックをつけてOK
これをgzipにも行ってください。(他人はいらない気がしますが)
※これを行わないと次の項目が行えません。



次にダウンロードしてきたSSH2_bundle.tgzを/mnt1にコピー
コンソールで以下をタイプ
cd /mnt1
tar xzf SSH2_bundle.tgz


以上を終えれたら以下をタイプ
halt

これでiPhoneの電源が切れます

以上がエラーも出ずに行えれば完了です。




〇iPhoneをBoot
ここからまたMacの出番です。
Macで行っていた方はそのままMacで行ってください。

iPhone3,1_7.0.2_11A501.plistをダウンロードし、opensn0w_build/bundlesに保存

続いてiPhone 4をDFUモードにいれ、Terminalで以下を実行(root権限必要かは不明)
cd Desktop/opensn0w_build/bin
./opensn0w_cli -p ../bundles/iPhone3,1_7.0.2_11A501.plist


すると文字が大量に表示されてiPhone 4もいつもの脱獄と同じような画面になります(Verbose mode)


無事起動が完了すれば成功です。
最後にSSHで接続ができるか確認しておきましょう。
Terminalで以下を入力
ssh root@iPhoneのIPアドレス

パスワードはalpineです。

とりあえずこれで基本的な作業は終わりですが、パッケージなどこのままではインストールすることができませんので次項で準備を行います。




〇パッケージなどをインストール
パッケージリストと必要なファイルを準備します。
既に脱獄済みのデバイスがある方はiFunBoxなどで/var/lib/var/cacheをパソコン側にコピーしてください。
脱獄済みのデバイスがない場合は脱獄後にCydiaも開けていない真っ新なものを用意したのでそちらをお使いください。
ダウンロード

準備ができましたらそれをSSHで/var/にコピーします。

そしてコンソールで以下をタイプしてください。
apt-get update

エラーがでなければ完了です。

続いてパッケージをインストールします。
今回はMobileTerminalをインストールします。
MobileTerminalをダウンロード。
MobileTerminal 520-2

ダウンロードしてきたものをSSHで適当にコピーし、以下をタイプ
cd <コピーしたフォルダパス>
dpkg -i MobileTerminal_520-2_iphoneos-arm.deb


これでインストールは終わりました。
しかし、SpringBoardには反映されていないので再びVerbose bootさせてください。
./opensn0w_cli -p ../bundles/iPhone3,1_7.0.2_11A501.plist





以上がiOS 7.0.2の仮脱獄方法です。
操作が多い上に環境に縛られるので本当に開発向けという感じですね。
そもそも仮脱獄自体が開発者向けといっても過言ではありませんけど・・・
とりあえず、「仮脱獄」だからといって必ずしも使いやすくなるわけではないのでご注意ください。


〇余談
余談ですが、iOS 7でもiOS 4.3 SDKでビルドしたアプリケーションが動作しました。
もうiOS 4.x SDK使ってる人いないと思いますけど参考程度に!


〇追記 2013-11-7
iOS 7.0.3がリリースされましたが、当方のiPhone 4がiOS 6.1でメイン機化してしまったので検証できなくなりました。
どなたか勇者様方情報の提供求む・・・っ!