kdk_handler.py: Fix matching

This commit is contained in:
Mykola Grymalyuk
2023-05-04 17:38:24 -06:00
parent d9e9fea2f7
commit a6e0c142ca
2 changed files with 23 additions and 9 deletions

View File

@@ -9,6 +9,8 @@
- Allows for better identification when mounted (ex. Disk Utility while app is running)
- Implement DMG-based PatcherSupportPkg system
- Reduces both app size and root patching time
- Resolve incorrect remote KDK matching for macOS betas
- ex. Beta 4 KDK being recommended for Beta 3 install
- Increment Binaries:
- PatcherSupportPkg 1.0.0 - release

View File

@@ -179,16 +179,28 @@ class KernelDebugKitObject:
return
# First check exact match
for kdk in remote_kdk_version:
kdk_version = cast(packaging.version.Version, packaging.version.parse(kdk["version"]))
if (kdk["build"] == host_build):
self.kdk_url = kdk["url"]
self.kdk_url_build = kdk["build"]
self.kdk_url_version = kdk["version"]
self.kdk_url_expected_size = kdk["fileSize"]
self.kdk_url_is_exactly_match = True
break
if kdk_version <= parsed_version and kdk_version.major == parsed_version.major and (kdk_version.minor in range(parsed_version.minor - 1, parsed_version.minor + 1)):
if (kdk["build"] != host_build):
continue
self.kdk_url = kdk["url"]
self.kdk_url_build = kdk["build"]
self.kdk_url_version = kdk["version"]
self.kdk_url_expected_size = kdk["fileSize"]
self.kdk_url_is_exactly_match = True
break
# If no exact match, check for closest match
if self.kdk_url == "":
for kdk in remote_kdk_version:
kdk_version = cast(packaging.version.Version, packaging.version.parse(kdk["version"]))
if kdk_version > parsed_version:
continue
if kdk_version.major != parsed_version.major:
continue
if kdk_version.minor not in range(parsed_version.minor - 1, parsed_version.minor + 1):
continue
# The KDK list is already sorted by version then date, so the first match is the closest
self.kdk_closest_match_url = kdk["url"]
self.kdk_closest_match_url_build = kdk["build"]