

長年にわたり、Hackintoshツールのおかげで、macOSはApple以外のコンピューターでも実行可能でした。しかし、iOSに関しては、少なくともこれまでは他のプラットフォームで実行できた人はほとんどいませんでした。ある開発者が、QEMUを使ってコンピューター上でiPhone OS(この名前を覚えていますか?)の最初のバージョンをエミュレートすることに成功しました。
iPhoneハードウェアなしでエミュレートされたiPhone OS 1.0
devos50としても知られるMartijn de Vos氏は、iPhoneが発売された後の2007年に第一世代のiPod touch向けにリリースされたiPhone OSの最初のバージョンをエミュレートするために、多くのリバースエンジニアリングを駆使しました。開発者は、マルチタッチのサポートやその他のハードウェアコンポーネントなどをシミュレートする方法を見つけ出す必要があったため、プロジェクトの作業には1年以上かかりました。
de Vos氏はブログ記事で、iPod touchのハードウェアコンポーネントのエミュレーションが難しかったと説明しています。そのため、開発者はiPhoneではなくiPod向けに作られたiPhone OSの最初のビルドをエミュレートすることを選択しました。iPhone版を動作させるには、さらに多くのコンポーネントをエミュレートする必要があったためです。
同時に、デ・ヴォス氏がiPhone OS 1.0を選択した理由も、このバージョンには最近のOSバージョンに比べてセキュリティメカニズムがはるかに少ないためです。「最近のAppleデバイスには、ニューラルエンジン、セキュアエンクレーブ、様々なセンサーなど、多くの追加ハードウェアコンポーネントが搭載されており、これらのデバイスのエミュレーションははるかに困難で時間がかかります」と開発者は説明しました。
興味深いことに、このプロジェクトはAppleのブートローダーのオープンソース実装であるOpeniBootのおかげで実現しました。このプロジェクトはずっと前に中止されましたが、ユーザーはこれによってiPhoneやiPod touchの初代にAndroidをインストールするといったことが可能になりました。
しかし、それは機能的でしょうか?
いくつかのバグはあるものの、最終的なプロジェクトはかなり機能的であるようで、iPhone OS 1.0 はオープンソースの仮想化プラットフォームである QEMU で正常にエミュレートされました。
システムはマウスとキーボードで完全に操作可能で、プリインストールされたアプリのほとんどは問題なく動作します。システムがクラッシュする状況もありますが、iOSのバージョンを別のプラットフォームでエミュレートしているのを見るのは、それでも感心させられます。
開発者によると、オープンソースツールを用いてiPhoneオペレーティングシステムをエミュレートしたのはおそらくこれが初めてとのことです。例えば、Corelliumは仮想iOSデバイスを販売していますが、ツールとコードはすべて非公開です。独自の仮想マシンを作成するのは簡単ではありませんが、de Vos氏は興味のある人のためにブログ記事で詳細を公開しています。
de Vos 氏は次のプロジェクトで、iPhone OS 2.1 とともにリリースされた第 2 世代の iPod touch をエミュレートしたいと考えています。
havebin.com を Google ニュース フィードに追加します。
FTC: 収益を生み出す自動アフィリエイトリンクを使用しています。詳細はこちら。