ブート ROM

仮想マシンが起動に使うブート ROM と SEP ブート ROM を選びます。このページでは、仮想マシンが使っている ROM の確認方法と、オープンソースの ROM と Apple の ROM の切り替え方法を説明します。

確認と切り替え

vphone-cli vm info myphone                                    # shows rom and seprom
vphone-cli vm config myphone --rom openavb --seprom opensep   # open-source ROMs
vphone-cli vm config myphone --rom apple --seprom apple       # Apple's ROMs

切り替えは、どちらの方向でも復元なしで、仮想マシンの次回の起動から反映されます。

オプション値ROM
--romopenavbバンドルに含まれる OpenAVB
--romappleVirtualization.framework の AVPBooter(マシン専用のパッチ済みコピーがある場合はそれ)
--romファイルのパスその他の任意のブート ROM
--sepromopensepバンドルに含まれる OpenSEP
--sepromappleVirtualization.framework の AVPSEPBooter
--sepromファイルのパスその他の任意の SEP ブート ROM

どちらのブート ROM も同じパッチ済みの LLB を読み込み、どちらの SEP ROM も復元時にインストールされた SEP ファームウェアを読み込みます。そのため、復元は必要ありません。

Info

OpenAVB で起動する仮想マシンを復元するには、VPhone.bundle 2.10.1 以降が必要です。

仮想マシンが使う ROM

新しい仮想マシンは、Virtualization.framework に含まれるクローズドな ROM ではなく、2 つのオープンソースの ROM から起動します。

  • OpenAVB はブート ROM である AVPBooter の代わりです。パッチが不要なので、fw patch は変更を加えません。
  • OpenSEP は SEP ブート ROM である AVPSEPBooter の代わりです。

両方を使うと、iBoot と SEPOS より前に実行されるコードに Apple が書いたものはなくなります。以前のバージョンで作成した仮想マシンは、切り替えるまで Apple の ROM を使い続けます。

ROM の出どころ

どちらの ROM も、固定した上流のコミットからビルドされた状態で VPhone.bundle に含まれています。それぞれの README に、ビルドし直してバイト単位で照合する方法が記載されています。

詳しくは、OpenAVB と OpenSEP の研究記録をご覧ください。

関連項目