feat(wifi): align IO80211Controller vtable to 466 slots and resolve kernel symbols for native Wi-Fi

- Breakthroughs & Rétro-ingénierie :
  * Analyse binaire approfondie de BootKernelExtensions.kc (__ZTV17IO80211Controller à 0xffffff8002461148, 466 slots).
  * Résolution de la cause racine de la boucle de démarrage (boot loop) : décalage de 16 octets (2 slots 394 & 395) causé par _RESERVEDIOEthernetController30 et 31, provoquant un appel dans une zone mémoire non mappée dans IO80211Controller::start().
  * Analyse de findAndAttachToFaultReporter : Apple gère proprement un retour nullptr pour getFaultReporterFromDriver() sans nécessiter d'implémentation factice instable.
  * Analyse des symboles non résolus contre BootKernelExtensions.kc : identification de 11 symboles manquants (createInterface, configureInterface, getOutputQueue, _RESERVEDIONetworkController2..7) résolus via corps inline de délégation et stubs locaux, atteignant 0 symbole manquant (470/470 résolus).
  * Découplage de start() : élimination de l'attente synchrone du firmware BHI (qui déclenchait le watchdog macOS) en la différant à enable().

- Modifications apportées :
  * QualcommWireless/include/IOKit/80211/IO80211Controller.h : alignement exact des 466 slots avec les réservations tahoe0/tahoe1 inline, et délégation directe vers IOEthernetController pour createInterface, configureInterface et getOutputQueue.
  * QualcommWifi/QualcommWifi.hpp : héritage direct de IO80211Controller, implémentation des prototypes Skywalk et airportd, ajout de fNetif.
  * QualcommWifi/QualcommWifi.cpp : stubs locaux pour les réservations IONetworkController, publication des médiums IEEE 802.11, attachement de l'interface réseau BSD via IONetworkController::attachInterface(), et gestionnaire de requêtes airportd/Skywalk complet.
  * QualcommWifi/Info.plist : déclaration de la dépendance com.apple.iokit.IO80211Family (1200.0) et OSBundleRequired = Root.
  * build_wifi.sh : ciblage macOS 26.5 avec -D__IO80211_TARGET=260000.

- Validation :
  * Compilation 100% sans erreur ni avertissement.
  * Vérification de vtable : correspondance parfaite 466 slots (0xe90 octets).
  * Vérification des symboles contre BootKernelExtensions.kc : 0 symbole manquant (100% de concordance).
  * Déploiement direct dans /Volumes/EFI/EFI/OC/Kexts/QualcommWifi.kext validé (SHA256 identique).
This commit is contained in:
Erwan committed 2026-10-16 11:49:21 +02:00
1 parent 399b09dade
commit d6bce8f360
5 files changed
+366 -82

No files matched your search

+1 -1
View File
@@ -25,7 +25,7 @@ clang++ -target x86_64-apple-macos26.5 \
-I"${SCRIPT_DIR}/QualcommWifi" \
-std=c++17 -fno-builtin -fno-common -mkernel -fno-rtti -fno-exceptions \
-fno-stack-protector -fno-strict-aliasing -Os \
-DKERNEL -DAPPLE_KEXT_OVERRIDE=override \
-DKERNEL -D__IO80211_TARGET=260000 -DAPPLE_KEXT_OVERRIDE=override \
-c "${SCRIPT_DIR}/QualcommWifi/QualcommWifi.cpp" \
-o "${BUILD_DIR}/QualcommWifi.o"