Skip to content
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

Draft
wants to merge 27 commits into
base: master
Choose a base branch
from

Conversation

CharlieJiangXXX
Copy link
Contributor

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

@vit9696
Copy link
Contributor

vit9696 commented Jan 31, 2022

cc @zxystd, will need review from you

@vit9696
Copy link
Contributor

vit9696 commented Jan 31, 2022

@CharlieJiangXXX, note that we are yet to merge some of the fixes from https://github.com/OpenIntelWireless/itlwm/tree/master/include/Airport.

@zxystd
Copy link
Contributor

zxystd commented Feb 11, 2022

@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.

@vit9696
Copy link
Contributor

vit9696 commented Feb 13, 2022

@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…

@al3xtjames
Copy link

al3xtjames commented Mar 20, 2022

BTW, Apple released some of the Skywalk sources in xnu-8019.80.24 (though I don't think this includes the IOKit headers).

@CharlieJiangXXX
Copy link
Contributor Author

That's definitely an excellent news. This will help tremendously with IOSkywalk reverse engineering.

@CharlieJiangXXX CharlieJiangXXX changed the title 80211 and Skywalk Headers IO80211Family Headers Mar 24, 2022
@CharlieJiangXXX
Copy link
Contributor Author

In this case, I will split this pr up - creating a pr for the skywalk headers soon.

@CharlieJiangXXX
Copy link
Contributor Author

MacOS Ventura and above have adopted a new IO80211 stack that instead uses skywalk as the base. Will try to update accordingly soon

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

4 participants