【脱獄不要】iPhoneでAndroidゲームが動く「Husk 2.0」、Unity製からGTA SAまで起動

  • ブックマーク
  • Feedly
  • -
    コピー

独立開発者のLeviidev氏が、iPhoneでAndroidのアプリやゲームを動かすソフトウェア【Husk 2.0】を公開しました。開発者は150本超のゲームとアプリに対応したとしています。脱獄せずに使える導入方法もありますが、App Store以外からのインストールと、JIT(実行時コンパイル)を有効にする設定が必要です。さらに、10月19日時点では既に3.0が公開されています。

Husk 2.0

AndroidゲームのコードをiPhoneで実行する仕組み

現在のREADMEによると、Huskには2つの実行方式があります。1つは、ゲームの64ビットのAndroid用ネイティブコードをiPhoneのCPUで直接実行し、OSとのやり取りを肩代わりする「翻訳層」です。もう1つは、QEMUでAndroidの派生OSであるLineageOSを起動するエミュレーション方式です。開発者は、後者はCPUの動きもソフトウェアで再現するため、翻訳層より大幅に遅いと説明しています。

翻訳層の対応一覧にはUnity、Unreal Engine 4、cocos2d-x、Godot 3と4、SDL2とSDL3(LÖVEを含む)が並びます。GameActivity、NativeActivityを使うアプリや、Rockstarの『GTA: San Andreas』も挙げられています。読み込めるのはAPKと、XAPK・APKM・APKSなどの分割パッケージです。これは開発者が示した対応範囲で、同じエンジンを使う全ゲームの動作を保証するものではありません。

ただし、同じリポジトリの翻訳層の設計文書には、まだアプリを起動できない実験段階という記載が残っています。READMEの動作説明と文書の進捗が食い違っていますから、導入する版の対応状況は、リリースノートも併せて確認するとよいでしょう。

既に3.0を公開、対応数と動作速度は別の問題

2.0の公開ノートは10月11日付で、ウインドウ管理や新しい画面構成、150本超のゲームとアプリへの対応を挙げています。続く10月17日付の3.0では、Androidゲーム366本が新たに動作するようになったとのことです。PS4ゲームのPKG形式への対応、TrollStore経由のJIT、iOS 15.5への対応も記載されています。

一方、3.0の既知の問題には、一部のUnity 6製ゲームで描画が遅いことや、『Bloodborne』は動くものの動作が非常に悪いことも明記されています。起動できるゲームが増えても、快適に遊べるかはゲームごとに異なります。2.0の150本超と3.0の追加366本は集計の対象も違うため、単純に足して総対応数とはみなせません。

内蔵JITにもペアリングとLocalDevVPNが必要

内蔵StikJITの手順では、iOS 26以降、LocalDevVPN、そのiPhone用のペアリングファイルを必要条件に挙げています。ペアリングファイルは、デバッグ接続する相手を端末に認識させる役割を持ちます。iOS 27ではiPhone上でペアリングでき、それ以外ではパソコンで作ったファイルを取り込みます。「内蔵」というのは別のJIT用アプリを省けるということで、VPN接続や初期設定は必要です。

別アプリのStikDebugを使う方法もあります。対応はiOS 17.4以降で、こちらもペアリングファイルと端末内の通信をつなぐループバックVPNが必要です。StikDebugの開発者は、現在はApp Storeで配信しておらず、公式の配布元登録かIPAファイルから入れるよう案内しています。

Husk自身の導入方法は、SideStoreやAltStoreへの配布元登録、またはIPAファイルのインストールです。開発者の説明では、QEMUを組み込んだライセンス上の条件と、実行中にデバッガを接続する権限が必要なことから、App Storeへは出せないとしています。なお、最低対応OSは現在のREADMEがiOS 16.0以降、3.0の公開ノートがiOS 15.5対応と、資料によって記載が異なります。

日本の代替ストアとサイドロードの違い

日本ではiOS 26.2以降、代替アプリマーケットプレイスでのアプリ配信が可能になりました。Appleの日本語資料では、代替配信のアプリにも公証という基本的な審査を求めています。当ブログでもお伝えした通り、App Store以外で配信する場合にもAppleの審査は関わります。

AltStoreの比較表では、公証済みアプリを扱うAltStore PALと、IPAファイルを入れるAltStore Classicを区別しています。PALの提供地域はEU・日本・ブラジルです。一方、Classic側にはアプリの有効期限7日、インストール上限3本という制限が掲載されています。期限への対応は署名の更新であり、毎回アプリを削除して入れ直すという話ではありません。

同じ比較表にはPALがJIT対応、ClassicがJIT非対応とありますが、Huskは別途StikJITなどでJITを有効にする手順を案内しています。ストアの比較表だけでHuskの動作可否を決めると、この手順を見落とします。HuskのREADMEが案内する導入経路はサイドロードですから、日本で代替ストアが使えることと、そこからHuskを入手できるかは別の問題です。

小龍的にはこう思った

Huskで面白いのは、Android向けのゲームを動かすために、CPUの命令だけでなくOSとのやり取りまで作り直しているところです。iPhoneとAndroid機が同じARM64のCPUを使っていても、アプリが求める機能は違います。JITの許可を得た後もゲームごとの互換性や描画速度が問題になることは、3.0の既知の問題にも表れています。

READMEが示す制約では、翻訳層の対象は64ビットのネイティブコードを含むAPKです。Javaだけで書かれたアプリはエミュレーション方式を使うようになっています。また、Google Playサービス経由のサインイン、クラウドセーブ、購入は利用できません。遊びたいゲームがこれらに依存する場合は、起動できても進行状況の引き継ぎや購入に支障が出ます。

普段遊んでいるAndroidゲームをiPhoneへ移したい人は、ログインやセーブの仕組みまで含めて、対応を前もって確かめておいた方がよいでしょう。Huskは、サイドロードやJITの設定を自分で行い、ゲームごとの動作を試したい人に向けたマニアックな仕様のものとなっています。そもそもエミュレータを使用してゲームをするような方はそのあたりはよくご存知と思われます。

iOS脱獄時代を彷彿とさせますが、もちろん前提として、制約があることさえも楽しめるような方でないと、シミュレータを楽しむことはできないんじゃないかと思います。

 

記事は以上です。

(記事情報元:GitHub(Leviidev/Husk)、Huskリリースノート、StikDebug、AltStore FAQ、Apple Developer)

Visited 5 times, 5 visit(s) today
  • ブックマーク
  • Feedly
  • -
    コピー

この記事を書いた人