OCLP.net

OpenCore Legacy Patcher のパッチの内容

OpenCore Legacy Patcherにはシステムの安定性を確保するために多数のパッチがあります。このページではどのようなパッチが使用されているのか、そしてなぜこれらのパッチが推奨または必須になるのかについて説明します。

なお、このページはDortaniaが公開するOpenCore Patcher Terminology (英語)の内容をベースに作成し、一部にはあのかぼ版に掲載されている注釈や独自のコンテンツが含まれています。Kabocy 氏による追加の説明や注釈付きの内容は「あのかぼ版」(OpenCoreの設定) (注入される Kext) (ルートパッチ: オンディスクパッチ)をご覧ください。

OpenCoreの設定

OpenCore Legacy Patcherでは、システムの安定性を確保するために多数のパッチが使用されています。ここでは、使用されるパッチの説明とそれらの推奨される理由や必要とされる理由について説明します。

ACPI -> Add

  • SSDT-CPBG
    • 理由: Big Sur の初期ビルドにおける Arrandale Macでのカーネルパニックを解決
    • ロジック: ACPIでダミーのCPBGデバイスを無効化
    • モデル: MacBookPro6,x および iMac11,x
  • SSDT-PCI
    • 理由: Sandy および Ivy Bridge の Windows オーディオ サポートにパッチを適用する
    • ロジック: PCI0 の 32 ビット割り当て制限を削除
    • モデル: すべての Sandy および Ivy Bridge Mac (MacPro6,1 を除く)
  • SSDT-DGPU
    • 理由: 2011年のMacBook ProでソフトウェアベースのdeMUXを利用しdGPUを無効化
    • ロジック: ACPI 経由で電源オフ要求を dGPU に送信
    • モデル: デッド dGPU を搭載した MacBookPro8,2 および MacBookPro8,3

ACPI -> Patch

  • EHCxXHC1パッチ
    • 理由: 正常なUSB動作に必要
    • ロジック: 新しいモデルの USB マップによる USB ポート機能の接続と破壊を回避
    • モデル: 中程度または高度な SMBIOS でスプーフィングする場合は、すべてのモデルが必要
  • BUF0からBUF1パッチ
    • 理由: SSDT-PCI とペアリングするため
  • _INIからXINIパッチ
    • 理由: SSDT-DGPU とペアリングするため

Booter -> Patch

  • HW_BIDからOC_BIDへのリルート
    • 理由: サポートされていないモデルで macOS インストーラーを使用できるようにするため
    • ロジック: ボード ID macOS チェックをカスタム変数にリルートします。
    • モデル: VMM スプーフィングを使用するすべてのシステム

Booter -> Quirks (癖)

  • ForceBooterSignature
    • 理由: 休止状態(ハイバネーション)のサポートをを確実にするため
    • ロジック: boot.efi を騙して OpenCore が Apple のファームウェアであると認識させる
    • モデル: すべてのモデルで必要

DeviceProperties -> Add

  • PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)
  • PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)
    • 理由: アップグレードされた iMac で明るさコントロールが動作することを確認するために必要
    • ロジック: AppleBackLight プロパティを設定
    • モデル: アップグレードされた NVIDIA Metal GPU を搭載した iMac11,x および iMac12,x
  • PciRoot(0x0)/Pci(0x2,0x0)
    • 理由: アップグレードされた iMac のスリープ問題を解決するために内部 GPU を無効化
    • ロジック: macOS をだまして iGPU を汎用 PCI デバイスであると認識させる
    • モデル: アップグレードされた Metal GPU を搭載した iMac12,x

Kernel -> Patch

  • SMCパッチ
    • 理由: SMC ファームウェアのアップデートを回避するために必要
    • ロジック: AppleSMC.kext 内のsmc-versionをパッチし、完全な機能を使用するには SMC-Spoof.kext が必要
    • モデル: SMBIOS をスプーフィングする場合はすべてのモデルが必要
  • IOHIDFamilyパッチ
    • 理由: 古いハードウェア上の macOS での HID 周辺機器のサポートに必要
    • ロジック: IOHIDFamily を騙して、常にリカバリを起動していると認識させる
    • モデル: Penryn CPU (Core2 シリーズ)
  • Force FileVault on Broken Sealパッチ (壊れたシールに FileVault を強制)
    • 理由: ルートパッチが適用されたMacでFileVaultを使用可能にするため
    • ロジック: APFS.kextにFileVaultサポートを常にtrue (真)と返すよう強制する
    • モデル: ルート パッチが必要なすべてのモデル
  • Library Validation Enforcementパッチ(ライブラリ検証適用パッチ)の無効化
    • 理由: 非メタル ルート ボリューム パッチはライブラリ検証テストに合格しない
    • ロジック: ライブラリ検証関数を常に不要と返すように強制する
    • モデル: 非Metal GPU
  • SurPlusパッチ
    • 理由: macOS 11.3 ~ 12.0.1 では、安定したブートのためにシステムが CPU でRDRANDサポートを必要とする
    • ロジック: RDRANDコードに予め決められた値を返すように強制する
    • モデル: Ivy Bridge 以前のすべての Mac
  • kern.hv_vmm_presentパッチのリルート
    • 理由: サポートされていないハードウェアに macOS をインストールおよびアップデートできるようにするため
    • ロジック: ユーザースペースにシステムを仮想マシンとして認識させる
    • モデル: VMM スプーフィングを使用するすべてのモデル

Kernel -> Quirks (癖)

  • ThirdPartyDrives
    • 理由: サードパーティ製ドライブでの休止状態(ハイバネーション)解除の問題を回避するため
    • ロジック: AppleAHCIPort.kext をパッチしてサポートする
    • モデル: 標準 SATA ポートを備えたすべてのモデル
  • PanicNoKextDump
    • 理由: カーネルパニック時のkextダンプを回避し、カーネルのデバッグを容易にするため
    • ロジック: 不要な情報をダンプしないようにカーネルにパッチを適用
    • モデル: ユーザーによって Verbose Boot が有効になっている場合にのみ設定

Misc -> Security

  • SecureBootModel
    • 理由: T2 モデルのスプーフィングでネイティブ OS アップデートを許可するため
    • ロジック: T2 のセキュア エンクレーブ識別子を設定します。
    • モデル: Minimal以上でT2モデルをスポーフィングする全モデル

NVRAM -> Add

  • -v keepsyms=1 debug=0x100
    • 理由: macOS のカーネルと kexts のデバッグ情報を確認するために使用され、パニック時の再起動を回避するため
    • ロジック: NVRAM に引数を追加
    • モデル: ユーザーによって Verbose Boot が有効になっている場合にのみ設定
  • -liludbgall
    • 理由: Lilu とプラグインのデバッグ ログを有効にするため
    • ロジック: NVRAM に引数を追加
    • モデル: Kext DEBUG がユーザーによって有効になっている場合にのみ設定
  • msgbuf=1048576
    • 理由: メッセージ バッファ サイズを 1MB に設定し、ブート ログが確実に保持されるようにするため
    • ロジック: NVRAM に引数を追加
    • モデル: Kext DEBUG がユーザーによって有効になっている場合にのみ設定
  • agdpmod=pikera
    • 理由: MacBookPro9,x の GPU 切り替えを修正するため
    • ロジック: NVRAM に引数を追加
    • モデル: MacBookPro9,x
  • shikigva=80 unfairgva=1
  • shikigva=128 unfairgva=1 -wegtree
    • 理由: アップグレードされた AMD Metal GPU を搭載したモデルの DRM サポートを修正するため
    • ロジック: NVRAM に引数を追加
    • モデル: アップグレードされた AMD Metal GPU を搭載したモデル
  • -revasset
    • 理由: VMM スプーフィングを使用するときにコンテンツ キャッシュを有効にするため
    • ロジック: NVRAM に引数
    • モデル: VMM スプーフィングを使用する全モデル
  • amfi=0x80
    • 理由: Apple Mobile File Integrity を無効にして、ルート パッチを許可にするため
    • ロジック: NVRAM に引数
    • モデル: 未署名のルート パッチを必要とするすべてのモデル

UEFI -> ProtocolOverrides

  • GopPassThrough
    • 理由: UGA ファームウェアではあるが GOP GPU を搭載したマシンで適切な出力を行うため
    • ロジック: UGA プロトコル インスタンスの上に GOP プロトコル インスタンスを提供する
    • モデル: MacPro3,1、iMac7,1-8,1

注入されたKext

以下は、Kexts OpenCore Legacy Patcher が起動時にメモリに何を注入するかについての説明です。注入された Kext の説明は以下の通りです。

Acidanthera

  • Lilu
    • 理由: 他のkextのエンジンにパッチを適用するため
    • モデル: すべてのモデルで必要
  • WhateverGreen
    • 理由: 適切なサポートを確保するために GPU フレームワークと kext にパッチを適用
    • モデル: スプーフィングする場合や非純正GPUを持つ全モデルで必要
  • CPUFriend
    • 理由: IOx86PlatformPlugin にパッチを適用して以前の CPU プロファイルを復元するため
    • モデル: 最小限以上のスプーフィングを使用するすべてのモデル
  • AirportBrcmFixup
    • 理由: IO80211 および co にパッチを適用して、サポートされていないカードのネットワーク サポートを修正し、ネイティブ カードのバグも修正するため (つまり、ネットワーク パフォーマンスのランダムな低下)。
    • モデル: BCM943224、BCM94331、BCM94360、BCM943602
  • BlueToolFixup
    • 理由: BlueTool にパッチを適用して、Monterey で Bluetooth 機能を有効にするため
    • モデル: BCM94360 以前のワイヤレス モジュールまたはサードパーティ製チップセットを搭載したすべてのモデル
  • Bluetooth スプーフィング
    • 理由: システムによる認識のために、特定の Bluetooth チップセットに追加のデータを挿入するため
    • モデル: BCM2070 または BCM2046 チップセットを搭載したモデル
  • FeatureUnlock (Night Shift)
    • 理由: CoreBrightness.framework にパッチを適用して、サポートされていないモデルで Night Shift を有効にするため
    • モデル: 2011年またはそれ以前
  • FeatureUnlock (Sidecar/AirPlay)
    • 理由: SidecarCore.framework と AirPlaySupport.framework にパッチを適用して、サポートされていないモデルで Mac への Sidecar と AirPlay を有効にするため
    • モデル: Metal 対応 GPU を搭載したすべてのモデル
  • RestrictEvents
    • 理由: MacPro7,1 のメモリエラーーを無効にするため
    • モデル: Mac Pro および Xserve
  • CryptexFixup
    • 理由: 非AVX2.0 CPUに非AVX2.0 Cryptexをインストールするため
    • モデル: Ivy Bridge 以前のすべての CPU
  • AutoPkgInstaller
    • 理由: 自動ルートパッチを許可するため
  • NVMeFix
    • 理由: サードパーティの NVMe サポートを修正するため
  • RSRHelper
    • 理由: ルート パッチ適用済みインストールでの Rapid Security Response サポートを修正するため

Ethernet (イーサネット)

  • nForceEthernet
    • 理由: Catalina 以降のネットワークを解決するために古い NVIDIA Ethernet kext を挿入する
    • モデル: 2010年以前のNVIDIA Ethernetが必要
  • MarvelYukonEthernet
    • 理由: Catalina 以降のネットワークを解決するために古い Marvel Ethernet kext を挿入する
    • モデル: 2008 年以降の Marvel Ethernet が必要
  • CatalinaBCM5701Ethernet
    • 理由: Big Sur でのネットワークを解決するために古い Broadcom Ethernet kext を挿入する
    • ロジック: 既存の BCM5701Ethernet と衝突しないように、競合するシンボルをパッチする
    • モデル: 2011 年以前の Broadcom Ethernet が必要
  • Intel82574L
    • 理由: MacPro でのイーサネット サポートを解決するため
    • モデル: MacPro3,1 – 5,1
  • CatalinaIntelI210Ethernet
    • 理由: Ivy 以前の Mac での Intel i210/i225 NIC サポートを修正するため
  • AppleIntel8254XEthernet
    • 理由: MacPro でのEthernet サポートを解決するため
    • モデル: MacPro3,1 – 5,1

Firewire

  • IOFireWireFamily
    • 理由: FireWire ブー​​トのサポートを可能にするため
  • IOFireWireSBP2
    • 理由: FireWire ブー​​トのサポートを可能にするため
  • IOFireWireSerialBusProtoColTransport
    • 理由: FireWire ブー​​トのサポートを可能にするため

Maps

  • USBMap
    • 理由: USB を修正するために古い USB マップ プロファイルを挿入する
    • モデル: 中程度以上のスプーフィングを行う場合、すべてのモデルと 2012 年以前のモデルが必要

SSE

  • AAMouSSE
    • 理由: SSE4.2 命令を、AMD Metalドライバーに必要な SSE4,1 CPU と互換性のあるコードに変換
    • モデル: MacPro3,1
  • telemetrap
    • 理由: telemetry.plugin が実行されないようにする。SSE4,1 CPU に必要
    • モデル: Penryn CPU

Wi-Fi

  • IO80211ElCap
    • 理由: El Capitan から WiFi ドライバーを再挿入するため
    • モデル: BCM94328、BCM94322、および Atheros チップセット
  • corecaptureElCap.kext
    • 理由: El Capitan から WiFi ドライバーを再挿入するため
    • モデル: BCM94328、BCM94322、および Atheros チップセット

Misc (その他)

  • AppleBackLightFixup
    • 理由: NVIDIA Metal GPU アップグレードした iMac 用の AppleBacklight にパッチを適用するため
    • モデル: アップグレードされた NVIDIA Metal GPU を搭載した iMac11,x、iMac12,x
  • AppleIntelPIIXATA
    • 理由: MacPro3,1 での IDE サポートを修正するため
    • モデル: MacPro3,1
  • AppleIntelMCEDisabler
    • 理由: Catalina 以降のデュアル ソケット サポートを修正するため
    • モデル: Mac Pro および Xserve
  • SMC-Spoof (SMC スプーフィング)
    • 理由: SMC バージョンを 9.9999 に偽装します
    • モデル: 最小限またはそれ以上のスプーフィングを行う全モデルで必要
  • AppleRAIDCard
    • Xserve に AppleRaidCard サポートを追加するため
  • AMDGPUWakeHandler
    • 理由: 2011 15/17インチの MacBook Pro にソフトウェアベースの Demux を追加するため
  • AppleIntelCPUPowerManagement および AppleIntelCPUPowerManagementClient
    • 理由: Ivy Bridge以前のCPU電源管理を復元するため
  • AppleUSBTopCase
    • 理由: macOS VenturaでUSBキーボードサポートを復元するため
  • AppleUSBMultitouchおよびAppleUSBTrackpad
    • 理由: macOS VenturaでUSBトラックパッドサポートを復元するため
  • ASPP-Override
    • 理由: ACPI_SMC_PlatformPlugin を X86PlatformPlugin よりも優先し、ファームウェアのスロットルを無効にするようにするため
  • BacklightInjector
    • 理由: アップグレードされた GPU を搭載した iMac の明るさを修正するため
  • BigSurSDXC
    • 理由: Ivy-Bridge 以前の Mac で SDXC サポートを復元するため
  • Bluetooth-spoof (Bluetooth スプーフィング)
    • 理由: 従来の Bluetooth を偽装して、Monterey 以降で動作させるため
  • Innie
    • 理由: すべての PCIe ドライブが内部にあるように表示させるため
    • モデル: MacPro3,1 以降および Xserve3,1 以降
  • KDKlessWorkaround
    • 理由: KDKlessパッチ適用済みシステムでの macOS アップデートに役立つ
  • LegacyUSBVieoSupport
    • 理由: レガシー USB iSight サポートを修正するため
  • MonteAHCIPort
    • 理由: MacBookAir6,x にある標準 SSD の SSD サポートを修正するため
  • NoAVXFSCompressionTypeZlib
    • 理由: 12.4 以降の AVX1.0 より前のシステムでの AVXFSCompressionTypeZlib のクラッシュを防ぐため
  • SimpleMSR
    • 理由: Nehalem+ MacBook でのファームウェアのスロットリングを防ぐために BD PROCHOT を無効にするため
  • LegacyKeyboardInjector
    • 理由: MacBook5,2のファンクションキーを修正するため

オンディスクパッチ

残念ながら、完全な機能を実現するためには特定のオンディスクパッチが必要です。以下は、サポートされているパッチの内訳です。(macOS 11.0以降)

拡張機能 (Extensions)

  • AppleHDA
    • 理由: オーディオサポートを実現するために El Capitan の AppleHDA を再追加
    • モデル: iMac7,1 および iMac8,1

Legacy Wireless Patches (macOS 12.0以降)

BCM94328、BCM94322、および Atheros WiFi カードに適用可能

CoreServices

  • WiFiAgent.app

/usr/libexec

  • airportd

NVIDIA Kepler グラフィックス アクセラレーション パッチ (macOS 12.0以降)

拡張機能 (Extensions)

  • GeForce.kext
  • GeForceAIRPlugin.bundle
  • GeForceGLDriver.bundle
  • GeForceMTLDriver.bundle
  • GeForceVADriver.bundle
  • NVDAGF100Hal.kext
  • NVDAGK100Hal.kext
  • NVDAResman.kext
  • NVDAStartup.kext

Frameworks

  • OpenCL (libCLVMNVPTXPlugin.dylib、NVPTX.dylib)
    • 理由: Kepler ハードウェア アクセラレーション サポートを再追加
  • Metal
    • 理由: 3802 ベースの GPU は 13.3 で壊れているため、Metal を 13.2.1 にダウングレードする必要がある

PrivateFrameworks

  • MTLCompiler (MTLコンパイラ)
    • 理由: 3802 ベースの GPU は 13.3 で壊れているため、MTLCompiler を 13.2.1 にダウングレードする必要がある
  • GPUCompiler (GPUコンパイラ)
    • 理由: 3802 ベースの GPU は 13.3 で壊れているため、GPUCompiler を 13.2.1 にダウングレードする必要がある

Intel Ivy Bridge グラフィックス アクセラレーション パッチ (macOS 12.0以降)

拡張機能 (Extensions)

  • AppleIntelIVBVA.bundle
  • AppleIntelFramebufferCapri.kext
  • AppleIntelGraphicsShared.bundle
  • AppleIntelHD4000Graphics.kext
  • AppleIntelHD4000GraphicsGLDriver.bundle
  • AppleIntelHD4000GraphicsMTLDriver.bundle
  • AppleIntelHD4000GraphicsVADriver.bundle

PrivateFrameworks

  • AppleGVA/AppleGVACore
    • 理由: DRM サポートを有効にする
  • MTLCompiler (MTLコンパイラ)
    • 理由: 3802 ベースの GPU は 13.3 で壊れているため、MTLCompiler を 13.2.1 にダウングレードする必要がある
  • GPUCompiler (GPUコンパイラ)
    • 理由: 3802 ベースの GPU は 13.3 で壊れているため、GPUCompiler を 13.2.1 にダウングレードする必要がある

拡張機能 (Extensions)

  • OpenCL (libCLVMIGILPlugin.dylib)
    • 理由: Ivy Bridge ハードウェア アクセラレーション サポートを再追加するため
  • WebKit (com.apple.WebProcess.sb)
    • 理由: Ivy Bridge Safariレンダリングサポートを再追加するため
  • Metal
    • 理由: 3802 ベースの GPU は 13.3 で壊れているため、Metal を 13.2.1 にダウングレードする必要がある

Intel Haswell グラフィックス アクセラレーション パッチ (macOS 13.0以降)

拡張機能 (Extensions)

  • AppleIntelFramebufferAzul.kext
  • AppleIntelHD5000Graphics.kext
  • AppleIntelHD5000GraphicsGLDriver.bundle
  • AppleIntelHD5000GraphicsMTLDriver.bundle
  • AppleIntelHD5000GraphicsVADriver.bundle
  • AppleIntelHSWVA.bundle
  • AppleIntelGraphicsShared.bundle

Frameworks

  • Metal
    • 理由: 3802 ベースの GPU は 13.3 で壊れているため、Metal を 13.2.1 にダウングレードする必要があります。

PrivateFrameworks

  • MTLCompiler (MTLコンパイラ)
    • 理由: 3802 ベースの GPU は 13.3 で壊れているため、MTLCompiler を 13.2.1 にダウングレードする必要がある
  • GPUCompiler (GPUコンパイラ)
    • 理由: 3802 ベースの GPU は 13.3 で壊れているため、GPUCompiler を 13.2.1 にダウングレードする必要がある

Intel Broadwell グラフィックス アクセラレーション パッチ (macOS 13.0以降)

拡張機能 (Extensions)

  • AppleIntelBDWGraphics.kext
  • AppleIntelBDWGraphicsFramebuffer.kext
  • AppleIntelBDWGraphicsGLDriver.bundle
  • AppleIntelBDWGraphicsMTLDriver.bundle
  • AppleIntelBDWGraphicsVADriver.bundle
  • AppleIntelBDWGraphicsVAME.bundle
  • AppleIntelGraphicsShared.bundle

Intel Skylake グラフィックス アクセラレーション パッチ (macOS 13.0以降)

拡張機能 (Extensions)

  • AppleIntelSKLGraphics.kext
  • AppleIntelSKLGraphicsFramebuffer.kext
  • AppleIntelSKLGraphicsGLDriver.bundle
  • AppleIntelSKLGraphicsMTLDriver.bundle
  • AppleIntelSKLGraphicsVADriver.bundle
  • AppleIntelSKLGraphicsVAME.bundle
  • AppleIntelGraphicsShared.bundle

AMD Legacy Vega グラフィックス アクセラレーション パッチ (macOS 13.0以降)

拡張機能 (Extensions)

  • AMDRadeonX5000.kext
  • AMDRadeonVADriver2.bundle
  • AMDRadeonX5000GLDriver.bundle
  • AMDRadeonX5000MTLDriver.bundle
  • AMDRadeonX5000Shared.bundle
  • AMDShared.bundle

AMD Legacy Polaris グラフィックス アクセラレーション パッチ (macOS 13.0以降)

拡張機能 (Extensions)

  • AMDRadeonX4000.kext
  • AMDRadeonX4000HWServices.kext
  • AMDRadeonVADriver2.bundle
  • AMDRadeonX4000GLDriver.bundle
  • AMDMTLBronzeDriver.bundle
  • AMDShared.bundle

AMD Legacy GCN グラフィックス アクセラレーション パッチ

拡張機能 (Extensions)

  • AMD7000Controller.kext
  • AMD8000Controller.kext
  • AMD9000Controller.kext
  • AMD9500Controller.kext
  • AMD10000Controller.kext
  • AMDRadeonX4000.kext
  • AMDRadeonX4000HWServices.kext
  • AMDFramebuffer.kext
  • AMDSupport.kext
  • AMDRadeonVADriver.bundle
  • AMDRadeonVADriver2.bundle
  • AMDRadeonX4000GLDriver.bundle
  • AMDMTLBronzeDriver.bundle
  • AMDShared.bundle

非Metalグラフィックス アクセラレーション パッチ (macOS 11.0以降)

一般パッチ

  • IOSurface.kext
    • 理由: ログイン時の即時ログアウトを修正するため
    • ロジック: Catalina IOSurface へのダウングレード
    • 注: AMD および Intel の場合、addMemoryRegion/removeMemoryRegion最初の条件付きジャンプを非条件付きジャンプに変更する追加のパッチが追加。

条件付きジャンプと無条件ジャンプの違い

  • 条件付きジャンプ: CPUが特定の条件を満たした場合にのみジャンプする命令。例えば、ある条件が真である場合にジャンプする。
  • 無条件ジャンプ: いつでも必ずジャンプする命令。条件をチェックせずにジャンプする。

AMDおよびIntelのGPUを搭載したMacにおいて、IOSurface.kextの特定のオフセット(0xdb520xdbc6)で条件付きジャンプ命令を無条件ジャンプ命令に変更することにより、特定のメモリ管理の問題を回避し、ログイン時の問題を修正するパッチを追加しています。

ドロップされたアクセラレーション バイナリ

  • NVIDIA バイナリ
    • GeForceGA.bundle
    • GeForceTesla.kext
      • IOFree パニックをスキップ – Mojave以降
        • オフセット0x5CF9Aで次のバイトを0xEBに置き換える
      • addMemoryRegion/removeMemoryRegion呼び出しを回避する
        • Offset0x5527とで0x77993、次のバイトを次のバイトに置き換えます。0x909090909090
        • オフセット0x5527および0x77993で次のバイトを0x909090909090に置き換える
    • GeForceTeslaGLDriver.bundle
    • GeForceTeslaVADriver.bundle
    • NVDANV50HalTesla.kext
    • NVDAResmanTesla.kext
      • 0x1ea59a – 0x1ea5b3: nop
      • VSLGestalt を IOLockLock または同じ長さの他の既知のシンボルに置き換える
  • NVIDIA Web ドライバー バイナリ
    • GeForceWeb.kext
    • NVDAGF100HalWeb.kext
    • NVDAGK100HalWeb.kext
    • NVDAGM100HalWeb.kext
    • NVDAGP100HalWeb.kext
    • NVDAResmanWeb.kext
    • NVDAStartupWeb.kext
    • GeForceTeslaWeb.kext
    • NVDANV50HalTeslaWeb.kext
    • NVDAResmanTeslaWeb.kext
      • 理由: NVIDIA Maxwell および Pascal GPU の非Metalアクセラレーションを可能にするため
  • AMD/ATI バイナリ
    • AMD2400Controller.kext
    • AMD2600Controller.kext
    • AMD3800Controller.kext
    • AMD4600Controller.kext
    • AMD4800Controller.kext
    • AMD5000Controller.kext
    • AMD6000Controller.kext
    • AMDFramebuffer.kext
    • AMDLegacyFramebuffer.kext
    • AMDLegacySupport.kext
    • AMDRadeonVADriver.bundle
    • AMDRadeonVADriver2.bundle
    • AMDRadeonX3000.kext
    • AMDRadeonX3000GLDriver.bundle
    • AMDShared.bundle
    • AMDSupport.kext
    • ATIRadeonX2000.kext
    • ATIRadeonX2000GA.plugin
    • ATIRadeonX2000GLDriver.bundle
    • ATIRadeonX2000VADriver.bundle
  • Intel 第 5 世代バイナリ
    • AppleIntelFramebufferAzul.kext
    • AppleIntelFramebufferCapri.kext
    • AppleIntelHDGraphics.kext
    • AppleIntelHDGraphicsFB.kext
    • AppleIntelHDGraphicsGA.plugin
    • AppleIntelHDGraphicsGLDriver.bundle
    • AppleIntelHDGraphicsVADriver.bundle
  • Intel 第 6 世代バイナリ
    • AppleIntelHD3000Graphics.kext
    • AppleIntelHD3000GraphicsGA.plugin
    • AppleIntelHD3000GraphicsGLDriver.bundle
    • AppleIntelHD3000GraphicsVADriver.bundle
    • AppleIntelSNBGraphicsFB.kext
      • ボードIDパッチ
        • 元のボード ID を更新されたモデルに置き換える
    • AppleIntelSNBVA.bundle

Frameworks (フレームワーク)

  • CoreDisplay.framework
    • ロジック: Mojave からコピーし、大幅に修正/シム
  • IOSurface.framework
  • OpenGL.framework
    • ロジック: Mojave からコピー

PrivateFrameworks (プライベートフレームワーク)

  • GPUSupport.framework
    • ロジック: Mojave からコピー
  • SkyLight.framework
    • ロジック: Mojave からコピーし、大幅に修正/シム

3つの違いとは

「OpenCore Legacy Patcher のパッチの内容」ではOCLPで利用される主要なパッチを「OpenCoreの設定」と「注入された Kext」、「オンディスクパッチ」の3つのカテゴリーに分けて紹介しています。

古いMacでも新しいmacOSの機能をフルに活用できるようになるOpenCore Legacy Patcherプロジェクトでは欠かせないこの3つパッチの違いを簡単に紹介します。

提供: あのかぼ

1. OpenCoreの設定

OpenCoreの設定は、config.plistファイルに記載された設定に基づいて動作します。この設定ファイルは、ACPIテーブルの修正をはじめとするハードウェアの動作やブートプロセスを制御します。

主な機能

  • ACPIテーブルの修正
    • これにより、古いハードウェアが新しいmacOSバージョンで適切に動作するようになります。
  • ブートプロセスの制御
    • 正しい設定を行うことで、macOSがスムーズに起動することを保証します。

2. 注入されるKext

注入されるKextは、ESP(EFI System Partition)に格納された後、メモリに展開され、ハードウェアのサポートを追加します。これにより、ディスク上のファイルには変更を加えずに必要なパッチを適用することができます。

主な機能

  • ハードウェアサポートの追加
    • 例えば、Wi-Fiカードやグラフィックカードのドライバを追加することで、macOSの機能を拡張します。
  • メモリ上のパッチ適用
    • ディスクに変更を加えないため、安全かつ効率的にパッチを適用できます。

3. オンディスクパッチ (ルートパッチ)

ルートパッチは、macOSがインストールされたディスク (ルートディスク)に直接適用されるパッチです。メモリ上で行われるパッチでは対応しきれない問題を解決するために使用されます。

主な機能

  • ディスク上の問題解決
    • ディスクに直接適用することで、メモリ上のパッチでは対応できない問題を修正します。
  • macOSの直接的なサポート
    • 例えば、最新のmacOS機能やセキュリティアップデートに対応するために必要な修正を行います。

OpenCore Legacy Patcherを使用するメリットはここに

ここまでOpenCoreの設定注入された Kextオンディスクパッチのそれぞれの違いについて紹介してきました。OpenCore Legacy PatcherではOpenCoreをバックボーンとしたモダンで強力なmacOS のサポートと、DortaniaによるレガシーMacへの開発により大変安定したmacOSの導入が容易に実現できます。

特にOCLPを使用することでそれぞれのパッチの適用についてエンドユーザは何ら意識することなくOpenCore Legacy PatcherのアプリからGUIによる操作で簡単に作業が完結します。
これはOpenCoreのビルド時にOCLPが設定されたMac向けにKext (カーネル拡張)や各種定義をユーザに代わって準備してくれるためで、ここにOCLPを使用する大きなメリットがあります。