mirror of
https://github.com/dortania/OpenCore-Legacy-Patcher.git
synced 2026-06-21 22:50:51 +10:00
build.py: Add ECM-Override
This commit is contained in:
@@ -8,6 +8,8 @@
|
|||||||
- Drops Rosetta requirement on Apple Silicon Macs
|
- Drops Rosetta requirement on Apple Silicon Macs
|
||||||
- Note building from source will require Python 3.11 or newer and up-to-date Python modules
|
- Note building from source will require Python 3.11 or newer and up-to-date Python modules
|
||||||
- Resolve dGPU support for MacBookPro14,3 in macOS Sonoma
|
- Resolve dGPU support for MacBookPro14,3 in macOS Sonoma
|
||||||
|
- Resolve USB ethernet support in macOS Sonoma
|
||||||
|
- For Ethernet dongles based on ECM protocol (ex. Realtek)
|
||||||
- Increment Binaries:
|
- Increment Binaries:
|
||||||
- OpenCorePkg 0.9.3 - release
|
- OpenCorePkg 0.9.3 - release
|
||||||
- Lilu 1.6.6 - release
|
- Lilu 1.6.6 - release
|
||||||
|
|||||||
@@ -1761,6 +1761,24 @@
|
|||||||
<key>PlistPath</key>
|
<key>PlistPath</key>
|
||||||
<string>Contents/Info.plist</string>
|
<string>Contents/Info.plist</string>
|
||||||
</dict>
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>Arch</key>
|
||||||
|
<string>x86_64</string>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>USB Ethernet - ECM</string>
|
||||||
|
<key>Enabled</key>
|
||||||
|
<false/>
|
||||||
|
<key>MaxKernel</key>
|
||||||
|
<string></string>
|
||||||
|
<key>MinKernel</key>
|
||||||
|
<string>23.0.0</string>
|
||||||
|
<key>BundlePath</key>
|
||||||
|
<string>ECM-Override.kext</string>
|
||||||
|
<key>ExecutablePath</key>
|
||||||
|
<string></string>
|
||||||
|
<key>PlistPath</key>
|
||||||
|
<string>Contents/Info.plist</string>
|
||||||
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>Block</key>
|
<key>Block</key>
|
||||||
<array>
|
<array>
|
||||||
|
|||||||
Binary file not shown.
@@ -33,6 +33,20 @@ class BuildWiredNetworking:
|
|||||||
else:
|
else:
|
||||||
self._prebuilt_assumption()
|
self._prebuilt_assumption()
|
||||||
|
|
||||||
|
# Always enable due to chance of hot-plugging
|
||||||
|
self._usb_ecm_dongles()
|
||||||
|
|
||||||
|
|
||||||
|
def _usb_ecm_dongles(self) -> None:
|
||||||
|
"""
|
||||||
|
USB ECM Dongle Handling
|
||||||
|
"""
|
||||||
|
# With Sonoma, our WiFi patches require downgrading IOSkywalk
|
||||||
|
# Unfortunately Apple's DriverKit stack uses IOSkywalk for ECM dongles, so we'll need force load
|
||||||
|
# the kernel driver to prevent a kernel panic
|
||||||
|
# - DriverKit: com.apple.DriverKit.AppleUserECM.dext
|
||||||
|
# - Kext: AppleUSBECM.kext
|
||||||
|
support.BuildSupport(self.model, self.constants, self.config).enable_kext("ECM-Override.kext", self.constants.ecm_override_version, self.constants.ecm_override_path)
|
||||||
|
|
||||||
def _on_model(self) -> None:
|
def _on_model(self) -> None:
|
||||||
"""
|
"""
|
||||||
@@ -63,7 +77,7 @@ class BuildWiredNetworking:
|
|||||||
support.BuildSupport(self.model, self.constants, self.config).enable_kext("nForceEthernet.kext", self.constants.nforce_version, self.constants.nforce_path)
|
support.BuildSupport(self.model, self.constants, self.config).enable_kext("nForceEthernet.kext", self.constants.nforce_version, self.constants.nforce_path)
|
||||||
elif isinstance(controller, device_probe.Marvell) or isinstance(controller, device_probe.SysKonnect):
|
elif isinstance(controller, device_probe.Marvell) or isinstance(controller, device_probe.SysKonnect):
|
||||||
support.BuildSupport(self.model, self.constants, self.config).enable_kext("MarvelYukonEthernet.kext", self.constants.marvel_version, self.constants.marvel_path)
|
support.BuildSupport(self.model, self.constants, self.config).enable_kext("MarvelYukonEthernet.kext", self.constants.marvel_version, self.constants.marvel_path)
|
||||||
|
|
||||||
# Pre-Ivy Bridge Aquantia Ethernet Patch
|
# Pre-Ivy Bridge Aquantia Ethernet Patch
|
||||||
if isinstance(controller, device_probe.Aquantia) and controller.chipset == device_probe.Aquantia.Chipsets.AppleEthernetAquantiaAqtion:
|
if isinstance(controller, device_probe.Aquantia) and controller.chipset == device_probe.Aquantia.Chipsets.AppleEthernetAquantiaAqtion:
|
||||||
if not self.model in smbios_data.smbios_dictionary:
|
if not self.model in smbios_data.smbios_dictionary:
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ class Constants:
|
|||||||
self.mce_version: str = "1.0.0" # AppleMCEReporterDisabler
|
self.mce_version: str = "1.0.0" # AppleMCEReporterDisabler
|
||||||
self.btspoof_version: str = "1.0.0" # Bluetooth-Spoof
|
self.btspoof_version: str = "1.0.0" # Bluetooth-Spoof
|
||||||
self.aspp_override_version: str = "1.0.1" # ACPI_SMC_PlatformPlugin Override
|
self.aspp_override_version: str = "1.0.1" # ACPI_SMC_PlatformPlugin Override
|
||||||
|
self.ecm_override_version: str = "1.0.0" # AppleUSBECM Override
|
||||||
self.rsrhelper_version: str = "1.0.0" # RSRHelper
|
self.rsrhelper_version: str = "1.0.0" # RSRHelper
|
||||||
self.amfipass_version: str = "1.3.1" # AMFIPass
|
self.amfipass_version: str = "1.3.1" # AMFIPass
|
||||||
self.amfipass_compatibility_version: str = "1.2.1" # Minimum AMFIPass version required
|
self.amfipass_compatibility_version: str = "1.2.1" # Minimum AMFIPass version required
|
||||||
@@ -502,6 +503,10 @@ class Constants:
|
|||||||
def aspp_override_path(self):
|
def aspp_override_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Misc/ASPP-Override-v{self.aspp_override_version}.zip")
|
return self.payload_kexts_path / Path(f"Misc/ASPP-Override-v{self.aspp_override_version}.zip")
|
||||||
|
|
||||||
|
@property
|
||||||
|
def ecm_override_path(self):
|
||||||
|
return self.payload_kexts_path / Path(f"Misc/ECM-Override-v{self.ecm_override_version}.zip")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def nvmefix_path(self):
|
def nvmefix_path(self):
|
||||||
return self.payload_kexts_path / Path(f"Acidanthera/NVMeFix-v{self.nvmefix_version}-{self.kext_variant}.zip")
|
return self.payload_kexts_path / Path(f"Acidanthera/NVMeFix-v{self.nvmefix_version}-{self.kext_variant}.zip")
|
||||||
|
|||||||
Reference in New Issue
Block a user