Files
QualcommWireless/QualcommWifi
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
..