ついにQEMU上でiPhone 11のエミュレーションに成功!
引用元:https://news.ycombinator.com/item?id=44258670
関連議論のリンクだよ!
Hacker Newsのスレッド(356ポイント、2022年、144コメント)これ→ https://news.ycombinator.com/item?id=30545425
あと、このリポジトリに言及してる関連記事(268ポイント、2ヶ月前、64コメント)これだよ→ https://news.ycombinator.com/item?id=43592409
Issue tracker見た感じ、その後かなり進んでるみたいだよ。
進捗報告だよ!
eShardの記事にiOS 14エミュレーションの詳細があるみたい→ https://eshard.com/posts/emulating-ios-14-with-qemu-part2
QEMUでiOSをエミュレーション、こんな機能があるんだって:
• リストア起動
• ソフトレンダリング
• デバッグ
• ホストとペアリング
• シリアルSSHアクセス
• マルチタッチ
• ネットワーク
• IPA実行
あと、CellebriteがCorelliumを買収したってニュースもあるよ→ https://news.ycombinator.com/item?id=44221982
eShardの取り組みとこのGitHubリポジトリは、知ってる限り結構違うみたい。
eShardの人たちは、このリポジトリの古いバージョンを見つけて、制限されたエミュレータで動かすためにiOSのいろんなところをパッチしまくったらしい。
一方、エミュレータ自体は進歩してて、たぶんeShardのパッチより速く進化してるんじゃないかな。
今の最新コミットでiOSを動かすのに必要なパッチは10命令もなくて、ディスプレイドライバじゃなくソフトレンダリング使うためのフォールバックコードパスを有効にするだけなんだって。
詳しくはここ→ https://github.com/ChefKissInc/QEMUAppleSilicon/wiki/Filesys…
もっとちゃんと見てみたら、エミュレーション時にカーネルとSEP OSにいくつかのパッチがあったよ。
ここにある→ https://github.com/ChefKissInc/QEMUAppleSilicon/blob/6eff3ab…
でも、そんなに広範囲だったり移植が難しかったりするわけじゃないみたい。
だいたいcan_has_debugの戻り値をいじったり、sigcheckをバイパスしたり、launchdをresearch deviceモードにするお決まりのパッチだよ。
「制限されたエミュレータで動かすためにiOSのいろんなところをパッチしまくったらしい」
マジかよ!
プロセス全体をハックしてる感じで、めちゃくちゃ脆そう。
別のバージョンのソフトどころか、ハードウェアが変わったら持続的に移植なんて無理そうだな。
eShardはChefKissIncに、1年くらい前にUIを動かすためにどうすればいいかのパッチ一式を提供したんだよ。
あと、ハードウェア、資金、知識でもプロジェクトを支援してたみたい。
両者とも、同じ共通目標の違う側面から取り組んでるだけなんだよね。
聞くところによると、もうiOS 18は動いてて、26も開発中らしいから、たぶん1年くらいしたらQEMUAppleSiliconもみんなが使えるようになるんじゃないかな!
wikiのリンクありがとうね。
たぶん、エクスプロイトのテストフレームワークを作るためだろうね。
これは間違いなく究極のエミュレーションハックだね!関係者全員おめでとう。
これはHackintoshプロジェクトにもいい兆候だと思う。
もう行き止まりじゃないかも(まだまだ先は長いけど)。
ARM PCが普及してきたら、効率的なエミュレーションもいつか見られるかもね。
ARMはIBM PCみたいにオープンじゃないんだよね。Androidスマホとかも独自カーネルに未公開部分あるし…。
うわ、Springboardまで起動できるのか!それマジで凄いじゃん!
QEMUでiPhone 11をSpringboardまで起動なんて信じられないくらい凄いよ。ChefKissIncチームと貢献したみんな、マジおめでとう!
IPAを復号できるtrollstoreって使えるの?
よく分かんないんだけど、これってどういうこと?
前のコメントへの補足ね。App StoreのIPAはAppleアカウントと紐付くDRMで暗号化されてるんだ。実行時にOSが復号するんだけど、普通の復号法はアプリを実行してデバッガーつけてメモリから読むんだよ。
trollstoreは脱獄いらないiOSの非公式アプリストア。(IPAはiOSアプリのファイル形式ね)暗号化されたIPAを復号してコードとか見れるアプリもあるよ。AndroidのJavaアプリを逆コンパイルするのと似てるかも。
まさにこれ聞きに来た!もしそうならヤバいね!
セキュリティ関連をエミュレートして理解・回避できるかが重要っぽいね。その辺はどう?銀行アプリとかDMVアプリをエミュレートで動かせたらマジ凄いのに。
これ、QEMUのメイン開発ライン(upstream)に取り込もうとした方がいいんじゃない? そうしないと、前のやつみたいに結局ダメになっちゃいそうだしさ。
そういえばさ、QEMUのm68kでClassic Macってどう動くの? ちょっと関係ないけど気になったんだよね。
ちゃんと動くよ! Classic MacをQEMU m68kで動かす技術的な話は、ここのフォーラムでしてるよ。
https://www.emaculation.com/forum/viewforum.php?f=37&sid=6a9…
あんまり良くないんだよね。Mini vMacを使った方がいいと思う。PPCのエミュレーションは問題なく動くけどね。
これってiOS全体をエミュレーションしてるの? それともiOSのバイナリだけ動かしてるの?
あと、なんでわざわざiPhone 11って書いてあるの? そこがちょっと気になったんだよね。
iPhone 11のハードウェアをエミュレーションしてるんだよ。その上でiOS 14とsepOS(Apple Security Enclaveのファームウェア)が動いてるんだ。
多分だけど、iPhone 11のバイナリだからじゃない?
WindowsでQEMUを使うときのちゃんとしたドキュメント、まだないんだよね。オプションとか引数とかさ。ネット上のバラバラな情報や、Linux版の情報を参考にしながら何とかするしかないんだ。
正直言って、QEMUで遊んでる人のほとんどはUnix系OSを使ってると思うよ。WindowsにはVirtualBoxとかVMware、Hyper-Vみたいに使いやすい仮想化オプションがいっぱいあるし、WSLもあるしね。だからWindowsユーザーがQEMUを使うのは、こういう特別なケースだけだろうね。
いやいや、それ公平じゃないって! VirtualBoxはWindowsだとWHPX使わないのに、LinuxではKVMバックエンドがあるし。VMwareは重いし、ダウンロードに登録したくないんだよね。Hyper-VはFreeRDP使うから、ゲストOS側が対応してないとダメで、簡単じゃないんだ。
Linuxではlibvirtとかvirt-managerでQEMU使ってるけど、UIで設定できる表層的な使い方しかしてないよ。
超初心者な質問なんだけど、QEMUでエミュレートしたiPhone 11にさ、iOSアプリってインストールできんの? これって結構重要なポイントじゃん?
もっとコメントを表示(1)
超クール!これってさ、俺の1番好きなiPhoneモデルなんだよね。QEMUで動かせるようになったとかマジで凄い!
2番目のコメントの人へ。 specificallyに何が気に入ってるの? 教えて欲しいな。ぶっちゃけさ、ここ3年でiPhone色々使ったけど、そんなにモデルごとの違いってわかんなくなくない?