
完全先取り! iPod touch開発
第1回:iPod touchにアプリケーションがインストールできる不思議
著者:masuidrive
公開日:2007/11/27(火)
iPhoneの解析からアプリケーション開発がはじまった
iPhone上のファイルへアクセスできるようになると、各種ファイルの解析がはじまりました。
iPhoneのディレクトリ/フォルダ構成は「第1回:iPod touchはハンドヘルドMac!?」で解説した通りMac OS Xとほぼ同じだったため、Macを使ったことのある開発者であれば、ほとんどのファイルの内容は容易に想像が付いたようです。
まずiPhoneには隠し機能として多くのネットワークサービスが組み込まれており、それらがオフになっていることが判明しました。そこで、起動後に読み込まれる設定ファイルを書き換えることでサービスを起動し、外部から容易にファイルの変更ができるようになりました。

図3:JailBreakの仕組み
さらに解析が進み、iPhoneにインストールされているiTunesやiPhoto、Safariは「/Applications」にアプリケーションごとに「アプリ名.app」という名称フォルダに格納されていることもわかりました。
さらにOS Xのフレームワークやライブラリを保存している「/Libraries」フォルダには、Mac OS Xで使われている「Cocoa」というフレームワークが採用されていることも判明しました。つまり開発手法も、Mac OS Xと同様であると推測できるわけです。
Mac OS Xの開発環境である「Xcode」はPowerPCとIntelに向けたバイナリを生成できるのですが、標準ではARMバイナリの生成には対応していません。実はXcodeでは、Linuxなどで広く採用されているオープンソースのコンパイラ「GCC(Gnu Compiler Collection)」が利用されており、GCC自体はARMにも対応しています。
そこでXcode内のGCCではなく、ARMのアプリケーションが生成できるように設定したGCCを別途導入することで、ARM向けのバイナリの作成が可能になるのです。
またGCCはOS Xの開発言語として採用されている「Objective-C」をサポートしています。実行バイナリ形式である「Mach-O」はサポートされていませんでしたが、iPhone用に新たにプロジェクトが立ち上げられMach-Oをサポートする「Toolchain」がリリースされました。
これらの成果から、iPhoneが発売されて4週間ほどで、iPhone上で動く「Hello World」を表示するはじめての非公式アプリケーションが登場したのです。
次回は
JailBreakの手法が試されている頃、10月17日にアップル社が、サードパーティによるアプリケーション開発を認め、SDKを2008年2月にリリースすることが発表されました。
筆者は、アップル社がWebアプリケーションだけでなく、SDKを使ったネイティブアプリの開発を認めた背景には、ハッカーによる非公式アプリの盛り上がりがあると感じています。
公式SDKがリリースされるまでに、もう少し時間があります。次回は現在有志によってリリースされている非公式SDKを使って、実際にアプリケーションを作ってみましょう。