Skip to content

Repository files navigation

macOS 13+ DriverKit Native WiFi 6 Status License

AIC8800 macOS WiFi 6 Driver

Native macOS DriverKit driver for AIC8800-based USB WiFi 6 adapters

No kext. No hacks. Pure DriverKit.
Apple Silicon + Intel • 2.4GHz + 5GHz • WPA2/WPA3


Supported Devices

Device Chipset USB ID Status
HOCO HI34 AIC8800 A69C:8D81 ✅ Tested
UGREEN AX900 AIC8800D80 A69C:8D83 ✅ Supported
Tenda U11 AIC8800D80 368B:8D8X ✅ Supported
AIC8800D80 Clones AIC8800D80 A69C:8D80 ✅ Supported

Features

WiFi 6 (802.11ax)

  • ✅ Dual-band 2.4GHz / 5GHz

  • ✅ Up to 286 Mbps per band

  • ✅ MU-MIMO support (firmware dependent)

  • ✅ Beamforming support

macOS Native

  • ✅ DriverKit (no kext required)

  • ✅ Apple Silicon (M1/M2/M3/M4)

  • ✅ Intel Mac support

  • ✅ macOS 13.0 Ventura+

Security

  • ✅ WPA2-Personal

  • ✅ WPA3-Personal

  • ✅ Hardware encryption offload

  • ✅ 802.11i compliant

Architecture

  • ✅ USB 2.0 interface

  • ✅ FullMAC driver model

  • ✅ Companion app (SwiftUI)

  • ✅ System extension install


Current Status

⚠️ Development Status: This driver is a work-in-progress skeleton. The core architecture is in place but it has not been tested on real hardware and several components need completion.

What Works

  • ✅ Project structure and DriverKit skeleton
  • ✅ USB device matching definitions
  • ✅ User client for app-to-driver communication
  • ✅ Companion app UI
  • ✅ HAL initialization framework
  • ✅ 802.11 frame builders (probe request, auth, assoc, deauth)

What Needs Work

  • 🔄 Firmware loading sequence (needs real firmware files)
  • 🔄 USB control transfer completion handling (async synchronization)
  • 🔄 Mode switch from mass-storage mode (requires companion app or udev-like mechanism)
  • 🔄 RX data path to macOS network stack
  • 🔄 WPA2/WPA3 4-way handshake
  • 🔄 Bluetooth support (AIC8800 has integrated BT)

Quick Start

1. Clone & Build

git clone https://github.com/brkNx/AIC8800-macOS-WiFi-Driver.git
cd AIC8800-macOS-WiFi-Driver
chmod +x setup.sh
./setup.sh

2. Open in Xcode

open AIC8800WiFi.xcodeproj

3. Configure Signing

  1. Select AIC8800WiFi target → Signing & Capabilities
  2. Select your Development Team
  3. Repeat for AIC8800WiFi_DEXT target

4. Build & Run

  1. Press ⌘R to build and run
  2. Click Install Driver in the app
  3. Approve in System Settings → Privacy & Security

5. Connect

  1. Plug in HOCO HI34
  2. Click Scan in the app
  3. Select network → Enter password
  4. Done! ✅

Architecture

┌─────────────────────────────────────────────────────────────────┐
│                     AIC8800 WiFi Driver                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────┐    ┌─────────────────────┐            │
│  │   AIC8800_App       │    │   AIC8800_DEXT       │            │
│  │   (SwiftUI App)     │◄──►│   (DriverKit DEXT)   │            │
│  │                     │    │                     │            │
│  │  • Status UI        │    │  • USB Lifecycle    │            │
│  │  • Device Detection │    │  • Register I/O     │            │
│  │  • Install Driver   │    │  • Firmware Upload  │            │
│  │  • Scan Networks    │    │  • MAC/PHY Init     │            │
│  │                     │    │  • 802.11 State     │            │
│  └─────────────────────┘    └──────────┬──────────┘            │
│                                        │                        │
│                                        ▼                        │
│                              ┌─────────────────┐               │
│                              │  USB Hardware    │               │
│                              │  (AIC8800 Chip)  │               │
│                              └─────────────────┘               │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

USB Enumeration Flow

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│  Stage 0     │     │  Stage 1     │     │  Stage 2     │
│  1111:1111   │────►│  A69C:8D80   │────►│  A69C:8D81   │
│  Mass Storage│     │  Boot ROM    │     │  WiFi + BT   │
└──────────────┘     └──────────────┘     └──────────────┘
       │                    │                    │
       │ SCSI Command       │ Firmware           │ Ready
       │ FD 00...00 F2      │ Upload             │
       ▼                    ▼                    ▼

Project Structure

AIC8800-macOS-WiFi-Driver/
│
├── 📱 AIC8800_App/              # Companion App
│   ├── Sources/
│   │   ├── AppDelegate.swift    # App lifecycle
│   │   ├── ContentView.swift    # Main UI
│   │   └── StatusManager.swift  # USB detection & driver mgmt
│   ├── Info.plist
│   └── AIC8800_App.entitlements
│
├── 🔧 AIC8800_DEXT/             # DriverKit Extension
│   ├── Headers/
│   │   └── AIC8800_Driver.h     # Hardware definitions
│   ├── Sources/
│   │   ├── AIC8800_USB.cpp      # USB lifecycle & matching
│   │   ├── AIC8800_HALInit.cpp  # Power-on & calibration
│   │   ├── AIC8800_NetIf.cpp    # Network interface
│   │   ├── AIC8800_UserClient.cpp # App-to-driver communication
│   │   ├── AIC8800_USB.iig      # USB interface definition
│   │   ├── AIC8800_NetIf.iig    # Network interface definition
│   │   └── AIC8800_UserClient.iig # User client interface
│   ├── Info.plist
│   └── AIC8800_DEXT.entitlements
│
├── 📦 Firmware/                  # Firmware files (not included)
│   └── aic8800D80/
│
├── README.md
├── LICENSE
├── setup.sh
└── .gitignore

Installation Guide

Development (Personal Team)

# 1. Build the project
xcodebuild -scheme AIC8800WiFi -configuration Debug build

# 2. Run the app
open ~/Library/Developer/Xcode/DerivedData/AIC8800WiFi-*/Build/Products/Debug/AIC8800WiFi.app

# 3. Click "Install Driver" in the app
# 4. Approve in System Settings → Privacy & Security

Distribution (Developer ID)

# 1. Archive in Xcode
# Product → Archive → Distribute App → Developer ID

# 2. Notarize
xcrun notarytool submit AIC8800WiFi.zip --apple-id "your@email.com" --password "app-specific-password" --team-id "TEAMID"

# 3. Staple
xcrun stapler staple AIC8800WiFi.app

Troubleshooting

Device Not Detected

# Check USB connection
system_profiler SPUSBDataType | grep -A 5 "AIC\|HOCO\|A69C"

# Check DEXT installation
systemextensionsctl list | grep aic8800

# Check system log
log show --predicate 'subsystem == "com.aic8800.wifi"' --last 5m

Driver Fails to Load

# Check SIP status
csrutil status

# For development, disable DEXT restrictions
sudo csrutil disable --without kext --without dext

# Reboot after SIP changes
sudo reboot

WiFi Not Working

# Check if interface exists
ifconfig | grep en

# Check driver loaded
kextstat | grep aic8800

# Reset USB
sudo ifconfig en0 down && sudo ifconfig en0 up

Firmware

The AIC8800 requires proprietary firmware files:

File Purpose
fw_adid_8800d80_u02.bin Main firmware
fw_patch_8800d80.bin Patch file

⚠️ Note: Firmware files are proprietary and cannot be distributed. Contact the device manufacturer or check the Linux driver repository for firmware extraction methods.


Technical Details

Register Map

Address Name Description
0x0000 SYS_CTRL System control
0x0008 CHIP_ID Chip identifier
0x0100 MAC_CTRL MAC control
0x0200 PHY_CTRL PHY control
0x0300 RF_TX_CTRL RF TX control
0x0400 DMA_TX_CTRL DMA TX control
0x0500 INT_STATUS Interrupt status

USB Control Transfers

Request Code Direction Description
READ_REG 0x01 IN Read 32-bit register
WRITE_REG 0x02 OUT Write 32-bit register
READ_MEM 0x03 IN Read memory block
WRITE_MEM 0x04 OUT Write memory block
FIRMWARE 0x05 OUT Upload firmware

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the GNU General Public License v2.0 - see the LICENSE file for details.


Acknowledgments

RTL8812AU Driver
DriverKit WiFi reference
AIC8800 Linux Driver
Linux driver reference
Apple DriverKit
Official documentation

Made with ❤️ for macOS
Star ⭐ this repo if you find it useful!

About

macOS DriverKit driver for AIC8800 USB WiFi 6 adapters (HOCO HI34, UGREEN AX900)

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages