ようやく新しい「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用のアプリケーションは動作するのか? など、動作の検証を中心に進める予定だ。