From a675771bc6e40c103c42be309ed91cb9f78e7483 Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk <48863253+khronokernel@users.noreply.github.com> Date: Thu, 29 Apr 2021 18:20:49 -0600 Subject: [PATCH] Add better model logging to config.plist --- Resources/Build.py | 30 +++++++++++++++++++++++++-- Resources/ModelArray.py | 25 +++++++++++++++++++++++ payloads/ACPI/SSDT-PCI.aml | Bin 0 -> 175 bytes payloads/Config/config.plist | 38 +++++++++++++++++++++++++++++++++++ 4 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 payloads/ACPI/SSDT-PCI.aml diff --git a/Resources/Build.py b/Resources/Build.py index 0973bf958..cad1076ef 100644 --- a/Resources/Build.py +++ b/Resources/Build.py @@ -50,10 +50,12 @@ class BuildOpenCore: self.constants.igpu_device = self.hexswap(binascii.hexlify(self.constants.igpu_devices[0]["device-id"]).decode()[:4]) if print_status is True: print(f"- Detected iGPU: {self.constants.igpu_vendor}:{self.constants.igpu_device}") + self.config["#Revision"]["Hardware-iGPU"] = f"{self.constants.igpu_vendor}:{self.constants.igpu_device}" except ValueError: if print_status is True: print("- No iGPU detected") self.constants.igpu_devices = "" + self.config["#Revision"]["Hardware-iGPU"] = "No iGPU detected" try: self.constants.dgpu_devices = plistlib.loads(subprocess.run("ioreg -r -n GFX0 -a".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()) @@ -61,10 +63,12 @@ class BuildOpenCore: self.constants.dgpu_device = self.hexswap(binascii.hexlify(self.constants.dgpu_devices[0]["device-id"]).decode()[:4]) if print_status is True: print(f"- Detected dGPU: {self.constants.dgpu_vendor}:{self.constants.dgpu_device}") + self.config["#Revision"]["Hardware-dGPU"] = f"{self.constants.dgpu_vendor}:{self.constants.dgpu_device}" except ValueError: if print_status is True: print("- No dGPU detected") self.constants.dgpu_devices = "" + self.config["#Revision"]["Hardware-dGPU"] = "No dGPU detected" def build_efi(self): Utilities.cls() @@ -94,6 +98,10 @@ class BuildOpenCore: # Set revision in config self.config["#Revision"]["Build-Version"] = f"{self.constants.patcher_version} - {date.today()}" + if not self.constants.custom_model: + self.config["#Revision"]["Build-Type"] = "OpenCore Built on Target Machine" + else: + self.config["#Revision"]["Build-Type"] = "OpenCore Built for External Machine" self.config["#Revision"]["OpenCore-Version"] = f"{self.constants.opencore_version} - {self.constants.opencore_build} - {self.constants.opencore_commit}" self.config["#Revision"]["Original-Model"] = self.model self.config["NVRAM"]["Add"]["4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102"]["OCLP-Version"] = f"{self.constants.patcher_version}" @@ -169,7 +177,12 @@ class BuildOpenCore: wifi_device = self.hexswap(binascii.hexlify(wifi_devices[0]["device-id"]).decode()[:4]) wifi_ioname = wifi_devices[0]["IOName"] if not self.constants.custom_model: - print(f"- Detected Wifi Card: {wifi_vendor}:{wifi_device}") + if wifi_ioname in ["pci14e4,4353", "pci14e4,4331"]: + print(f"- Detected Wifi Card: {wifi_ioname}") + self.config["#Revision"]["Hardware-Wifi"] = f"{wifi_ioname}" + else: + print(f"- Detected Wifi Card: {wifi_vendor}:{wifi_device}") + self.config["#Revision"]["Hardware-Wifi"] = f"{wifi_vendor}:{wifi_device}" except IndexError: wifi_devices = "" @@ -230,6 +243,11 @@ class BuildOpenCore: self.get_item_by_kv(self.config["ACPI"]["Add"], "Path", "SSDT-CPBG.aml")["Enabled"] = True shutil.copy(self.constants.pci_ssdt_path, self.constants.acpi_path) + #if self.model in ModelArray.windows_audio: + # print("- Adding SSDT-PCI.aml") + # self.get_item_by_kv(self.config["ACPI"]["Add"], "Path", "SSDT-PCI.aml")["Enabled"] = True + # shutil.copy(self.constants.windows_ssdt_path, self.constants.acpi_path) + # USB Map usb_map_path = Path(self.constants.plist_folder_path) / Path("AppleUSBMaps/Info.plist") # iMac7,1 kernel panics with USB map installed, remove for time being until properly debugged @@ -311,6 +329,10 @@ class BuildOpenCore: if self.model in ["iMac11,1", "iMac11,2", "iMac11,3"]: print("- Adding Nvidia Brightness Control and DRM patches") self.config["DeviceProperties"]["Add"][backlight_path] = {"@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000"), "shikigva": 256, "agdpmod": "vit9696"} + if self.constants.custom_model and self.model == "iMac11,2": + # iMac11,2 can have either PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0) or PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0) + # Set both properties when we cannot run hardware detection + self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"] = {"@0,backlight-control": binascii.unhexlify("01000000"), "@0,built-in": binascii.unhexlify("01000000"), "shikigva": 256, "agdpmod": "vit9696"} shutil.copy(self.constants.backlight_path, self.constants.kexts_path) self.get_kext_by_bundle_path("AppleBacklightFixup.kext")["Enabled"] = True elif self.model in ["iMac12,1", "iMac12,2"]: @@ -325,6 +347,10 @@ class BuildOpenCore: self.constants.custom_mxm_gpu = True print("- Adding AMD DRM patches") self.config["DeviceProperties"]["Add"][backlight_path] = {"shikigva": 80, "unfairgva": 1} + if self.constants.custom_model and self.model == "iMac11,2": + # iMac11,2 can have either PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0) or PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0) + # Set both properties when we cannot run hardware detection + self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)"] = {"shikigva": 80, "unfairgva": 1} if self.model in ["iMac12,1", "iMac12,2"]: print("- Disabling unsupported iGPU") self.config["DeviceProperties"]["Add"]["PciRoot(0x0)/Pci(0x2,0x0)"] = {"name": binascii.unhexlify("23646973706C6179"), "IOName": "#display", "class-code": binascii.unhexlify("FFFFFFFF")} @@ -459,7 +485,7 @@ class BuildOpenCore: spoofed_board = "Mac-27AD2F918AE68F61" self.spoofed_model = spoofed_model self.spoofed_board = spoofed_board - self.config["#Revision"]["Spoofed-Model"] = self.spoofed_model + self.config["#Revision"]["Spoofed-Model"] = f"{self.spoofed_model} - {self.constants.serial_settings}" # Setup menu def minimal_serial_patch(self): diff --git a/Resources/ModelArray.py b/Resources/ModelArray.py index 8af083658..9f91c330c 100644 --- a/Resources/ModelArray.py +++ b/Resources/ModelArray.py @@ -885,9 +885,34 @@ SandyIGPU = [ "MacBookPro8,2", "MacBookPro8,3", "Macmini5,1", + "Macmini5,2", "Macmini5,3", ] +windows_audio = [ + "MacBookAir4,1", + "MacBookAir4,2", + "MacBookAir5,1", + "MacBookAir5,2", + "MacBookPro8,1", + "MacBookPro8,2", + "MacBookPro8,3", + "MacBookPro9,1", + "MacBookPro9,2", + "MacBookPro10,1", + "MacBookPro10,2", + "Macmini5,1", + "Macmini5,2", + "Macmini5,3", + "Macmini6,1", + "Macmini6,2", + "iMac12,1", + "iMac12,2", + "iMac13,1", + "iMac13,2", + "iMac13,3", +] + DeleteNvidiaAccel11 = [ "AMDRadeonX4000.kext", "AMDRadeonX4000HWServices.kext", diff --git a/payloads/ACPI/SSDT-PCI.aml b/payloads/ACPI/SSDT-PCI.aml new file mode 100644 index 0000000000000000000000000000000000000000..6fb1bcf6fdaba7b9b3ad2abbe9004994e3dee8ea GIT binary patch literal 175 zcmWFzb_rR}z`(%d;1U$#=jj-pnHS*f2^0VVPrnc!RZazk1&R!!F?#XAPVqn~12!N> zpBct;3UxDNW)SdTLnv6_%^L3??8yr>DkZ?mqBLM&a literal 0 HcmV?d00001 diff --git a/payloads/Config/config.plist b/payloads/Config/config.plist index a962c2a78..a331532b7 100644 --- a/payloads/Config/config.plist +++ b/payloads/Config/config.plist @@ -23,6 +23,14 @@ Path SSDT-CPBG.aml + + Enabled + + Comment + Patch Windows Audio support for Sandy and Ivy Bridge + Path + SSDT-PCI.aml + Delete @@ -118,6 +126,36 @@ TableSignature + + Base + + BaseSkip + 0 + Comment + BUF0 to BUF1 + Count + 0 + Enabled + + Find + W4EGTUNIVAEIQlVGMA== + Limit + 0 + Mask + + OemTableId + + Replace + W4EGTUNIVAEIQlVGMQ== + ReplaceMask + + Skip + 0 + TableLength + 0 + TableSignature + + Quirks