Skip to content

Commit

Permalink
Sync README.md with manifest
Browse files Browse the repository at this point in the history
  • Loading branch information
khronokernel committed May 12, 2023
1 parent d481384 commit 7fccc8a
Showing 1 changed file with 17 additions and 13 deletions.
30 changes: 17 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# KdkSupportPkg

Repository dedicated to Kernel Debug Kit archival, with primary focus on macOS Ventura KDKs in relation to Root Volume Patching with OpenCore Legacy Patcher.
Repository dedicated to Kernel Debug Kit archival, with a primary focus on macOS Ventura KDKs in relation to Root Volume Patching with OpenCore Legacy Patcher.

----------

With macOS 13, Ventura, Apple dropped on-disk kernel binaries in `/System/Library/Extensions`. Due to this, end users cannot build Boot and System Kernel Collections without manually install a Kernel Debug Kit from Apple's Developer Site. However due to Apple's account requirement for downloads, automated retrival is not possible. Thus this repo will create a release for each KDK seeded, with the tag representing the build associated.
With macOS 13, Ventura, Apple dropped on-disk kernel binaries in `/System/Library/Extensions`. Due to this, end users cannot build Boot and System Kernel Collections without manually installing a Kernel Debug Kit from Apple's Developer Site. However, due to Apple's account requirement for downloads, automated retrieval is not possible. Thus this repo will create a release for each KDK seeded, with the tag representing the build associated.

Source for Kernel Debug Kits:

Expand All @@ -17,24 +17,28 @@ Example of pulling releases:
```py
#!/usr/bin/env python3

REQUESTED_BUILD = "22A5365d"
KDK_API_LINK: str = "https://raw.githubusercontent.com/dortania/KdkSupportPkg/gh-pages/manifest.json"
KDK_REQUESTED_BUILD: str = "22F5059b"

KDK_MIRROR_REPOSITORY = "https://api.github.com/repos/dortania/KdkSupportPkg/releases"

catalog = requests.get(KDK_MIRROR_REPOSITORY)
catalog = requests.get(KDK_API_LINK)
if catalog.status_code != 200:
# Can't reach Github
return None

catalog = catalog.json()

for release in catalog:
if release["tag_name"] == REQUESTED_BUILD:
for asset in release["assets"]:
if asset["name"].endswith(".dmg"):
# Returns URL to rehosted Kernel Debug Kit
return asset["browser_download_url"]
for kdk in catalog:
if (kdk["build"] != KDK_REQUESTED_BUILD):
continue

return {
"url": kdk["url"], # str (DMG URL), ex: https://.../Kernel_Debug_Kit_13.4_build_22F5059b.dmg
"build": kdk["build"], # str (22xxxxxx), ex: 22F5059b
"version": kdk["version"], # str (x.y.z), ex: 13.4
"fileSize": kdk["fileSize"] # int (bytes), ex: 654356659
}

return None
```


For a more in-depth implementation, see OpenCore Legacy Patcher's [kdk_handler.py's `KernelDebugKitObject` class](https://github.com/dortania/OpenCore-Legacy-Patcher/blob/a6e0c142ca8c4aacf1741eeeb58215a037578f91/resources/kdk_handler.py).

0 comments on commit 7fccc8a

Please sign in to comment.