-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IO80211Family Headers #13
base: master
Are you sure you want to change the base?
Conversation
… in IOBluetoothHostController.
cc @zxystd, will need review from you |
@CharlieJiangXXX, note that we are yet to merge some of the fixes from https://github.com/OpenIntelWireless/itlwm/tree/master/include/Airport. |
@CharlieJiangXXX This PR changes a lot, and I can't use it with itlwm project with the patch. I am suggesting to separate them with several PRs so that we can review them step by step. |
@zxystd with such a large amount of changes I well wonder whether we should consider this a complete rewrite rather than a set of iterative changes. Adapting itlwm to it, however, should indeed serve as the most valuable verification result we can afford at the moment. Perhaps @CharlieJiangXXX could aid with this… |
BTW, Apple released some of the Skywalk sources in xnu-8019.80.24 (though I don't think this includes the IOKit headers). |
That's definitely an excellent news. This will help tremendously with IOSkywalk reverse engineering. |
In this case, I will split this pr up - creating a pr for the skywalk headers soon. |
MacOS Ventura and above have adopted a new IO80211 stack that instead uses skywalk as the base. Will try to update accordingly soon |
Greetings!
IO80211Family and IOSkywalkFamily are the basis for all modern Wi-Fi devices on macOS ( if native support is wanted ). It is evident that previous attempts to reverse the 80211 family were not very complete as they essentially just copy-and-pasted functions from IDA. In this pull request, I am trying to finalize the 80211 headers ( add member variables & functions, etc. ) as well as adding the Skywalk headers, which were added since 10.15 ( they would be important for the implementation of SideCar, etc. )
The motivation for this is that I am attempting to merge the Linux mac80211 subsystem with IO80211 by creating an API kext ( perhaps Open80211Family ) that links directly to Airport but provides Soft MAC support, which IO80211 lacks. This approach would be superior to that of itlwm as drivers in the future no longer have to port the entire 80211 module from either Linux or a BSD system every time. It would also greatly improve macOS compatibility and even provide insights for AWDL implementation and thus support functions like AirDrop and SideCar.
I have made this a draft as I have just started and it is nowhere near fully done yet, but I hope it won't take too long!
Regards