Files
Erwan 5357ca61fe fix(wifi): resolve early kernel panic caused by null faultReporter and logger
- Breakthroughs & Rétro-ingénierie :
  * Découverte de la cause racine exacte du bootloop de 5 secondes au démarrage de macOS Tahoe :
    L'analyse désassemblée de BootKernelExtensions.kc montre que IO80211Controller::start()
    appelle findAndAttachToFaultReporter() (0xffffff8002292628), qui invoque
    this->getFaultReporterFromDriver() (slot de vtable 434, *0xd80(%rax)).
    Lorsque cette méthode retourne NULL/nullptr, findAndAttachToFaultReporter() déclenche un
    appel direct et inconditionnel à _panic("No ivars->_faultReporter" @IO80211Controller.cpp:2877) !
    Cet appel à _panic précoce provoquait le redémarrage brutal et instantané du PC (bootloop).
  * Découverte secondaire dans IO80211RNGAgent::withOptions() (0xffffff80022dd55c) :
    RNGAgent invoque this->getLogger() (slot de vtable 426, *0xd40(%rax)). Si le pointeur
    retourné est NULL, RNGAgent échoue, causant l'échec de IO80211Controller::start().
  * Rétablissement de OSBundleRequired à Network-Root dans Info.plist pour respecter
    strictement le cycle d'amorçage de IO80211Family.

- Modifications apportées :
  * QualcommWifi.hpp : ajout des champs fFaultReporter et fLogger (OSObject*), et déclaration
    des surcharges virtuelles getLogger() et getFaultReporterFromDriver().
  * QualcommWifi.cpp : allocation d'instances OSString valides dans init() pour fFaultReporter
    et fLogger, libération propre dans free(), et implémentation retournant ces objets.
  * QualcommWifi/Info.plist : rétablissement de OSBundleRequired à Network-Root.

- Validation :
  * Compilation xcodebuild/build_wifi.sh réussie sans aucune erreur.
  * Validation kmutil libraries réussie à 100% contre BootKernelExtensions.kc.
  * Vtable QualcommWifi (3728 octets, 466 entrées) vérifiée : slots 426 et 434 pointent
    désormais vers du code natif valide au lieu de ___cxa_pure_virtual.
2026-10-17 00:27:43 +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>