From df9839e4446de5ab1e7eb653264bbf13a22e1df5 Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk <48863253+khronokernel@users.noreply.github.com> Date: Mon, 30 Nov 2020 20:40:57 -0700 Subject: [PATCH] Cleaned up serial patching --- OpenCore-Patcher.command | 2 + README.md | 11 ++- Resources/BuildOpenCore.py | 167 +++++++++---------------------------- 3 files changed, 47 insertions(+), 133 deletions(-) diff --git a/OpenCore-Patcher.command b/OpenCore-Patcher.command index ffac87d0d..8d24975a6 100755 --- a/OpenCore-Patcher.command +++ b/OpenCore-Patcher.command @@ -48,8 +48,10 @@ while MainMenu: print(" 3. Change model") print(" 4. Credits") print(" 5. Exit") + macserialoutput = subprocess.Popen(["./payloads/tools/macserial", "-m", "MacBookAir6,1"], stdout=subprocess.PIPE).communicate()[0] print(macserialoutput) + print("") MainMenu = raw_input('Please select an option: ') diff --git a/README.md b/README.md index f01416333..9f3f23ac4 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,7 @@ A python script for building and booting OpenCore on legacy Macs, see [Supported Current TO-DO's with this patcher: -* [x] Create OpenCore EFI -* [ ] Generate new serials * [ ] Create macOS Installer -* [x] Install OpenCore to drive -* [x] USB mapping * [ ] Legacy GPU Patches * ie. 2011 and older * [ ] Legacy Audio Patches @@ -16,6 +12,11 @@ Current TO-DO's with this patcher: ## Supported SMBIOS +Any hardware supporting SSE4.1 CPU and 64-Bit firmware work on this patcher. See below for exact support: + +
+SBIOS Support Table + ``` MacBook5,1 MacBook5,2 @@ -78,4 +79,6 @@ MacPro5,1 Xserve3,1 ``` +
+
diff --git a/Resources/BuildOpenCore.py b/Resources/BuildOpenCore.py index f016ad4c4..658b760f0 100644 --- a/Resources/BuildOpenCore.py +++ b/Resources/BuildOpenCore.py @@ -172,151 +172,60 @@ def BuildEFI(): ) def BuildSMBIOS(): - # Add new SMBIOS data + # Set new SMBIOS + new_model = current_model 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" - ) + new_model = "MacBookAir6,1" + 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" - ) + new_model = "MacBookAir6,2" + 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" - ) + new_model = "MacBookPro11,1" + 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" - ) + new_model = "MacBookPro11,2" + 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" - ) + new_model = "Macmini7,1" + 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" - ) + new_model = "iMac15,1" + 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" - ) + new_model = "iMac14,4" + 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" - ) + new_model = "MacPro7,1" + + # Grab serials from macserial + serialData = subprocess.Popen((r"./payloads/tools/macserial -g -m " + new_model + " -n 1").split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + serialData = serialData.stdout.read().strip().split(" | ") + + # Patch SMBIOS + Versions.plist_data = Versions.plist_data.replace( + "iMac19,1", + new_model + ) + + # Patch Number Serial + Versions.plist_data = Versions.plist_data.replace( + "W00000000001", + serialData[0] + ) + # Patch MLB + Versions.plist_data = Versions.plist_data.replace( + "M0000000000000001", + serialData[1] + ) # Patch UUID uuidGen = subprocess.Popen(["uuidgen"], stdout=subprocess.PIPE).communicate()[0]