初代iPod touchが突破口に

初代「iPhone OS」をPC上で再現した開発者現る。オープンソースツールだけを使用

Image:marleyPug/Shutterstock.com

アップル製品のOSは基本的には自社ハードウェア専用とされているものの(一時期、他社にライセンス供与していた頃はあったが)、macOSについては各種ツールのおかげでMac以外でも動かすことができた。かたや、iOSに関してはそうした例はほとんど聞こえてこなかった。

が、初期のバージョンである「iPhone OS」を、オープンソースのプロセッサエミュレータ「QEMU」を使ってPC上でエミュレートに成功した事例が報じられている。

devos50ことMartijn de Vos氏がエミュレートした「iPhone OS 1.0」は、正確には初代iPhone発売後に投入された第1世代のiPod touch向けのものだ。これをリバースエンジニアリングしたものの、マルチタッチ対応やその他のハードウェア部品のシミュレーション方法を考える必要があり、作業に1年以上を費やしたそうだ。

その中でも、iPod touchのハードウェア部品のエミュレートが特に難しかったと説明している。そもそも、iPod touch用の初代iPhone OSが選ばれたのも、iPhone版ではより多くの部品をエミュレートする必要があるからだ。

まして最近のiPhoneともなれば、エミュレートの困難さははるかに跳ね上がる。「現代のアップル製デバイスには、ニューラルエンジン、セキュアエンクレーブ、各種センサーなど、多くのハードウェア部品が追加されており、こうしたデバイスのエミュレーションははるかに困難で時間のかかるものになるだろう」とのことだ。

またiPhone OS 1.0をチョイスした理由は、最近のiOSと比べてセキュリティ対策がほとんど実装されていないからだという。「最も原始的なバージョン」だけに、セキュリティ機構を回避する必要がなかったというわけだ。

興味深いのは、このプロジェクトが実現したのは、アップルのブートローダー「iBoot」のオープンソース実装である「OpeniBoot」のおかげということだ。OpeniBoot開発はずっと前に中止されているが、かつて古いiPhone上でAndroidを動かすことに使われた例もあった。

最終的な成果は、いくつかのバグがあるものの、ほぼ上手く機能しているようだ。タッチ操作はマウスとキーボードで完全に再現され、プリインストールアプリの大半は問題なく動作している。

de Vos氏は、iPhone OSをオープンソースツールによりエミュレートしたのは、これが世界初だと主張している。たとえばCorelliumは「仮想iPhone」を販売しているが(かつてアップルと訴訟となり、後に和解)、すべてのツールとコードは非公開である。

さらに次のプロジェクトとして、de Vos氏は第2世代のiPod touchをiPhone OS 2.1込みでエミュレートしたいと述べている。特に実用性があるとは言えないが、懐かしのハードウェアを最新のPC上で蘇らせて感慨に浸るのもよさそうだ。

関連キーワード: