- Breakthroughs & Rétro-ingénierie :
* Analyse binaire approfondie du moteur de pré-liaison d'OpenCore (PrelinkedContext.c, Vtables.c, PrelinkedKext.c, CxxSymbols.c).
* Identification de la cause racine exacte du rejet OpenCore 'Invalid Parameter' :
1. Dans Vtables.c:320 (InternalPatchVtableSymbol), OpenCore applique la règle stricte : if (MachoSymbolNameIsPadslot (ParentEntry->Name)) return FALSE. L'insertion de deux slots factices (_RESERVEDIOEthernetController_tahoe0/1) décalait de 2 slots (16 octets) toutes les entrées virtuelles après le slot 393. Au slot 446, ParentEntry valait _RESERVEDIO80211Controller0 (padslot) alors que le kext enfant présentait attachVirtualInterface (non padslot), conduisant OpenCore à rejeter le kext comme binaire-incompatible.
2. Analyse binaire exacte de BootKernelExtensions.kc : __ZTV17IO80211Controller compte exactement 463 slots (terminateur 0x0 à l'index 465). Le slot 394 correspond directement à ___cxa_pure_virtual (isCommandProhibited) sans aucun slot intermédiaire. La suppression des deux slots factices élimine 100% des violations de padslot.
3. Correction des dépendances Info.plist : com.apple.iokit.IO80211Family aligné à 1.5.0, IONetworkingFamily à 1.5.0, IOPCIFamily à 1.0.0 (correspondant à leurs OSBundleCompatibleVersion respectives), et OSBundleRequired défini à Network-Root pour respecter l'ordonnancement XNU / OpenCore.
- Modifications apportées :
* QualcommWireless/include/IOKit/80211/IO80211Controller.h : suppression de _RESERVEDIOEthernetController_tahoe0 et _tahoe1, rétablissant l'alignement strict 463 slots.
* QualcommWifi/Info.plist : déclaration des versions compatibles dans OSBundleLibraries et passage à OSBundleRequired = Network-Root.
- Validation :
* Vérification binaire automatisée reproduisant l'algorithme d'OpenCore : 0 violation de padslot (100% de succès).
* Compilation sans erreur via ./build_wifi.sh.
* Validation des liaisons kmutil libraries : 0 symbole manquant contre BootKernelExtensions.kc.
* Déploiement direct dans /Volumes/EFI/EFI/OC/Kexts/QualcommWifi.kext validé (SHA256 identique).