iPhone や iPad のアプリ サイドローディングやゲーム エミュレーションのコミュニティをフォローしている場合は、JIT というものについて聞いたことがあるかもしれません。JIT は、コードを即座に再コンパイルすることで特定の状況でパフォーマンスを向上できるため、多くのアプリ開発者が特に注目しています。
残念ながら、今週末に多くの人が指摘し始めたように、Apple が金曜日に公開した最初の iOS & iPadOS 18.4 開発者ベータ 1 では、JIT 機能がデバッガーのみに制限されているようです。つまり、AltJIT、SideJIT、Jitterbug などのよく使用されるユーティリティが、最新のファームウェア バージョンですぐに影響を受ける可能性があります。
JIT(Just In Time Compilation)は、ゲームエミュレータなどのサイドロードアプリをiPhoneやiPad上で、これまで以上にスムーズに動作させることを可能にします。これは、通常のプログラミングコードを、デスクトップコンピューターからモバイルデバイスまで、ほとんど、あるいはすべてのデバイスでスムーズに動作する汎用的なマシンコードに変換するプロセスを簡素化するためです。さらに、JITはあらゆる状況に柔軟に対応します。
ほとんどのゲームはリリース時に実行するために設計されたコンソール向けに設計されており、ゲームのプログラミング コードを汎用マシン コードにリアルタイムで変換することで、iPhone などの新しいホスト デバイスでゲームをより効率的に実行できるため、エミュレーターはこの機能を有効活用できます。
あるいは、Appleが好むと思われるAOT(Ahead Of Time Compilation)という手法もあります。この手法では実行前にコードをコンパイルするため、Appleのセキュリティシステムが実行前にコードが悪意のあるものではないことを確認できるようになります。一方、JITではコード実行中にコンパイルされるため、Appleのセキュリティシステムはこの確認を行うことができません。
どうやら、iOS ハッカー兼開発者の Duy Tran 氏は JIT を活用した 32 ビットの変換レイヤーに取り組んでいたようですが、これも通常の JIT の有効化を妨害するという Apple の決定によって阻止されてしまいました。
Appleは長らくApp StoreのJIT対応アプリを厳しく批判してきましたが、サイドロードアプリはApp Storeの審査プロセスを回避しているため、これまで影響を受けてきませんでした。しかし、Appleがプライベートエンタイトルメントを通じてJITを制限したため、脱獄コメンテーターの@MasterMikeが「通常のサイドロードアプリには決して存在しない」と表現したように、サイドロードアプリはiOS 18.4以降ではJITを使用できなくなるようです。
一般ユーザーがデバッガーで JIT 指向のプロジェクトをいじくり回すのは特に現実的ではないため、JIT を再び有効にする唯一の現実的な方法は、最新のファームウェアでジェイルブレイクが利用できるようになることであると思われますが、これは iOS 16.5.1 以降の新しい arm64e (A12 以降) デバイスでは実現しておらず、現時点ではこれらのデバイス用の新しいジェイルブレイクはまだ見当たりません。
JITは、iPhoneやiPadユーザーにとって、特にエミュレーションを重視するユーザーにとって、多くの重要なユースケースを提供します。Appleは昨年夏、Deltaのリリース以降、公式App Storeで「レトロ」コンソール向けのエミュレーションをようやく許可し始めました。AltStoreサイドローディングユーティリティも管理するDeltaの開発者たちは、この理由からJITを強く支持してきました。
Appleは自社プラットフォーム上のエミュレータコミュニティをひそかに抑制しようとしているように見えるかもしれませんが、これは意図されたものではなく、むしろ意図せぬ副作用のようです。JITは、マルウェアがエミュレートされたゲームと同様にJITを悪用する可能性があるため、ユーザーをセキュリティ上の問題にさらす可能性があります。とはいえ、Appleが自社デバイスでこれを許可したくない理由は理解できます。
また、パフォーマンス向上のためにJITを利用したサイドロードされたエミュレータアプリは、JITがなくても使用可能ですが、JITありの場合よりもパフォーマンスが低下する可能性があることにも留意してください。とはいえ、これはユーザーエクスペリエンスに関する不満というよりは、むしろその程度です。
それでも、脱獄と同じように、これはユーザーの選択であるべきだと考えています。なぜなら、すべてのiPhoneやiPadユーザーがAppleに決定を委ねる必要はないからです。端末でクールなことができるなら、セキュリティを下げてもいいという人もいます。ですから、ユーザーがセキュリティの強化と緩和を選択できるようなOS設定があれば、Appleは素晴らしい対応をするでしょう。
AppleがiOS & iPadOS 18.4以降でJITを廃止したことに憤りを感じていますか?ぜひ下のコメント欄でご意見をお聞かせください。