Itlwm: Adopting MacKernelSDK

Created on 21 Sep 2020  Â·  10Comments  Â·  Source: OpenIntelWireless/itlwm

Hello, we made a new product designed to help all the kext developers to easily target different macOS versions — MacKernelSDK. This is a modified Kernel.framework SDK, which contains private headers, removed deprecations, availability checks in many places, and several other fixes.

In Acidanthera we migrated all our kexts to use MacKernelSDK. At this point we believe we can offer the new SDK to let itlwm compile much easier in any Xcode version. In addition to that we would like to include IO80211Family headers in MacKernelSDK.

enhancement

Most helpful comment

ok, I agree it is a good way, I will comeback tomorrow from trip and will replace the project build SDK to MacKernelSDK soon. also, IO80211Family reverse headers is not copyright, everyone can use it for any purpose. thanks to Acidanthera.

All 10 comments

ok, I agree it is a good way, I will comeback tomorrow from trip and will replace the project build SDK to MacKernelSDK soon. also, IO80211Family reverse headers is not copyright, everyone can use it for any purpose. thanks to Acidanthera.

Well, with IO80211Family it needs some effort to merge. Currently the headers in https://github.com/OpenIntelWireless/itlwm/tree/airport_impl and https://github.com/usr-sse2/Black80211-Catalina/tree/master/Black80211/apple80211 have their own missing pieces, and I am not too happy that we have entirely separate directories for each operating system. We will need to:

  • Decide whether we merge them into one directory and guard with availability macros or leave them in separate directories. I would root for the former.
  • Decide who handles the merge. Since that would require updating itlwm we will at least want you to check this if not to handle yourself.

Yeah, do you have any idea or plan?

I think we should include <Availability.h>in the headers and then use #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_14 and similar for each supported version. Once this is done and the headers are merged I could just grab the updated headers from airport_impl and commit them to MacKernelSDK.

got it, will do it soon.

can I merge Black80211's headers? or @usr-sse2 will do it? and if you put them into the SDK, how can I add the new reversed things?

I could put Black80211 headers to MacKernelSDK right away, but they only contain 10.15 and 11.0. Perhaps it will be best if you update them later with 10.14 and new reversed things?

yeah, that would be more fine.

Pushed. I also tried to translate some comments in Chinese and dropped some dirty stuff. In addition to Mojave it will be great to have High Sierra and Sierra imported as well eventually.

__MAC_OS_X_VERSION_MIN_REQUIRED cannot be used at least with Xcode 12 on 10.15 since it does not know 11.0. For this reason I introduced __IO80211_TARGET that one will have to set to e.g. __MAC_11_0 and alike.

Now we have adopted to MacKernelSDK, thanks for your help.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

epictgames picture epictgames  Â·  3Comments

alessiomatricardi picture alessiomatricardi  Â·  9Comments

Stevemoretz picture Stevemoretz  Â·  8Comments

s0ullight picture s0ullight  Â·  3Comments

stspdotname picture stspdotname  Â·  6Comments