App Storeには多数のアプリが無償で公開されていますが、なかでも私のイチ推しは「Labyrinth LE」。早い話、ボールを穴に入れるゲームですが、内蔵の加速度センサーを使うところがポイント。微妙な傾きにも反応するので、子供の頃遊んだポケットゲーム (正確な名前を忘れました) のように遊べます。いや、ホント、時が経つのを忘れてしまいますよ。
さて、今回はiPhone 3Gに搭載されたシステム「OS X iPhone 2.0」について。デフォルトの状態では、カーネルのバージョンやらディレクトリ構造やらを知る術はないが、いわゆる"脱獄 (JailBreak)"を敢行すれば、ある程度の情報は把握できるようになる。先日「PwnageTool」がリリースされたので、早速試してみた次第だ。
まずはSSHの仕込みから
まずは簡単にJailBreakの流れを。脱獄七つ道具 (?) の1つ「PwnageTool」をGETしたあと、iPhone 3G / iPod touchを接続、PwnageToolを起動してファームウェアの書き換えを行えばいい。作業の具体的な手順については、こちらのレポートを参照してほしい。DFUモードに入るところ (電源ボタンとホームボタンを10秒間押し続けたあと電源ボタンだけ放す) と、ファームウェアイメージを指定するとき[option]キーを押すことさえ間違えなければ、スムーズに進むはずだ。
万事うまく行けば、iPhone 3G / iPod touchのホーム画面に「Cydia」というアプリが現れる。これはDebian GNU/Linux由来の「apt」をベースとしたパッケージ管理ツールで、アプリケーションを選び画面の指示に従って操作するだけでダウンロードとインストールをこなしてくれるというスグれものだ。
まず筆者が行ったのは、「OpenSSH」と「MobileTerminal」のインストール。ユーザ名は「root」、パスワードは1.x時代と同じ6文字 (念のため伏せておきます。iPod touchの場合、高山植物を意味する英単語でOKでした) を入力すればログイン完了、これでいよいよ探検のスタートだ。
なお、今回はiPod touchを対象に作業を行った。様子を見て問題なさそうであれば、iPhone 3GでもJailBreakを行い、iPhone 3G独自の部分を探ってみようと考えている。
OS X iPhone 2.0でわかったこと
OS X iPhoneは、Mac OS Xと同様下層レイヤー (Darwin) に各種フレームワークとGUIをかぶせた複層構造になっていることは、以前お伝えしたとおり。そこでディレクトリ構造など基本部分の説明は省き、バージョン2.0以降に加えられた変更点を中心に分析を進めてみた。以下、新しくわかったこと / 確認できたことを順不同・箇条書きで列挙してみよう。
- カーネルはDarwin 9.3.1 (xnu-1228.6.76)
- スクリーンショットは「
/private/var/mobile/Media/DCIM/
」ディレクトリ以下に保存される -
/System/Library/Frameworks
ディレクトリに、Mac OS Xにはない「CoreLocation.framework」がある。位置情報取得用のフレームワークか? - 各種言語に対応する入力システム (計16種) は、
/System/Library/TextInput
ディレクトリに保管されている。日本語用は「TextInput_ja.bundle」 - TextInput_ja.bundleの辞書ファイルは、約12MBの「kanadict.dat」。ローマ字の綴りに対応するかな/漢字の変換候補が、大量に収められている
-
/var (/private/var)
ディレクトリ以下がユーザ領域。/var/mobile
がMac OS Xの/Users/
ユーザ名に相当する。基本的なディレクトリ構造は以前と変わらない模様 - App Storeのダウンロードには、
/var/mobile/Media/Downloads
ディレクトリが一時領域として使用される。ダウンロード完了後は、/var/mobile/Applications
ディレクトリ以下へインストールされる
紙幅が尽きたので、今回はここまで。次回は特定のテーマに絞り、OS X iPhone 2.0のちょっとアレ、もといレアなTIPS情報などをお届けしたいと考えている。