feat(tahoe): port QualcommWireless & QualcommWifi to macOS Tahoe 26.x (Darwin 25)
Breakthroughs & Reverse Engineering (macOS Tahoe 26.7.1 / Darwin 25.6.0): - Reconstructed the complete 463-slot Skywalk vtable and class layout (0x128 / 296 bytes) of IO80211Controller (__ZTV17IO80211Controller at 0xffffff8002461148) and AppleBCMWLANCore from BootKernelExtensions.kc (IO80211Family 1200.13.1, source 1566.5). - Verified IOUSBHostDevice::deviceRequest vtable slot in Tahoe's BootKernelExtensions.kc (__ZTV15IOUSBHostDevice at 0xffffff8002e72720): confirmed exact match at slot 374 (0x176, byte offset 0xbb0). - Disassembled Tahoe's /usr/sbin/bluetoothd (FindTransportType at 0x10014c700, Found_USB_Dongle at 0x1000e9559, GetProductAndVendorID at 0x1000edf2a) confirming USB transport matching on 'Bluetooth USB Host Controller' and CSR 0x0a12 descriptor spoofing. Code & Build Modifications (v1.1.0): - IO80211Controller.h: Add full 463-slot Tahoe Skywalk vtable declaration (slots 394..462, offsets 0xc50..0xe70) and exact 0x80 filler size when __IO80211_TARGET >= 260000 while preserving legacy compatibility. - QualcommWifi.hpp/.cpp: Implement Tahoe IO80211Controller pure virtual methods (isCommandProhibited, handleCardSpecific, getDRIVER_VERSION, getHARDWARE_VERSION, getCARD_CAPABILITIES, getPOWER, setPOWER, getCOUNTRY_CODE, setCOUNTRY_CODE, setGET_DEBUG_INFO, getLogger, getFaultReporterFromDriver) and guard un-reserved IONetworkController slots 6..7 on SDK 26.5. - QualcommWireless.cpp: Add non-null vtable slot sanity check prior to installing the shadow vtable hook on IOUSBHostDevice::deviceRequest. - project.pbxproj & Info.plist: Upgrade to Xcode 26.6 (MacOSX26.5.sdk), MACOSX_DEPLOYMENT_TARGET = 26.0, __IO80211_TARGET = 260000, and bump version to 1.1.0. - docs & README: Document macOS Tahoe (Darwin 25) architecture, bluetoothd offsets, and Skywalk IO80211Controller ABI.
This commit is contained in:
1 parent
820154e54b
commit
a10e097a7e
11 files changed
+262
-135
No files matched your search
@@ -1,14 +1,14 @@
|
||||
# QualcommWireless
|
||||
|
||||
[](https://www.apple.com/macos/)
|
||||
[](https://www.apple.com/macos/)
|
||||
[](https://en.wikipedia.org/wiki/IEEE_802.11be)
|
||||
[](https://en.wikipedia.org/wiki/Bluetooth)
|
||||
[](https://github.com/acidanthera/OpenCorePkg)
|
||||
[]()
|
||||
|
||||
Pilote unifié haute performance pour les modules **Qualcomm FastConnect 7800 (WCN7850)** sous **macOS Sequoia (15.x)** et versions ultérieures.
|
||||
Pilote unifié haute performance pour les modules **Qualcomm FastConnect 7800 (WCN7850)** sous **macOS Tahoe (26.x / Darwin 25)** et **macOS Sequoia (15.x / Darwin 24)**.
|
||||
|
||||
Ce projet fournit une prise en charge **Wi-Fi 7 native** intégrée à la pile réseau sans fil Apple (`IO80211Controller`), ainsi que l'initialisation complète et le téléversement de microprogramme du sous-système **Bluetooth 5.4** via USB.
|
||||
Ce projet fournit une prise en charge **Wi-Fi 7 native** intégrée à la pile réseau sans fil Apple (`IO80211Controller` / Skywalk), ainsi que l'initialisation complète et le téléversement de microprogramme du sous-système **Bluetooth 5.4** via USB.
|
||||
|
||||
---
|
||||
|
||||
@@ -39,7 +39,7 @@ Le module **Qualcomm FastConnect 7800 (WCN7850)** combine deux contrôleurs mat
|
||||
## Fonctionnalités Principales
|
||||
|
||||
### 🌐 Wi-Fi Natif Apple (`QualcommWifi`)
|
||||
- **Véritable interface sans fil Apple80211** : Dérive directement de [`IO80211Controller`](QualcommWireless/QualcommWifi.hpp), évitant toute émulation Ethernet artificielle.
|
||||
- **Véritable interface sans fil Apple80211** : Dérive directement de [`IO80211Controller`](QualcommWifi/QualcommWifi.hpp), compatible avec l'ABI Skywalk de macOS Tahoe 26.x (`__IO80211_TARGET=260000`, vtable 463 slots), évitant toute émulation Ethernet artificielle.
|
||||
- **Intégration macOS complète** :
|
||||
- Détection automatique dans le **Centre de Contrôle** et la barre des menus.
|
||||
- Compatibilité avec le framework `CoreWLAN` et le daemon système `airportd`.
|
||||
@@ -54,7 +54,7 @@ Le module **Qualcomm FastConnect 7800 (WCN7850)** combine deux contrôleurs mat
|
||||
- **Initialisation & Patching du Firmware USB** :
|
||||
- Vérification de l'état QCA (`QCA_CHECK_STATUS`, `QCA_GET_TARGET_VERSION`).
|
||||
- Téléversement séquentiel du **RAMPATCH** (`rampatch_usb_00190200_bin`) et du **NVM** via les pipes de contrôle EP0 et Bulk OUT EP2.
|
||||
- Réinitialisation matérielle propre (`HCI_Reset`).
|
||||
- Réinitialisation matérielle propre (`HCI_Reset`) et interception Shadow VTable de `IOUSBHostDevice::deviceRequest` (slot `374` / `0x176`).
|
||||
- **Compatibilité Apple** :
|
||||
- Connexion fluide des périphériques Apple (Magic Mouse 2, Magic Keyboard, Magic Trackpad).
|
||||
- Audio Bluetooth (A2DP, HFP/HSP) et profils GATT/BLE.
|
||||
@@ -65,7 +65,7 @@ Le module **Qualcomm FastConnect 7800 (WCN7850)** combine deux contrôleurs mat
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
subgraph macOS["macOS Sequoia 15.x (Darwin 24)"]
|
||||
subgraph macOS["macOS Tahoe 26.x (Darwin 25) / Sequoia 15.x"]
|
||||
UI["Centre de Contrôle / Barre de Menus"]
|
||||
AirportD["airportd / CoreWLAN.framework"]
|
||||
BtD["bluetoothd / IOBluetoothFamily"]
|
||||
@@ -74,8 +74,8 @@ graph TD
|
||||
end
|
||||
|
||||
subgraph Kext["QualcommWireless.kext"]
|
||||
QWifi["QualcommWifi (IO80211Controller)\n• apple80211_ioctl\n• BHI/MHI Pipeline\n• BAR0 Windowing"]
|
||||
QBt["QualcommWireless (IOService)\n• DFU Firmware Upload\n• RAMPATCH + NVM\n• Registry Spoofing"]
|
||||
QWifi["QualcommWifi (IO80211Controller)\n• handleCardSpecific / Skywalk\n• BHI/MHI Pipeline\n• BAR0 Windowing"]
|
||||
QBt["QualcommWireless (IOService)\n• DFU Firmware Upload\n• RAMPATCH + NVM\n• Shadow VTable & Registry Spoofing"]
|
||||
end
|
||||
|
||||
subgraph Hardware["Puce Qualcomm WCN7850"]
|
||||
@@ -100,8 +100,8 @@ graph TD
|
||||
Le dossier [`docs/`](docs/) contient une documentation technique exhaustive :
|
||||
|
||||
- 📐 [**ARCHITECTURE.md**](docs/ARCHITECTURE.md) : Détail complet des interactions logicielles et matérielles, pipelines firmware et topologies de bus.
|
||||
- 🔵 [**BLUETOOTH.md**](docs/BLUETOOTH.md) : Analyse post-mortem du crash L2CAP au démarrage de session, séquence DFU et configuration `bluetoothd`.
|
||||
- 📡 [**NATIVE_WIFI.md**](docs/NATIVE_WIFI.md) : Implémentation du pilote `IO80211Controller`, table des IOCTLs Apple80211 et gestion Wi-Fi 7.
|
||||
- 🔵 [**BLUETOOTH.md**](docs/BLUETOOTH.md) : Analyse post-mortem du crash L2CAP au démarrage de session, séquence DFU et configuration `bluetoothd` sous Sequoia et Tahoe.
|
||||
- 📡 [**NATIVE_WIFI.md**](docs/NATIVE_WIFI.md) : Implémentation du pilote `IO80211Controller`, vtable Skywalk macOS Tahoe et table des IOCTLs Apple80211.
|
||||
- 🛠️ [**BUILD.md**](docs/BUILD.md) : Guide de compilation, injection dans l'EFI OpenCore et commandes de diagnostic.
|
||||
|
||||
---
|
||||
@@ -109,7 +109,7 @@ Le dossier [`docs/`](docs/) contient une documentation technique exhaustive :
|
||||
## Compilation
|
||||
|
||||
### Prérequis
|
||||
- Xcode 15+ ou 16+ sous macOS Sonoma ou macOS Sequoia.
|
||||
- Xcode 26+ (ex. Xcode 26.6 avec SDK macOS 26.5) sous macOS Tahoe, ou Xcode 16+ sous macOS Sequoia.
|
||||
- Outils en ligne de commande Xcode (`xcode-select --install`).
|
||||
|
||||
### Lancer la compilation
|
||||
|
||||
Reference in new issue
Block a user