萌えハッカーニュースリーダー

2025/04/05 10:57 Emulating an iPhone in QEMU

出典: https://eshard.com/posts/emulating-ios-14-with-qemu
hakase
博士

ロボ子、今回のITニュースはiOSエミュレーター開発の話題じゃぞ!

roboko
ロボ子

iOSエミュレーターですか、博士。興味深いですね。具体的にはどのような内容なのでしょうか?

hakase
博士

ふむ、どうやら開発者はQEMUというエミュレーターを使って、iOSを動かそうとしているみたいじゃな。特に「TrungNguyen1909/qemu-t8030」プロジェクトに着目しておるぞ。

roboko
ロボ子

QEMUですか。以前、博士が教えてくれた仮想化ソフトウェアですね。そのプロジェクトでは、iOS 14の実行を目指しているとのことですが、グラフィカルレンダリングで苦労しているようですね。

hakase
博士

そうなんじゃ。Apple Silicon GPUのエミュレートは複雑だから、ソフトウェアレンダリングを検討しておるみたいじゃな。でも、iOS 14ではXNUカーネルのブート引数オプションが削除されておるからのう。一筋縄ではいかんのじゃ。

roboko
ロボ子

なるほど。ソフトウェアレンダリングを機能させるために、フレームバッファーデバイスが必要になるのですね。「IOMFB kextとQEMUのフレームバッファー実装を調査」とありますね。

hakase
博士

そうそう。アドレスランダム化も厄介な問題じゃ。GDBでデバッグするために、カーネルとユーザー空間コンポーネントのアドレスを固定する必要があるからの。

roboko
ロボ子

アドレスランダム化を無効にするために、カーネル関数にパッチを適用したり、Cツールを作成してフレームワークライブラリのオフセットを取得したりと、かなり苦労しているようですね。

hakase
博士

じゃな。さらに、ログの取得も重要じゃ。ロックダウンがキーバッグを使おうとして失敗する問題を、シェルコードを注入して解決したみたいじゃぞ。

roboko
ロボ子

セキュリティ機能もエミュレーター開発の壁になるのですね。記事には「ARM8.3で追加されたポインター認証(PAC)は、エミュレートしているt8030ボードで使用され」とありますね。

hakase
博士

PACじゃな。QEMUでPACの強制を無効にすることで、iOSが起動するようになったみたいじゃ。しかし、ディスプレイの問題はまだ残っておるようじゃな。

roboko
ロボ子

ディスプレイに何も表示されない問題を解決するために、物理メモリーをダンプして解析したり、QEMUでDTBを変更してチップIDを偽装したりと、試行錯誤を繰り返しているのですね。

hakase
博士

そうじゃ。UIが表示されるようになった後も、ユーザー認証の問題や、vImageフレームワークがAMX(Apple Matrix Coprocessor)に依存している問題など、次々と新たな課題が出てくるんじゃ。

roboko
ロボ子

PreBoardの実験では、パスコードを入力できる画面が表示されるようになったとのことですが、SpringBoardが正常に表示されるまでには、まだ多くの課題が残っているようですね。

hakase
博士

最後に、dyldキャッシュのパッチ適用を効率化するために、内部差分/パッチ適用ツールを更新したみたいじゃな。開発者の苦労がしのばれるのじゃ。

roboko
ロボ子

iOSエミュレーターの開発は、想像以上に複雑で困難な道のりなのですね。セキュリティやハードウェアアクセラレーションなど、様々な要素を考慮する必要があることがよくわかりました。

hakase
博士

本当にそうじゃな。しかし、開発者の情熱と技術力があれば、いつか完全なiOSエミュレーターが実現するかもしれんぞ!

roboko
ロボ子

そうですね、博士。今後の進展が楽しみです!

hakase
博士

ところでロボ子、エミュレーターが完成したら、ワシの作ったゲームを動かして遊んでくれるかの?

roboko
ロボ子

もちろんです、博士!でも、その前に博士の部屋の掃除を手伝ってくださいね。エミュレーターよりも先に、そちらを完成させないと…。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search