OpenCore 0.5.9 から 0.6.0 に更新

OpenCore 0.6.0が公開されたので、0.5.9から更新しました。まずは0.6.0になって更新されたファイルを差し替えるだけでもとりあえず動きました。次にconfig.plistを正しく変更しました。

使用したのは、ASUS Z390 ROG MAXIMUS XI HERO、Intel 9900K、 Radeon RX 580の組み合わせのこちらのマシンです。

更新ファイルだけ置き換える

とりあえず、更新されたファイルだけ差し替えてみました。ESPの中身のうち、OpenCoreの配布物に含まれないファイルは0.5.9からそのまま引き継ぎました。0.5.9から引き継いだのは、

  • 最新にしてあったKextsフォルダの中身、
  • ACPIフォルダの中身はそのまま、
  • Resourcesの中身もそのまま、
  • とりあえず0.5.9のconfig.plistをそのまま使います。

0.6.0のファイルと入れ替えたのは、

  • BOOTフォルダの中身 (BOOTx64.efi)
  • Bootstrapフォルダの中身 (Bootstrap.efi)
  • Driversフォルダの中身 (AudioDxe.efi, OpenCanopy.efi, OpenRuntime.efi)
  • OpenCore.efi
  • Toolsフォルダの中身 (OpenShell.efiだけ)

です。quirkが変わったりしているようなので、config.plistも正しく更新すべきですが、とりあえずは、0.5.9から0.6.0へは、何もしなくても移行できました。

config.plistを正しく更新する

一応は動いたのですが、config.plistを正しく設定することにしました。OpenCore 0.6.0に付属しているsample.plistと現行のCoffee Lake-S用のconfig.plistをProperTreeを使った比較しました。変更点は以下のキーでした。

Booter–>Quirks–>ProvideMaxSlide

0.6.0で追加されました。タイプはNumberです。デフォルトでは0で、sample.plistでも0が設定してあります。KASLRのスライド値の最大を決めるようです。デフォルトの0はスライドさせないという意味かと思います。使用しているマザーボード(ASUS Z390 ROG MUXIMUS XI)はスライド幅に余裕があった気がしましたので、最大の255に設定してみました。KASLRの考え方からして、スライド幅が大きいほどセキュリティが向上するはずです。今のところ問題なく起動しています。もしも起動失敗することがあれば減らせば良いです。KASLRとスライドについてはこちらの記事で説明しました。

Misc–>Security–>BlacklistAppleUpdate

0.6.0で無くなりました。なので0.5.9のまま起動すると、画面に一瞬、BlacklistAppleUpdateに対するスキームが無いよというエラーメッセージが出ます。Appleのペリフェラルファームウェアのアップデートを無視する機能との説明です。指定する場所が、Misc–>Securityの場所から、次に説明するNVRAMに移動したようです。なので0.5.9のconfig.plistからこのキーを削除しました。

NVRAM–>7C436110-AB2A-4BBB-A880-FE41995C9F82–>run-efi-updater

0.6.0で追加されました。上記のBlacklistAppleUpdateの代わりです。設定場所がこちらに移動しました。macOSのEFIファームウェアアップデートを上書きします。これをNoに設定すると、macOSのファームウェアアップデート機能を阻止します。APFSに移行した時に、EFIがAPFSから起動できるようにアップデートされたのですが、あのようなことを阻止する機能のようです。実機ではないhackintoshならばファームウェアが全く違いますからNoに設定するのが妥当です。

UEFI–>APFS–>GlobalConnect

0.6.0で追加されました。タイプはBooleanでデフォルトはFalseです。0.5.9のconfig.plistにはありませんので、Falseとして追加しておきました。APFSドライバーをロードする時の、ハンドル(ポインターみたいなもの?)の扱いを、通常のやり方から再帰的なやり方に変更するオプションらしいです。これをTrueにすると起動に時間がかかるけど、古いHPラップトップがAPFSにアクセスするためには必要らしいです。なので古いHPラップトップ向けの設定ですね。

UEFI–>Output–>UgaPassThrough

0.6.0で追加されました。タイプはBooleanでデフォルトはFalseです。これもデフォルト通り、Falseとして追加しておきました。GOPプロトコルの上にUGAプロところう提供すると、説明にあります。UGAは古いプロトコルなのでもはやサポートされていない場合もあるのですが、古いEFIではUGAが画面表示に必要なこともあるらしいです。EFIの画面表示に問題がなければFalseで良いようです。

UEFI–>ProtocolOverrides–>AppleFramebufferInfo

0.6.0で追加されました。タイプはBooleanでデフォルトはFalseです。これもデフォルト通り、Falseとして追加しておきました。Apple Framebuffer Infoプロトコルをインストールし直す機能との説明です。VMや古いMacのフレームバッファ情報を上書きしてmacOS 10.4の古いEFIブートとの互換性を改善するとのことです。問題なければFalseで良いようです。

まとめ

OpenCore 0.5.9から0.6.0に移行しました。まずは新しくなったファイルを一つ一つ差し替えました。そのままで起動しました。次に、より正しく設定するために、config.plistを以下のように書き換えました。diffコマンドで0.6.0と0.5.9のconfig.plistを比較しています。<で示す行が追加した行で、>で示す行が削除した行です。

% diff config_060.plist config_059.plist
197,198d196
< <key>ProvideMaxSlide</key>
< <integer>255</integer>
648a647,648
> <key>BlacklistAppleUpdate</key>
> <true/>
704,705d703
< <key>run-efi-updater</key>
< <string>No</string>
801,802d798
< <key>GlobalConnect</key>
< <false/>
872,873d867
< <key>UgaPassThrough</key>
< <false/>
907,908d900
< <key>AppleFramebufferInfo</key>
< <false/>