- 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).
60 lines
1.6 KiB
Plaintext
60 lines
1.6 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>1200.0</string>
|
|
<key>com.apple.iokit.IONetworkingFamily</key>
|
|
<string>3.2</string>
|
|
<key>com.apple.iokit.IOPCIFamily</key>
|
|
<string>2.9</string>
|
|
<key>com.apple.kpi.bsd</key>
|
|
<string>15.0</string>
|
|
<key>com.apple.kpi.iokit</key>
|
|
<string>15.0</string>
|
|
<key>com.apple.kpi.libkern</key>
|
|
<string>15.0</string>
|
|
<key>com.apple.kpi.mach</key>
|
|
<string>15.0</string>
|
|
</dict>
|
|
<key>OSBundleRequired</key>
|
|
<string>Root</string>
|
|
</dict>
|
|
</plist>
|