- Breakthroughs & Rétro-ingénierie :
* Analyse binaire approfondie de IOSkywalkNetworkBSDClient::start (0xffffff8002aff562) dans BootKernelExtensions.kc :
l'appel registerService() sur fSkywalkInterface déclenche le matching du client BSD, qui déréférence fLogicalLinks (+0xc8).
* Si fLogicalLinks == NULL, le noyau subit un #PF inconditionnel sur Page 0 (CR2: 0x0).
* L'invocation de IOSkywalkEthernetInterface::registerEthernetInterface (0xffffff8002b0c1e0) alloue un OSOrderedSet,
instancie un IOSkywalkLogicalLink et l'affecte à fLogicalLinks (+0xc8), satisfaisant les prérequis du client BSD.
* Identification des exigences strictes de registerEthernetInterface : RegistrationInfo de 0x130 octets (v1, MAC à +0x108, MTU à +0x48),
numQueues >= 1, et au moins un IOSkywalkPacketBufferPool valide.
- Modifications apportées :
* QualcommWifi/Info.plist : Ajout de la dépendance com.apple.iokit.IOSkywalkFamily (1.0).
* QualcommWifi/QualcommWifi.hpp : Ajout des membres fSkywalkRegInfo[0x130], fSkywalkPool, fSkywalkTxQueue, fSkywalkRxQueue, fEthernetRegistered.
* QualcommWifi/QualcommWifi.cpp :
- Déclarations manglées extern "C" pour initRegistrationInfo, registerEthernetInterface, deregisterEthernetInterface,
IOSkywalkPacketBufferPool::withName, IOSkywalkTxSubmissionQueue::withPool, IOSkywalkRxCompletionQueue::withPool.
- Implémentation des callbacks skywalkTxAction et skywalkRxAction.
- Découpage modulaire sécurisé en sous-étapes (qcom_substep=1..5) sous qcom_step=8 :
* s8_0/s8_1 : initRegistrationInfo + MAC 00:03:7F + MTU 1500
* s8_2 : IOSkywalkPacketBufferPool::withName (QualcommWifi_Pool, 256 paquets, 2048B)
* s8_3 : IOSkywalkTxSubmissionQueue & IOSkywalkRxCompletionQueue
* s8_4 : registerEthernetInterface
* s8_5/s8_6 : fSkywalkInterface->registerService()
- Nettoyage et libération sécurisés dans free() et stop().
* docs/ISSUES_AND_POSTMORTEMS.md : Rédaction du Postmortem 24 détaillant l'architecture Skywalk Datapath et l'Étape 8.
- Validation :
* ./build_wifi.sh exécuté avec succès en Release (x86_64).
* kmutil libraries valide à 100% contre BootKernelExtensions.kc.
* Kext déployé sur /Volumes/EFI/EFI/OC/Kexts/QualcommWifi.kext (MD5: 96b519ce8b643281a26604604828010e).
* /Volumes/EFI/EFI/OC/config.plist mis à jour avec qcom_step=8 qcom_substep=5 (plutil -lint OK).
62 lines
1.7 KiB
Plaintext
62 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.iokit.IOSkywalkFamily</key>
|
|
<string>1.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>
|