From d492048177ed7047d831ab1211e016d90396850b Mon Sep 17 00:00:00 2001 From: "Azalea (on HyDEV-Daisy)" Date: Thu, 3 Nov 2022 23:54:33 -0400 Subject: [PATCH] [O] Fix invalid kext loading --- ocpm/main.py | 3 ++- ocpm/models.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ocpm/main.py b/ocpm/main.py index d7935b2..952f13e 100755 --- a/ocpm/main.py +++ b/ocpm/main.py @@ -254,8 +254,9 @@ def enable(names: list[str], kexts: list[Kext], efi: Path): def find_kexts(efi: Path) -> list[Kext]: kexts_dir = efi / 'OC' / 'Kexts' kexts = [str(f) for f in os.listdir(kexts_dir)] - kexts = [kexts_dir / f for f in kexts if f.lower().endswith('.kext')] + kexts = [kexts_dir / f for f in kexts if f.lower().endswith('.kext') and not f.startswith("._")] kexts = [Kext.from_path(k) for k in kexts] + kexts = [k for k in kexts if k] return kexts diff --git a/ocpm/models.py b/ocpm/models.py index aae82d3..8b38a73 100644 --- a/ocpm/models.py +++ b/ocpm/models.py @@ -4,6 +4,7 @@ import plistlib from dataclasses import dataclass from datetime import datetime from pathlib import Path +from typing import Optional @dataclass() @@ -17,11 +18,11 @@ class Kext: min_os: str | None = None @classmethod - def from_path(cls, path: Path) -> 'Kext': + def from_path(cls, path: Path) -> Optional['Kext']: # Find plist file plist = path / 'Contents' / 'Info.plist' if not plist.is_file(): - print(f'Error loading {path.name}: Cannot find Info.plist') + return None # Load plist file plist = plistlib.loads(plist.read_bytes())