Skip to content

feat: Linux WiFi + BLE + HS Capture bridge (no ESP32 required) #3

Description

@FusedStamen

Background

Running WatchDogsGo on a uConsole CM4 with HackerGadgets AIO v1 with no ESP32/C5 available. Built a Python bridge script (wdg_wifi_bridge.py) that emulates the projectZero serial protocol over a PTY, enabling full game functionality using the host's native Linux WiFi and Bluetooth adapters.

wdg_wifi_bridge.py

How it works

The bridge creates a PTY at /tmp/esp32-pty and symlinks it so the game can be launched with:

sudo ./run.sh /tmp/esp32-pty

It intercepts game serial commands and handles them natively on Linux:

Command | Handler -- | -- scan_networks | iw dev wlan1 scan scan_bt | bleak BLE scanner on hci adapter start_sniffer | tcpdump in monitor mode → pcapng start_handshake / start_handshake_serial | airodump-ng + hcxpcapngtool polling

Hardware tested on

  • uConsole CM4, HackerGadgets AIO v1
  • AC1200 WiFi card (wlan1) — wardriving + BLE
  • AWUS036ACM / MT7612U (wlan2) — packet sniff + HS capture
  • Internal UART Bluetooth (hci1) — BLE scanning

HS Capture approach

airodump-ng handles the mt76x2u driver better than hcxdumptool on kernel 6.12.x (radiotap header compatibility). The bridge polls the capture file every 10 seconds with hcxpcapngtool to detect new EAPOL/PMKID hashes and fires the game's handshake event (SSID:{name} AP:{bssid}) which triggers 200 XP, the handshake_hunter badge, and map marker.

Systemd service

ini
[Unit]
Description=WatchDogsGo WiFi + BLE Bridge
After=network.target bluetooth.target

[Service]
ExecStart=/home/fusedstamen/python/WatchDogsGo/.venv/bin/python3 /home/fusedstamen/python/WatchDogsGo/wdg_wifi_bridge.py --iface wlan1 --bt-iface hci1 --sniffer-iface wlan2 --no-monitor --loot-dir /home/fusedstamen/python/WatchDogsGo/loot
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

Notes

  • You mentioned in issue uConsole Wardriving without ESP32 #1 you'd consider landing a sanitised bridge script under extras/ with a proper security review pass — happy to work on that if useful
  • The script is in my fork at github.com/FusedStamen/WatchDogsGo
  • Dependencies: bleak, airodump-ng, hcxpcapngtool, tcpdump, iw

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions