【コラム】
OS X ハッキング!
247 小さなOS X「iPod touch」をあれこれイジる(2) 〜脱獄編〜
2007/10/12
ようやく新しい「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用のアプリケーションは動作するのか? など、動作の検証を中心に進める予定だ。
ヘッドライン
- アップル「Aperture 3」発表、プロ向けの性能にiPhotoの容易さを融合[02:28 2/10]アップル
- Appleの「A4」プロセッサとは何か? - エンジニアらの意見[01:54 2/10]アップル
- 医療ソリューション企業Epocrates、iPadは医療現場で人気と報告 - 臨床医2割が購入意向[21:00 2/9]アップル
- 米Apple CEOジョブズ氏がNYで秘密の会合 - 大手新聞社幹部らを訪問[21:00 2/9]アップル
- コーレル、「Corel WinDVD 2010」のアップデートを公開[20:46 2/9]ソフト
- Microsoft、Windows 7の「バッテリ交換」警告問題に回答[20:33 2/9]Windows 7
- ネットユーザーがキーボードでこだわるポイント - アイシェアが調査[19:53 2/9]周辺機器
- クレオ、"ブライダル"に欠かせないソフト「筆まめ Braidal 6」2製品を発売[19:42 2/9]ソフト
- ドスパラ、ドイツ「ROCCAT」製ゲーミングマウスとキーボードを販売開始[19:39 2/9]ドスパラ
- 米Micron台湾とNanya、42nmの2GビットDDR3を共同で開発[18:47 2/9]自作







