diff --git a/OpenCore-Patcher.command b/OpenCore-Patcher.command index d0d5455f4..58d074572 100755 --- a/OpenCore-Patcher.command +++ b/OpenCore-Patcher.command @@ -14,61 +14,10 @@ from Resources import * # List build versions patcher_version = "0.0.1" -opencore_version = "0.6.3" -lilu_version = "1.4.9" -whatevergreen_version = "1.4.4" -airportbcrmfixup_version = "2.1.1" -bcm570_version = "1.0.0" -marvel_version = "1.0.0" -nforce_version = "1.0.0" -mce_version = "1.0.0" -mousse_version = "0.93" -telemetrap_version = "1.0.0" -io80211high_sierra_version = "1.0.0" -io80211mojave_version = "1.0.0" - -# Setup file locations -current_path = os.getcwd() - -# Payload Location -# OpenCore -opencore_path = os.path.join(current_path, "payloads/OpenCore/" "OpenCore-v%s.zip" % opencore_version) -plist_path = os.path.join(current_path, "payloads/Config/v%s/" "config.plist" % opencore_version) - -# ACPI -pci_ssdt_path = os.path.join(current_path, "payloads/ACPI/" "SSDT-CPBG.aml") - -# Drivers -nvme_driver_path = os.path.join(current_path, "payloads/Drivers/" "NvmExpressDxe.efi") - -# Kexts -lilu_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "Lilu-v%s.zip" % lilu_version) -whatevergreen_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "WhateverGreen-v%s.zip" % whatevergreen_version) -airportbcrmfixup_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "AirportBrcmFixup-v%s.zip" % airportbcrmfixup_version) -bcm570_path = os.path.join(current_path, "payloads/Kexts/Ethernet/" "CatalinaBCM5701Ethernet-v%s.zip" % bcm570_version) -marvel_path = os.path.join(current_path, "payloads/Kexts/Ethernet/" "MarvelYukonEthernet-v%s.zip" % marvel_version) -nforce_path = os.path.join(current_path, "payloads/Kexts/Ethernet/" "nForceEthernet-v%s.zip" % nforce_version) -mce_path = os.path.join(current_path, "payloads/Kexts/Misc/" "AppleMCEReporterDisabler-v%s.zip" % mce_version) -mousse_path = os.path.join(current_path, "payloads/Kexts/SSE/" "AAAMouSSE-v%s.zip" % mousse_version) -telemetrap_path = os.path.join(current_path, "payloads/Kexts/SSE/" "telemetrap-v%s.zip" % telemetrap_version) -io80211high_sierra_path = os.path.join(current_path, "payloads/Kexts/Wifi/" "IO80211HighSierra-v%s.zip" % io80211high_sierra_version) -io80211mojave_path = os.path.join(current_path, "payloads/Kexts/Wifi/" "IO80211Mojave-v%s.zip" % io80211mojave_version) - -# Build Location -opencore_path_build = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s.zip" % opencore_version) -plist_path_build = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s/EFI/OC/" % opencore_version) -plist_path_build_full = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s/EFI/OC/config.plist" % opencore_version) -acpi_path_build = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s/EFI/OC/ACPI" % opencore_version) -drivers_path_build = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s/EFI/OC/Drivers" % opencore_version) -kext_path_build = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s/EFI/OC/Kexts" % opencore_version) -opencore_path_done = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s" % opencore_version) - -# Tools -macserial_path = os.path.join(current_path, "payloads/" "Tools") # Find SMBIOS of machine -current_model = subprocess.Popen("system_profiler SPHardwareDataType".split(), stdout=subprocess.PIPE) -current_model = [line.strip().split(": ", 1)[1] for line in current_model.stdout.read().split("\n") if line.strip().startswith("Model Identifier")][0] +#current_model = subprocess.Popen("system_profiler SPHardwareDataType".split(), stdout=subprocess.PIPE) +#current_model = [line.strip().split(": ", 1)[1] for line in current_model.stdout.read().split("\n") if line.strip().startswith("Model Identifier")][0] CustomSMBIOS=False MainMenu=True @@ -78,17 +27,17 @@ while MainMenu: print("###################################################") print(" OpenCore Legacy patcher v%s" % patcher_version) - print(" Current Model: %s" % current_model) + print(" Current Model: %s" % BuildOpenCore.current_model) print("###################################################") print("") - if current_model not in ModelArray.SupportedSMBIOS: + if BuildOpenCore.current_model not in ModelArray.SupportedSMBIOS: print(" Your model is not supported by this patcher!") print("") print(" If you plan to create the USB for another machine,") print(" please select option 5") print("---------------------------------------------------") print("") - elif current_model in ("MacPro3,1", "iMac7,1"): + elif BuildOpenCore.current_model in ("MacPro3,1", "iMac7,1"): print(" This model is supported") print(" However please ensure the CPU have been upgraded") print(" to support SSE4.1+") @@ -114,7 +63,7 @@ while MainMenu: os.system('clear') print("#######################################################") - print(" Build OpenCore for model: %s" % current_model) + print(" Build OpenCore for model: %s" % BuildOpenCore.current_model) print("#######################################################") print("") print(" 1. Auto build OpenCore") @@ -130,368 +79,23 @@ while MainMenu: while AutoBuilderMenu: os.system('clear') print("#######################################################") - print(" Building OpenCore for model: %s" % current_model) + print(" Building OpenCore for model: %s" % BuildOpenCore.current_model) print("#######################################################") print("") print("The current working directory:") - print (" %s" % current_path) + print (" %s" % Versions.current_path) print("") - build_path = os.path.join(current_path, r'Build-Folder/') - if not os.path.exists(build_path): - os.makedirs(build_path) - print("Created Build Folder") - else: - print("Build Folder already present, skipping") - # Copy OpenCore into Build Folder - - if os.path.exists(opencore_path_build): - print("Deleting old copy of OpenCore zip") - os.remove(opencore_path_build) - if os.path.exists(opencore_path_done): - print("Deleting old copy of OpenCore folder") - rmtree(opencore_path_done) - print("") - print("- Adding OpenCore v%s" % opencore_version) - copy(opencore_path, build_path) - zipfile.ZipFile(opencore_path_build).extractall(build_path) - - print("- Adding config.plist v%s" % opencore_version) - # Setup config.plist for editing - copy(plist_path, plist_path_build) - with open(plist_path_build_full, 'r') as file : - plist_data = file.read() - - print("- Adding Lilu %s" % lilu_version) - copy(lilu_path, kext_path_build) - print("- Adding WhateverGreen %s" % whatevergreen_version) - copy(whatevergreen_path, kext_path_build) - - # Checks for kexts - # CPU Kext Patches - if current_model in ModelArray.DualSocket: - print("- Adding AppleMCEReporterDisabler v%s" % mce_version) - copy(mce_path, kext_path_build) - plist_data = plist_data.replace( - "", - "" - ) - - if current_model in ModelArray.SSEEmulator: - print("- Adding AAAMouSSE v%s" % mousse_version) - copy(mousse_version, kext_path_build) - plist_data = plist_data.replace( - "", - "" - ) - if current_model in ModelArray.MissingSSE42: - print("- Adding telemetrap %s" % telemetrap_version) - copy(telemetrap_path, kext_path_build) - plist_data = plist_data.replace( - "", - "" - ) - - # Ethernet Patches - - if current_model in ModelArray.EthernetNvidia: - print("- Adding nForceEthernet v%s" % nforce_version) - copy(nforce_path, kext_path_build) - plist_data = plist_data.replace( - "", - "" - ) - if current_model in ModelArray.EthernetMarvell: - print("- Adding MarvelYukonEthernet v%s" % marvel_version) - copy(marvel_path, kext_path_build) - plist_data = plist_data.replace( - "", - "" - ) - if current_model in ModelArray.EthernetBroadcom: - print("- Adding CatalinaBCM5701Ethernet %s" % bcm570_version) - copy(bcm570_path, kext_path_build) - plist_data = plist_data.replace( - "", - "" - ) - - # Wifi Patches - - if current_model in ModelArray.WifiAtheros: - print("- Adding IO80211HighSierra v%s" % io80211high_sierra_version) - copy(io80211high_sierra_path, kext_path_build) - plist_data = plist_data.replace( - "", - "" - ) - plist_data = plist_data.replace( - "", - "" - ) - if current_model in ModelArray.WifiBCM94328: - print("- Wifi patches currently unsupported") - # TO-DO: Add El Capitan's IO80211 - if current_model in ModelArray.WifiBCM94322: - print("- Adding IO80211Mojave %s" % io80211mojave_version) - copy(io80211mojave_path, kext_path_build) - plist_data = plist_data.replace( - "", - "" - ) - plist_data = plist_data.replace( - "", - "" - ) - if current_model in ModelArray.WifiBCM943224: - print("- Adding IO80211Mojave %s" % io80211mojave_version) - copy(io80211mojave_path, kext_path_build) - plist_data = plist_data.replace( - "", - "" - ) - plist_data = plist_data.replace( - "", - "" - ) - if current_model in ModelArray.WifiBCM94331: - print("- Adding AirportBrcmFixup and appling fake ID") - copy(airportbcrmfixup_path, kext_path_build) - plist_data = plist_data.replace( - "", - "" - ) - plist_data = plist_data.replace( - "", - "" - ) - if current_model in ("iMac13,1", "iMac13,2"): - plist_data = plist_data.replace( - "#PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)", - "PciRoot(0x0)/Pci(0x1C,0x3)Pci(0x0,0x0)" - ) - else: - plist_data = plist_data.replace( - "#PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)", - "PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)" - ) - - - usb_map_path = os.path.join(current_path, "payloads/Kexts/Maps/Zip/" "USB-Map-%s.zip" % current_model) - if os.path.exists(usb_map_path): - print("- Adding USB Map for %s" % current_model) - copy(usb_map_path, kext_path_build) - map_name = ("USB-Map-%s.kext" % current_model) - plist_data = plist_data.replace( - "USB-Map-SMBIOS.kext", - map_name - ) - - - # Checks for ACPI - # Add SSDTs - if current_model in ModelArray.pciSSDT: - print("- Adding SSDT-CPBG.aml") - copy(pci_ssdt_path, acpi_path_build) - plist_data = plist_data.replace( - "", - "" - ) - - # Check for Kernel Patches - if current_model in ModelArray.LegacyHID: - print("- Adding IOHIDFamily Patch") - copy(pci_ssdt_path, acpi_path_build) - plist_data = plist_data.replace( - "", - "" - ) - - # Check for EFI Drivers - if current_model in ModelArray.NVMePatch: - print("- Adding NVMe support") - copy(nvme_driver_path, drivers_path_build) - plist_data = plist_data.replace( - "#NvmExpressDxe.efi", - "NvmExpressDxe.efi" - ) - - # Add new SMBIOS data - if current_model in ModelArray.MacBookAir61: - print("- Spoofing to MacBookAir6,1") - # Patch SMBIOS - - plist_data = plist_data.replace( - "iMac19,1", - "MacBookAir6,1" - ) - # Patch Number Serial - plist_data = plist_data.replace( - "W00000000001", - "Dortania-SN" - ) - # Patch MLB - plist_data = plist_data.replace( - "M0000000000000001", - "Dortania-MLB" - ) - if current_model in ModelArray.MacBookAir62: - print("- Spoofing to MacBookAir6,2") - # Patch SMBIOS - - plist_data = plist_data.replace( - "iMac19,1", - "MacBookAir6,2" - ) - # Patch Number Serial - plist_data = plist_data.replace( - "W00000000001", - "Dortania-SN" - ) - # Patch MLB - plist_data = plist_data.replace( - "M0000000000000001", - "Dortania-MLB" - ) - if current_model in ModelArray.MacBookPro111: - print("- Spoofing to MacBookPro11,1") - # Patch SMBIOS - - plist_data = plist_data.replace( - "iMac19,1", - "MacBookPro11,1" - ) - # Patch Number Serial - plist_data = plist_data.replace( - "W00000000001", - "Dortania-SN" - ) - # Patch MLB - plist_data = plist_data.replace( - "M0000000000000001", - "Dortania-MLB" - ) - if current_model in ModelArray.MacBookPro112: - print("- Spoofing to MacBookPro11,2") - # Patch SMBIOS - - plist_data = plist_data.replace( - "iMac19,1", - "MacBookPro11,2" - ) - # Patch Number Serial - plist_data = plist_data.replace( - "W00000000001", - "Dortania-SN" - ) - # Patch MLB - plist_data = plist_data.replace( - "M0000000000000001", - "Dortania-MLB" - ) - if current_model in ModelArray.Macmini71: - print("- Spoofing to Macmini7,1") - # Patch SMBIOS - - plist_data = plist_data.replace( - "iMac19,1", - " Macmini7,1" - ) - # Patch Number Serial - plist_data = plist_data.replace( - "W00000000001", - "Dortania-SN" - ) - # Patch MLB - plist_data = plist_data.replace( - "M0000000000000001", - "Dortania-MLB" - ) - if current_model in ModelArray.iMac151: - print("- Spoofing to iMac15,1") - # Patch SMBIOS - - plist_data = plist_data.replace( - "iMac19,1", - "iMac15,1" - ) - # Patch Number Serial - plist_data = plist_data.replace( - "W00000000001", - "Dortania-SN" - ) - # Patch MLB - plist_data = plist_data.replace( - "M0000000000000001", - "Dortania-MLB" - ) - if current_model in ModelArray.iMac144: - print("- Spoofing to iMac14,4") - # Patch SMBIOS - - plist_data = plist_data.replace( - "iMac19,1", - "iMac14,4" - ) - # Patch Number Serial - plist_data = plist_data.replace( - "W00000000001", - "Dortania-SN" - ) - # Patch MLB - plist_data = plist_data.replace( - "M0000000000000001", - "Dortania-MLB" - ) - if current_model in ModelArray.MacPro71: - print("- Spoofing to MacPro7,1") - # Patch SMBIOS - - plist_data = plist_data.replace( - "iMac19,1", - "MacPro7,1" - ) - # Patch Number Serial - plist_data = plist_data.replace( - "W00000000001", - "Dortania-SN" - ) - # Patch MLB - plist_data = plist_data.replace( - "M0000000000000001", - "Dortania-MLB" - ) - - # Patch UUID - uuidGen = subprocess.Popen(["uuidgen"], stdout=subprocess.PIPE).communicate()[0] - plist_data = plist_data.replace( - "00000000-0000-0000-0000-000000000000", - uuidGen - ) - + BuildOpenCore.BuildEFI() + BuildOpenCore.BuildSMBIOS() # Save config.plist changes in memory - with open(plist_path_build_full, 'w') as file: - file.write(plist_data) + with open(Versions.plist_path_build_full, 'w') as file: + file.write(Versions.plist_data) - # Clean up Build Folder - print("") - print("Cleaning build folder") - os.chdir(kext_path_build) - extension = ".zip" - for item in os.listdir(kext_path_build): # loop through items in dir - if item.endswith(extension): # check for ".zip" extension - file_name = os.path.abspath(item) # get full path of files - zip_ref = zipfile.ZipFile(file_name) # create zipfile object - zip_ref.extractall(kext_path_build) # extract file to dir - zip_ref.close() # close file - os.remove(file_name) # delete zipped file - rmtree("__MACOSX") - os.chdir(build_path) - rmtree("__MACOSX") - os.remove(opencore_path_build) - os.chdir(current_path) + BuildOpenCore.CleanBuildFolder() + print("") print("Your OpenCore EFI has been built at:") - print(" %s" % opencore_path_done) + print(" %s" % Versions.opencore_path_done) print("") AutoBuilderMenu = raw_input("Press any key to return to previous menu: ") if AutoBuilderMenu=="1": @@ -593,7 +197,7 @@ while MainMenu: SMBIOSMenuYN = raw_input("Is this correcy?(y/n)") if SMBIOSMenuYN in {"y", "Y", "yes", "Yes"}: SMBIOSMenu=False - current_model = SMBIOSOption + BuildOpenCore.current_model = SMBIOSOption MainMenu=True # Set variabel to show we're not patching the system # Ensures we don't use logic for determining the Wifi card model diff --git a/Resources/BuildOpenCore.py b/Resources/BuildOpenCore.py new file mode 100644 index 000000000..9fcb6e49f --- /dev/null +++ b/Resources/BuildOpenCore.py @@ -0,0 +1,346 @@ +# Commands for building the EFI and SMBIOS + +from __future__ import print_function + +from shutil import copy +from shutil import rmtree + +import os +import json +import subprocess +import sys +import zipfile + +import Versions +import ModelArray + +#print(Versions.opencore_version) + +# Find SMBIOS of machine +current_model = subprocess.Popen("system_profiler SPHardwareDataType".split(), stdout=subprocess.PIPE) +current_model = [line.strip().split(": ", 1)[1] for line in current_model.stdout.read().split("\n") if line.strip().startswith("Model Identifier")][0] + +def BuildEFI(): + + if not os.path.exists(Versions.build_path): + os.makedirs(Versions.build_path) + print("Created Build Folder") + else: + print("Build Folder already present, skipping") + # Copy OpenCore into Build Folder + + if os.path.exists(Versions.opencore_path_build): + print("Deleting old copy of OpenCore zip") + os.remove(Versions.opencore_path_build) + if os.path.exists(Versions.opencore_path_done): + print("Deleting old copy of OpenCore folder") + rmtree(Versions.opencore_path_done) + print("") + print("- Adding OpenCore v%s" % Versions.opencore_version) + copy(Versions.opencore_path, Versions.build_path) + zipfile.ZipFile(Versions.opencore_path_build).extractall(Versions.build_path) + + print("- Adding config.plist v%s" % Versions.opencore_version) + # Setup config.plist for editing + copy(Versions.plist_path, Versions.plist_path_build) + with open(Versions.plist_path_build_full, 'r') as file : + Versions.plist_data = file.read() + + print("- Adding Lilu %s" % Versions.lilu_version) + copy(Versions.lilu_path, Versions.kext_path_build) + + print("- Adding WhateverGreen %s" % Versions.whatevergreen_version) + copy(Versions.whatevergreen_path, Versions.kext_path_build) + + # Checks for kexts + # CPU Kext Patches + if current_model in ModelArray.DualSocket: + print("- Adding AppleMCEReporterDisabler v%s" % Versions.mce_version) + copy(Versions.mce_path, Versions.kext_path_build) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + + if current_model in ModelArray.SSEEmulator: + print("- Adding AAAMouSSE v%s" % Versions.mousse_version) + copy(Versions.mousse_version, Versions.kext_path_build) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + if current_model in ModelArray.MissingSSE42: + print("- Adding telemetrap %s" % Versions.telemetrap_version) + copy(Versions.telemetrap_path, Versions.kext_path_build) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + + # Ethernet Patches + + if current_model in ModelArray.EthernetNvidia: + print("- Adding nForceEthernet v%s" % Versions.nforce_version) + copy(Versions.nforce_path, Versions.kext_path_build) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + if current_model in ModelArray.EthernetMarvell: + print("- Adding MarvelYukonEthernet v%s" % Versions.marvel_version) + copy(Versions.marvel_path, Versions.kext_path_build) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + if current_model in ModelArray.EthernetBroadcom: + print("- Adding CatalinaBCM5701Ethernet %s" % Versions.bcm570_version) + copy(Versions.bcm570_path, Versions.kext_path_build) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + + # Wifi Patches + + if current_model in ModelArray.WifiAtheros: + print("- Adding IO80211HighSierra v%s" % Versions.io80211high_sierra_version) + copy(Versions.io80211high_sierra_path, Versions.kext_path_build) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + if current_model in ModelArray.WifiBCM94328: + print("- Wifi patches currently unsupported") + # TO-DO: Add El Capitan's IO80211 + if current_model in ModelArray.WifiBCM94322: + print("- Adding IO80211Mojave %s" % Versions.io80211mojave_version) + copy(Versions.io80211mojave_path, Versions.kext_path_build) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + if current_model in ModelArray.WifiBCM943224: + print("- Adding IO80211Mojave %s" % Versions.io80211mojave_version) + copy(Versions.io80211mojave_path, Versions.kext_path_build) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + if current_model in ModelArray.WifiBCM94331: + print("- Adding AirportBrcmFixup and appling fake ID") + copy(Versions.airportbcrmfixup_path, Versions.kext_path_build) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + Versions.plist_data = Versions.plist_data.replace( + "", + "" + ) + if current_model in ("iMac13,1", "iMac13,2"): + Versions.plist_data = Versions.plist_data.replace( + "#PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)", + "PciRoot(0x0)/Pci(0x1C,0x3)Pci(0x0,0x0)" + ) + else: + Versions.plist_data = Versions.plist_data.replace( + "#PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)", + "PciRoot(0x0)/Pci(0x1C,0x1)Pci(0x0,0x0)" + ) + usb_map_path = os.path.join(Versions.current_path, "payloads/Kexts/Maps/Zip/" "USB-Map-%s.zip" % current_model) + if os.path.exists(usb_map_path): + print("- Adding USB Map for %s" % current_model) + copy(usb_map_path, Versions.kext_path_build) + map_name = ("USB-Map-%s.kext" % current_model) + Versions.plist_data = Versions.plist_data.replace( + "USB-Map-SMBIOS.kext", + map_name + ) + +def BuildSMBIOS(): + # Add new SMBIOS data + if current_model in ModelArray.MacBookAir61: + print("- Spoofing to MacBookAir6,1") + # Patch SMBIOS + + Versions.plist_data = Versions.plist_data.replace( + "iMac19,1", + "MacBookAir6,1" + ) + # Patch Number Serial + Versions.plist_data = Versions.plist_data.replace( + "W00000000001", + "Dortania-SN" + ) + # Patch MLB + Versions.plist_data = Versions.plist_data.replace( + "M0000000000000001", + "Dortania-MLB" + ) + if current_model in ModelArray.MacBookAir62: + print("- Spoofing to MacBookAir6,2") + # Patch SMBIOS + + Versions.plist_data = Versions.plist_data.replace( + "iMac19,1", + "MacBookAir6,2" + ) + # Patch Number Serial + Versions.plist_data = Versions.plist_data.replace( + "W00000000001", + "Dortania-SN" + ) + # Patch MLB + Versions.plist_data = Versions.plist_data.replace( + "M0000000000000001", + "Dortania-MLB" + ) + if current_model in ModelArray.MacBookPro111: + print("- Spoofing to MacBookPro11,1") + # Patch SMBIOS + + Versions.plist_data = Versions.plist_data.replace( + "iMac19,1", + "MacBookPro11,1" + ) + # Patch Number Serial + Versions.plist_data = Versions.plist_data.replace( + "W00000000001", + "Dortania-SN" + ) + # Patch MLB + Versions.plist_data = Versions.plist_data.replace( + "M0000000000000001", + "Dortania-MLB" + ) + if current_model in ModelArray.MacBookPro112: + print("- Spoofing to MacBookPro11,2") + # Patch SMBIOS + + Versions.plist_data = Versions.plist_data.replace( + "iMac19,1", + "MacBookPro11,2" + ) + # Patch Number Serial + Versions.plist_data = Versions.plist_data.replace( + "W00000000001", + "Dortania-SN" + ) + # Patch MLB + Versions.plist_data = Versions.plist_data.replace( + "M0000000000000001", + "Dortania-MLB" + ) + if current_model in ModelArray.Macmini71: + print("- Spoofing to Macmini7,1") + # Patch SMBIOS + + Versions.plist_data = Versions.plist_data.replace( + "iMac19,1", + " Macmini7,1" + ) + # Patch Number Serial + Versions.plist_data = Versions.plist_data.replace( + "W00000000001", + "Dortania-SN" + ) + # Patch MLB + Versions.plist_data = Versions.plist_data.replace( + "M0000000000000001", + "Dortania-MLB" + ) + if current_model in ModelArray.iMac151: + print("- Spoofing to iMac15,1") + # Patch SMBIOS + + Versions.plist_data = Versions.plist_data.replace( + "iMac19,1", + "iMac15,1" + ) + # Patch Number Serial + Versions.plist_data = Versions.plist_data.replace( + "W00000000001", + "Dortania-SN" + ) + # Patch MLB + Versions.plist_data = Versions.plist_data.replace( + "M0000000000000001", + "Dortania-MLB" + ) + if current_model in ModelArray.iMac144: + print("- Spoofing to iMac14,4") + # Patch SMBIOS + + Versions.plist_data = Versions.plist_data.replace( + "iMac19,1", + "iMac14,4" + ) + # Patch Number Serial + Versions.plist_data = Versions.plist_data.replace( + "W00000000001", + "Dortania-SN" + ) + # Patch MLB + Versions.plist_data = Versions.plist_data.replace( + "M0000000000000001", + "Dortania-MLB" + ) + if current_model in ModelArray.MacPro71: + print("- Spoofing to MacPro7,1") + # Patch SMBIOS + + Versions.plist_data = Versions.plist_data.replace( + "iMac19,1", + "MacPro7,1" + ) + # Patch Number Serial + Versions.plist_data = Versions.plist_data.replace( + "W00000000001", + "Dortania-SN" + ) + # Patch MLB + Versions.plist_data = Versions.plist_data.replace( + "M0000000000000001", + "Dortania-MLB" + ) + + # Patch UUID + uuidGen = subprocess.Popen(["uuidgen"], stdout=subprocess.PIPE).communicate()[0] + Versions.plist_data = Versions.plist_data.replace( + "00000000-0000-0000-0000-000000000000", + uuidGen + ) + +def CleanBuildFolder(): + # Clean up Build Folder + print("") + print("Cleaning build folder") + os.chdir(Versions.kext_path_build) + for item in os.listdir(Versions.kext_path_build): + if item.endswith(".zip"): + file_name = os.path.abspath(item) + zip_ref = zipfile.ZipFile(file_name) + zip_ref.extractall(Versions.kext_path_build) + zip_ref.close() + os.remove(file_name) + # Clean up Python's unzip + if os.path.exists("__MACOSX"): + rmtree("__MACOSX") + os.chdir(Versions.build_path) + if os.path.exists("__MACOSX"): + rmtree("__MACOSX") + os.remove(Versions.opencore_path_build) + os.chdir(Versions.current_path) \ No newline at end of file diff --git a/Resources/Versions.py b/Resources/Versions.py new file mode 100644 index 000000000..2b0935b1d --- /dev/null +++ b/Resources/Versions.py @@ -0,0 +1,65 @@ +# Define Files + +from __future__ import print_function + +from shutil import copy +from shutil import rmtree + +import os +import json +import subprocess +import sys + +# List build versions +opencore_version = "0.6.3" +lilu_version = "1.4.9" +whatevergreen_version = "1.4.4" +airportbcrmfixup_version = "2.1.1" +bcm570_version = "1.0.0" +marvel_version = "1.0.0" +nforce_version = "1.0.0" +mce_version = "1.0.0" +mousse_version = "0.93" +telemetrap_version = "1.0.0" +io80211high_sierra_version = "1.0.0" +io80211mojave_version = "1.0.0" + +# List current location +current_path = os.getcwd() + +# Payload Location +# OpenCore +opencore_path = os.path.join(current_path, "payloads/OpenCore/" "OpenCore-v%s.zip" % opencore_version) +plist_path = os.path.join(current_path, "payloads/Config/v%s/" "config.plist" % opencore_version) + +# ACPI +pci_ssdt_path = os.path.join(current_path, "payloads/ACPI/" "SSDT-CPBG.aml") + +# Drivers +nvme_driver_path = os.path.join(current_path, "payloads/Drivers/" "NvmExpressDxe.efi") + +# Kexts +lilu_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "Lilu-v%s.zip" % lilu_version) +whatevergreen_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "WhateverGreen-v%s.zip" % whatevergreen_version) +airportbcrmfixup_path = os.path.join(current_path, "payloads/Kexts/Acidanthera/" "AirportBrcmFixup-v%s.zip" % airportbcrmfixup_version) +bcm570_path = os.path.join(current_path, "payloads/Kexts/Ethernet/" "CatalinaBCM5701Ethernet-v%s.zip" % bcm570_version) +marvel_path = os.path.join(current_path, "payloads/Kexts/Ethernet/" "MarvelYukonEthernet-v%s.zip" % marvel_version) +nforce_path = os.path.join(current_path, "payloads/Kexts/Ethernet/" "nForceEthernet-v%s.zip" % nforce_version) +mce_path = os.path.join(current_path, "payloads/Kexts/Misc/" "AppleMCEReporterDisabler-v%s.zip" % mce_version) +mousse_path = os.path.join(current_path, "payloads/Kexts/SSE/" "AAAMouSSE-v%s.zip" % mousse_version) +telemetrap_path = os.path.join(current_path, "payloads/Kexts/SSE/" "telemetrap-v%s.zip" % telemetrap_version) +io80211high_sierra_path = os.path.join(current_path, "payloads/Kexts/Wifi/" "IO80211HighSierra-v%s.zip" % io80211high_sierra_version) +io80211mojave_path = os.path.join(current_path, "payloads/Kexts/Wifi/" "IO80211Mojave-v%s.zip" % io80211mojave_version) + +# Build Location +opencore_path_build = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s.zip" % opencore_version) +plist_path_build = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s/EFI/OC/" % opencore_version) +plist_path_build_full = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s/EFI/OC/config.plist" % opencore_version) +acpi_path_build = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s/EFI/OC/ACPI" % opencore_version) +drivers_path_build = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s/EFI/OC/Drivers" % opencore_version) +kext_path_build = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s/EFI/OC/Kexts" % opencore_version) +opencore_path_done = os.path.join(current_path, "Build-Folder/" "OpenCore-v%s" % opencore_version) +build_path = os.path.join(current_path, r'Build-Folder/') + +# Tools +macserial_path = os.path.join(current_path, "payloads/" "Tools") \ No newline at end of file diff --git a/Resources/__init__.py b/Resources/__init__.py index 9c6543a75..010fa3c3b 100644 --- a/Resources/__init__.py +++ b/Resources/__init__.py @@ -1,4 +1,4 @@ -# Source: CorpNewt +# Credit: CorpNewt from os.path import dirname, basename, isfile import glob modules = glob.glob(dirname(__file__)+"/*.py")