ゲームエミュレータや仮想マシンアプリなど、パフォーマンスを必要とするサイドロードアプリにて利用されていた「JIT」という仕組みですが、どうやらiOS 18.4以降では使用できないように変更が加えられた模様。
App Storeで配布されるアプリでは元々禁止されていたJIT利用でしたが、サイドロードアプリでまで利用できなくなると…影響範囲はそれなりに広くなりそうです。
JIT
【JIT】とは「Just-In-Time Compilation」の略で、実行時コンパイラなどと訳される仕組みのことです。
すごく簡単に言うと…JITはアプリやそのファイルを実行するときに解析・コンパイルを行う技術であり、これにより各種環境への最適化などによるパフォーマンスの向上が見込めます。
ですが、iOSやiPadOSなどでは、事前にコンパイル…アプリの形に作っておく仕様でなければApp Storeで配布できないように制限。
こちらにも理由はあり、事前にコンパイルされていないために安全性の検証が行えず、例えば悪意のあるファイルがJITで実行されたとしてもそれを排除できる保証がないということにもなります。
そのため、AppleはApp Storeで配布するアプリではJITを有効化できないようにしている…と思われます。
活用されているアプリ
そんなJITですが、App Storeから配布されているアプリでは使えないものの、AltStoreなど経由でインストールする…いわゆるサイドロードでインストールするアプリでは使用可能な状況です。
実際、いくつかのゲームエミュレーターやUTMのような仮想マシンアプリでは、JITでのパフォーマンス向上を前提として、フルパフォーマンスで動作するようにしているアプリも。
逆に、それらアプリではJITを使用できない環境ではフルパフォーマンスはでず、ゲームエミュレーターであれば動作できなくなるゲーム機種がある、仮想マシンアプリであれば動作できないOSがある、などの問題が発生します。
既存のJIT有効化手法に対策
PSA: Early report shows that in iOS 18.4, Apple may have blocked JIT enablement through get-task-allow, the technique used by AltJIT, SideJIT, Jitterbug, and similar solutions. Avoid updating to iOS 18.4 until there is more information. https://t.co/k4Fy5gQ0Uo
— UTM (@UTMapp) February 23, 2025
これまでサイドロードであればJIT有効化できていたiOS / iPadOSですが、先日ベータテストが開始された「iOS 18.4 / iPadOS 18.4」に関して「既存の手法ではJITが有効化できないようになった」との報告が行われています。
AltStoreのJIT有効化プロセスなども含め、これまで利用されてきた有効化手法に対策?が行われたため、現時点ではiOS 18.4 / iPadOS 18.4 Beta 1では既存手法でJIT有効化が行えないと言うことに。
iOS 18.4でも完全にJIT有効化ができないわけではないが…
JIT on iOS 18.4, very tedious approach, and might stop working in the future (you know what I mean)
(shoutout to @Little_34306 for lending me his Mac & iPhone) pic.twitter.com/gDMMU7eYnG
— Duy Tran (@TranKha50277352) February 28, 2025
その後、今回のパッチに対する解析等が進んでいるのですが、現時点でiOS 18.4 Beta 1にてJITを有効化する手段は…あるにはある。と言うことが報告されています。
ですが、こちらの手段ではデバッガーを利用したものになっており、これまでの様な「アプリ起動時にポチッとJITを有効化」とは異なり、一般利用できる手法とは全く言えないとのこと。
そのため、現時点ではJITを利用したい場合、iOS 18.3.1 / iPadOS 18.3.1以下を使用する必要があると言うことになります。
脱獄環境について
ちなみに、これまでのお話は「非脱獄環境」でのもので、脱獄環境であればJITの有効化も可能であろうとされています。
が、そもそもiOS 18.4 / iPadOS 18.4の脱獄は現時点では行えないため、どちらにせよJITを利用したい場合はiOS 18.3.1以下を維持する以外に現状での解決策はなさそうです。
〆
JIT有効化が必要なアプリは少ないとはいえ、それらアプリを利用していた方にとっては死活問題となり得そうです…。
コメント