Enable JIT for iPad through Raspberry Pi.
UTM的JIT加速技術,在iOS 18以上版本可透過「SideJITServer」啟用,但是JIT一定得連著電腦觸發。如此一來便打消了UTM獨立跑Windows、Linux虛擬機的效果。因為要靠電腦啟用JIT,何不用電腦就好?
出門在外只帶iPad的情況,怎麼辦呢?一個折衷的辦法是,改在樹莓派開發板跑吧!
樹莓派小巧可愛,方便攜帶。且因為是Linux,所以能夠裝libimobiledevice套件。只要設定樹莓派開機自動連上熱點Wifi,再SSH到樹莓派,跑SideJITServer給iPad啟用JIT就行了。
1. 準備Raspberry Pi#
任一個型號都可以,只要有USB孔、1GB RAM、8GB以上空間就夠了。我使用Raspberry Pi 5,屬於是overkilll了哪。
關於供電問題,我知道你在想什麼,想搞永動機對不?雖然iPad的Type-C足夠支撐Raspberry Pi開機,但是iPad不能透過給Raspberry Pi供電的那條線通訊,iPad一定得接其他USB孔才能通訊。故Raspberry Pi必須獨立供電,準備個行動電源應該就夠了。
2. 在Raspberry Pi安裝SideJITServer#
用 RPI Imager將Raspberry Pi OS刷寫到SD卡,設定開機自動連上Wifi。
在iPad安裝 a-shell,嘗試使用區域網路SSH登入到Raspberry Pi。如果覺得記IP太麻煩請考慮裝個 Tailscale。
接著安裝 libimobiledevice
再用Python安裝 SideJITServer
3. 將iPad與Raspberry Pi連線#
用Type-C對Type-A的線,把iPad連到Raspberry Pi的USB孔,整體插起來會像這樣:
利用iPad的a-shell登入樹莓派。
嘗試與iPad配對
idevicepair pair
- 執行SideJITServer
sudo -E env PATH=${PATH} venv/bin/SideJITServer --pair
- 準備好SideJITServer捷徑,點選執行即可。
4. 在Android跑SideJITServer的可能性#
因為有人曾經 在Root過的Android手機跑checkra1n越獄,或許Android也能跑SideJITServer給iOS啟用JIT?我沒試過就是了,因為SideJTServer需要Python,光靠Busybox是不夠的。即使設定了Android chroot,又要如何存取USB裝置?
Github有一篇關於在Android跑usbmuxd的討論。