ようやく新しい「Apple Wireless Keyboard」が届きました。小さいです。薄いです。見た目もイイです! ということで、近々ご紹介させていただく予定です。
さて、今回はiPod touchシリーズの第2回、題して「脱獄編」。察しのいい方はお気づきと思うが、iPhone用のハックツール集「Jailbreak」を利用し、iPod touchに"勝手アプリ"を入れてしまおうという算段だ。10月10日にiPod touch対応版が公開されたので、リスクを顧みず試した結果を報告してみよう。
ワレ"脱獄"ニ成功セリ
ついにiPod touchで"脱獄"に成功した猛者が現れた。通常はアクセスできないルートボリュームをある方法でMac側に吸い上げ、設定ファイルを変更したうえで書き戻す、というiPhoneと同じ手法でだ。手順は、おおむね以下に示すとおり。どうしても試したい場合には、iPod touchのコミュニティサイト「Touchdev」などにアクセスし、最新の情報を確認したうえ、At your own riskの方針で臨んでほしい。
なお、記事の内容はすべて実際に試しているが、あくまで10月11日時点の状況(iPod touchのファームウェアはv1.1.1、母艦にはIntel Macを使用)であり、それ以外の環境では動作しない可能性が高い。TIFFの表示に関連する脆弱性を突いたハックという事情からすると、Appleも早々にセキュリティパッチを用意するものと予想されるので、この記事の賞味期限が短いことをあらかじめ承知願いたい。
- iPod touchでSafariを起動し、Safariは異常終了させるためのURLにアクセスする(あえてリンクは張りません。興味のある方は、「toc2rta」のキーワードで検索してください)
- iPHUCなど必要なツール一式が収録された書庫「Jailbreak」をダウンロード、デスクトップに展開する
- バージョン5.0以降のGNU readlineライブラリが、
/opt/local/lib
ディレクトリにインストールされていることを確認する。Mac OS X付属のもの(/usr/lib/libedit.2.dylib
)は代用不可 - iPod touchをUSBケーブルでMacに接続する
- カレントディレクトリを手順2でダウンロード & 展開したディレクトリへ移し、「
./iphuc
」を実行。最初に実行したときは、なぜかリカバリモードで起動したため、iPod touchを再起動後にiphuc
を実行したところ、ノーマルモードで起動した - 内部コマンド「
getfile
」を利用し、iPod touch上のデータをバックアップ。作業には5分ほど必要 -
iphonefs
ディレクトリに「rdisk0s1」という約300MBのイメージファイルが作成されているので、Finderを使い拡張子「.dmg」を追加する - rdisk0s1.dmgをダブルクリックすると、「
Snowbird3A110a.N45Bundle
」というボリュームがマウントされる - 8のボリュームの
/etc/fstab
を、2でダウンロードした書庫に含まれる「fstab
」で置換、その後アンマウントする - 内部コマンド「
putfile
」を利用し、rdisk0s1.dmgをiPod touchに書き戻す。作業には2~3分必要 -
iphuc
にプロンプトが戻れば転送完了。iPod touchを再起動する
Safariがクラッシュしたときにアクセス不能となるユーザ領域は、FTP / SFTPクライアント「Cyberduck」を使い復活させた。/var/root
にあるシンボリックリンク「Media
」を適当な名前にリネームし、さらに「Mediaold
」フォルダを「Media
」にリネームしたあとiPod touchを再起動すると、音楽も写真も元通りアクセスできるようになった。
ユーザ領域へのアクセスを復活させるには、Cyberduckを利用する |
ディスクイメージの内容を覗き見る
取り急ぎ"勝手アプリ"のインストールに進みたいところだが、まずは抽出したディスクイメージをもとに、iPod touchのシステム構成を調べてみよう。
使えそうなコマンドだが、/bin
には「launchctl
」があるのみ。シェルもなければcp
やls
といった基本コマンドもない。/sbin
も似たようなもので、fsck
やmount
、kextload
といった必要不可欠なコマンドが8種類あるだけだ。/usr/bin
と/usr/sbin
も確認したが、シェル環境で便利に使えそうなコマンドは見あたらない。なお、「help
」を実行するとわかるが、組み込みのシェルはbash 3.2.0だ。
ディレクトリ構成は、Mac OS Xに準じていると判断できる。/Users
はないが、/Applications
と/Library
はある。/System/Library
以下のサブディレクトリも、Extensions
やFonts
、Frameworks
などなど、見覚えのあるものばかりだ。なお、CoreServices
ディレクトリ内にFinder.appとDock.appを見つけることはできなかった。細かい話だが、CoreServices
にあるSystemVersion.plistには、製品名として「OS X」と記載されていた。
次回は、いよいよ"勝手アプリ"を導入する。iPhone用のアプリケーションは動作するのか? など、動作の検証を中心に進める予定だ。