Files
QualcommWireless/QualcommWifi/Info.plist
T
Erwan cf09834dc2 fix(wifi): resolve OpenCore 'Invalid Parameter' rejection by aligning IO80211Controller vtable padslots and Info.plist dependencies
- 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).
2026-10-16 13:18:30 +02:00

60 lines
1.7 KiB
Plaintext

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>QualcommWifi</string>
<key>CFBundleIdentifier</key>
<string>com.nawrhehe.QualcommWifi</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>QualcommWifi</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>1.1.0</string>
<key>CFBundleVersion</key>
<string>1.1.0</string>
<key>IOKitPersonalities</key>
<dict>
<key>QualcommWifi_PCIe</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.nawrhehe.QualcommWifi</string>
<key>IOClass</key>
<string>QualcommWifi</string>
<key>IOMatchCategory</key>
<string>IODefaultMatchCategory</string>
<key>IOPCIPrimaryMatch</key>
<string>0x110717cb</string>
<key>IOProbeScore</key>
<integer>20000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
</dict>
</dict>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.iokit.IO80211Family</key>
<string>1.5.0</string>
<key>com.apple.iokit.IONetworkingFamily</key>
<string>1.5.0</string>
<key>com.apple.iokit.IOPCIFamily</key>
<string>1.0.0</string>
<key>com.apple.kpi.bsd</key>
<string>16.7</string>
<key>com.apple.kpi.iokit</key>
<string>16.7</string>
<key>com.apple.kpi.libkern</key>
<string>16.7</string>
<key>com.apple.kpi.mach</key>
<string>16.7</string>
</dict>
<key>OSBundleRequired</key>
<string>Network-Root</string>
</dict>
</plist>