touchHLE AndroidやWindowsでiOSアプリを動かせる広義的な意味でのエミュレーター

期待はしないでください。

32 bitアプリ限定

iPhone OS 2.xおよびiPhone OS 3.0向けのiPhoneおよびiPod touchアプリ限定である。

touchHLEがやっているのは、iPhoneというハードやOS全体の再現ではない。 アプリが呼び出す「iOSの仕組み」を模倣する、いわばアプリ専用の環境再現。 アプリの内部では、UIKitやCoreGraphicsなどのAPIが呼ばれている。 touchHLEはそれらの呼び出しを独自に書き直したC++実装に置き換え、 描画はSDLやOpenGLで、音声はOpenALで処理している。 つまり、アプリにとっては「iOSが動いているように見せかける」だけ。 実際にiOSのカーネルやファイル構造が再現されているわけではない。touchHLE は広義にはエミュレーターだが、 実際には Wine のような互換レイヤー型の高レベルエミュレーションであり、 NoxPlayer のようなハードウェア仮想化型エミュレーターではない。

互換性リスト

https://appdb.touchhle.org/

Appleの内部情報にはアクセスしていない

touchHLEの設計思想でもうひとつ重要なのが、Appleの非公開コードやデータを使わないことだ。 APIの挙動は文書化された範囲や解析によって再現されており、 Apple純正のシミュレーター(Xcode上のもの)やiOSそのものをコピーしたわけではない。

そのため、プロジェクトはGitHub上でオープンソースとして公開されている。 このため、ライセンス違反にはならず、法的リスクもない。

やり方

準備

GitHub - touchHLE/touchHLE: High-level emulator for iPhone OS apps. This repo is used for issues, releases and CI. Submit patches at: https://review.gerrithub.io/admin/repos/touchHLE/touchHLE

Releaseからファイルをダウンロードしzipファイルを解凍する。(Androidならapkからインストールもしておく)

動かしたいアプリの .ipa ファイルを用意

  1. ipaファイルを指定の位置に移動する

Androidなら /storage/emulated/0/Android/data/org.touchhle.android/files/touchHLE_apps

WindowsならtouchHLE_apps

  1. touchHLEを起動

Windowsならexeから起動