Skip to content

Add optional toggle to allow deauth on the internal Wi-Fi radio - #92

Open
Loukious wants to merge 1 commit into
zalexdev:mainfrom
Loukious:feat/internal-deauth-toggle
Open

Add optional toggle to allow deauth on the internal Wi-Fi radio#92
Loukious wants to merge 1 commit into
zalexdev:mainfrom
Loukious:feat/internal-deauth-toggle

Conversation

@Loukious

@Loukious Loukious commented Sep 7, 2026

Copy link
Copy Markdown

Problem

The app hard-assumed the internal Wi-Fi radio (wlan0/swlan0) can never perform deauthentication. In the handshake attack (type 3) the deauth interface was silently swapped to the scan adapter, or deauth was skipped entirely; in the standalone deauth dialog (type 7) the attack was refused outright with "internal wifi adapter does not support packet injection".

That assumption is wrong for devices whose internal radio does support monitor mode and injection — e.g. Qualcomm qcacld chipsets, where airmon-ng start wlan0 creates a working wlan0mon monitor vif.

Fix

Gate the old behavior behind a new Settings switch — "Deauth with internal adapter" — rather than removing it, so devices whose internal radio genuinely cannot inject keep the current safe behavior:

  • Off (default): exactly the previous behavior — internal-radio deauth interfaces are swapped to the scan adapter (with a message that now mentions the setting), or deauth is skipped / refused as before
  • On: the internal radio is allowed as a deauth interface in both the handshake attack and the standalone deauth dialog

The toggle lives next to the existing internal-adapter settings and is hidden in rootless mode (no internal radio exists in the VM there).

Deliberately out of scope

Monitor-mode enable/disable commands are untouched. Devices that need airmon-ng for the internal radio can already configure that per adapter via Settings → Custom monitor commands — no fallbacks or auto-detection were added.

Verified on a Xiaomi 25053PC47G (Android 17, KernelSU-Next, qcacld qca_cld3_wcn7750): with airmon-ng commands configured on the internal adapter card and the toggle enabled, deauth runs on wlan0mon.

The app hard-assumed the internal radio (wlan0/swlan0) can never do
deauthentication, so attacks either silently swapped the deauth
interface to the scan adapter or skipped deauth entirely. That is
wrong for devices whose internal radio does support monitor mode and
injection (e.g. Qualcomm qcacld chipsets).

Gate the old behavior behind a new Settings switch instead of removing
it, so devices whose internal radio genuinely cannot inject are
unaffected:

- Off (default): exactly the previous behavior - internal-radio deauth
  interfaces are swapped to the scan adapter or deauth is skipped
- On: the internal radio is allowed as a deauth interface in the
  handshake attack (type 3) and the standalone deauth dialog (type 7)

Monitor-mode handling is untouched: enabling/disabling still uses the
existing per-adapter custom commands, so airmon-ng-based setups keep
working via Settings -> Custom monitor commands.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant