From 299bb0be73b4617d21fbe58025da1bace6293632 Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk <48863253+khronokernel@users.noreply.github.com> Date: Fri, 26 Mar 2021 16:30:53 -0600 Subject: [PATCH] ix crashing when CD is present --- CHANGELOG.md | 1 + Resources/SysPatch.py | 8 ++++---- Resources/build.py | 22 +++++++++++++--------- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a389f381..9246e1574 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ - Blocks `/usr/libexec/displaypolicyd` on MacBookPro9,1 to ensure smooth GPU switching - Add custom SD Card icon - Add automatic codesiging and notarization +- Fix crashing when CD is present ## 0.0.18 - Disable Vault by default due to breaking installations diff --git a/Resources/SysPatch.py b/Resources/SysPatch.py index 0ea58026d..7f979ed4d 100644 --- a/Resources/SysPatch.py +++ b/Resources/SysPatch.py @@ -76,7 +76,7 @@ class PatchSysVolume: delete_path = Path(self.mount_extensions) / Path(delete_current_kext) if Path(delete_path).exists(): print(f"- Deleting {delete_current_kext}") - subprocess.run(f"sudo rm -R '{delete_path}'".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() + subprocess.run(f"sudo rm -R {delete_path}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() else: print(f"- Couldn't find {delete_current_kext}, skipping") @@ -85,12 +85,12 @@ class PatchSysVolume: existing_path = Path(self.mount_extensions) / Path(add_current_kext) if Path(existing_path).exists(): print(f"- Found conflicting kext, Deleting Root Volume's {add_current_kext}") - subprocess.run(f"sudo rm -R '{existing_path}'".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() + subprocess.run(f"sudo rm -R {existing_path}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() print(f"- Adding {add_current_kext}") - subprocess.run(f"sudo cp -R '{vendor_location}/{add_current_kext}' '{self.mount_extensions}'".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() + subprocess.run(f"sudo cp -R {vendor_location}/{add_current_kext} {self.mount_extensions}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() else: print(f"- Adding {add_current_kext}") - subprocess.run(f"sudo cp -R '{vendor_location}/{add_current_kext}' '{self.mount_extensions}'".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() + subprocess.run(f"sudo cp -R {vendor_location}/{add_current_kext} {self.mount_extensions}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode() def gpu_accel_patches_11(self): # TODO: Add proper hardware checks diff --git a/Resources/build.py b/Resources/build.py index 0a03b5007..0c3e9d481 100644 --- a/Resources/build.py +++ b/Resources/build.py @@ -506,15 +506,19 @@ Please build OpenCore first!""" disks = plistlib.loads(subprocess.run("diskutil list -plist".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()) for disk in disks["AllDisksAndPartitions"]: disk_info = plistlib.loads(subprocess.run(f"diskutil info -plist {disk['DeviceIdentifier']}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()) - all_disks[disk["DeviceIdentifier"]] = {"identifier": disk_info["DeviceNode"], "name": disk_info["MediaName"], "size": disk_info["TotalSize"], "partitions": {}} - for partition in disk["Partitions"]: - partition_info = plistlib.loads(subprocess.run(f"diskutil info -plist {partition['DeviceIdentifier']}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()) - all_disks[disk["DeviceIdentifier"]]["partitions"][partition["DeviceIdentifier"]] = { - "fs": partition_info.get("FilesystemType", partition_info["Content"]), - "type": partition_info["Content"], - "name": partition_info.get("VolumeName", ""), - "size": partition_info["TotalSize"], - } + try: + all_disks[disk["DeviceIdentifier"]] = {"identifier": disk_info["DeviceNode"], "name": disk_info["MediaName"], "size": disk_info["TotalSize"], "partitions": {}} + for partition in disk["Partitions"]: + partition_info = plistlib.loads(subprocess.run(f"diskutil info -plist {partition['DeviceIdentifier']}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()) + all_disks[disk["DeviceIdentifier"]]["partitions"][partition["DeviceIdentifier"]] = { + "fs": partition_info.get("FilesystemType", partition_info["Content"]), + "type": partition_info["Content"], + "name": partition_info.get("VolumeName", ""), + "size": partition_info["TotalSize"], + } + except KeyError: + # Avoid crashing with CDs installed + continue # TODO: Advanced mode menu = utilities.TUIMenu( ["Select Disk"],