Control the WiFi monitor mode on rooted Android devices with Qualcomm Snapdragon chipsets.
AmWF is an Android application that enables and disables WiFi monitor mode using Qualcomm's con_mode driver parameter. Monitor mode is required for wireless network analysis, packet capture, and WPA/WPA2 handshake capture.
The app automatically detects your device's chipset, root method, WiFi driver, and tests injection/capture capabilities before enabling monitor mode.
AmWF identifies Snapdragon chipsets by codename and CPU part number. The following are explicitly recognized:
| Generation | Chipset | Codename |
|---|---|---|
| Flagship | Snapdragon 8 Gen 3 | kalama |
| Flagship | Snapdragon 8 Gen 2 | cape |
| Flagship | Snapdragon 8+ Gen 2 | - |
| Flagship | Snapdragon 8 Gen 1 | taro |
| Flagship | Snapdragon 8+ Gen 1 | - |
| Flagship | Snapdragon 888 / 888+ | lahaina, haydn |
| Flagship | Snapdragon 870 | kona, alioth, cpu7pro |
| Flagship | Snapdragon 865 | kona, msmnile |
| Flagship | Snapdragon 860 | vayu |
| Flagship | Snapdragon 855 / 855+ | msmnile |
| High-end | Snapdragon 8s Gen 3 | crown |
| High-end | Snapdragon 780G | waipio |
| High-end | Snapdragon 778G / 778G+ | waipio |
| High-end | Snapdragon 768G | lito |
| High-end | Snapdragon 750G | atoll, sm7225 |
| Mid-range | Snapdragon 7 Gen 2 | pineapple |
| Mid-range | Snapdragon 7 Gen 1 | pineapple, yupik |
| Mid-range | Snapdragon 730G | holi |
| Mid-range | Snapdragon 720G | corona |
| Mid-range | Snapdragon 695 | sm6350 |
| Mid-range | Snapdragon 6 Gen 1/2 | qsm |
| Entry | Snapdragon 680 | bengal |
| Entry | Snapdragon 665/670/675 | trinket |
| Entry | Snapdragon 662 | bengal |
| Laptop | Snapdragon 7c Gen 2 | saipan |
Other Snapdragon chipsets may work if they expose con_mode through the Qualcomm WiFi driver (QCACLD). The app checks for con_mode at runtime and reports compatibility automatically.
| Method | Supported |
|---|---|
| Magisk | Yes |
| KernelSU | Yes |
| APatch | Yes |
| phh-su | Yes |
| SuperSU | Yes |
| Generic su | Yes |
The app searches for con_mode across multiple Qualcomm driver modules:
| Module Path | Typical Hardware |
|---|---|
/sys/module/wlan/parameters/con_mode |
Older Snapdragon (855, 865, 860) |
/sys/module/hdd/parameters/con_mode |
Snapdragon 888, 8 Gen series |
/sys/module/kiwi_v2/parameters/con_mode |
Snapdragon 8 Gen 2+ |
/sys/module/kiwi/parameters/con_mode |
Snapdragon 6/7 series |
/sys/module/wcn/parameters/con_mode |
Qualcomm WCN6xxx |
| Requirement | Minimum |
|---|---|
| Android version | 7.0 (API 24) |
| Root access | Required |
| Architecture | ARM64 (aarch64) |
1. App launches
└─> Detects root, chipset, WiFi driver, con_mode path
└─> Tests write access to con_mode
└─> Tests injection and capture capabilities
2. User taps "ACTIVAR MONITOR"
└─> Disables WiFi service (svc wifi disable)
└─> Writes con_mode = 4 (monitor mode)
└─> Brings wlan0 DOWN
└─> Sets interface to monitor mode (iw dev wlan0 set monitor)
└─> Brings wlan0 UP
└─> Re-enables WiFi service (svc wifi enable)
3. User taps "VOLVER A NORMAL"
└─> Disables WiFi service
└─> Writes con_mode = 0 (managed mode)
└─> Brings wlan0 DOWN
└─> Sets interface to managed mode (iw dev wlan0 set type managed)
└─> Brings wlan0 UP
└─> Re-enables WiFi service
| Value | Mode | Description |
|---|---|---|
| 0 | STA | Managed / Normal mode |
| 4 | Monitor | Monitor mode (used by AmWF) |
The app tests your device's actual capabilities before enabling monitor mode:
| Capability | What It Means |
|---|---|
| Injection | Device can transmit custom packets |
| Capture | Device can capture all WiFi traffic |
| Passive only | Device can only listen to traffic passively |
Results vary by device and driver. The app reports these capabilities in the compatibility section at startup.
- Download the latest release from Releases
- Install the APK on your rooted Android device
- Grant root access when prompted
The app has two sections:
Device Compatibility - Shows your device's chipset, WiFi driver, root status, con_mode path, and tested capabilities.
WiFi Mode - Shows the current mode (Normal / Monitor) with interface details (name, MAC address, frequency).
- ACTIVAR MONITOR - Switches the WiFi interface to monitor mode
- VOLVER A NORMAL - Returns to managed mode
- Language button (ES/EN) - Toggles between Spanish and English
On first launch, the app automatically runs a compatibility check. This involves temporarily switching to monitor mode to test capabilities, then restoring normal mode. WiFi may briefly disconnect during this process -- this is expected behavior.
app/src/main/java/com/hitomatito/amwf/
├── MainActivity.kt # UI and activity lifecycle
├── MonitorModeManager.kt # Monitor mode enable/disable logic
├── DeviceCompatibilityChecker.kt # Chipset, root, driver detection
├── ShellExecutor.kt # Root shell execution
└── LocaleHelper.kt # Language switching
| Technology | Purpose |
|---|---|
| Kotlin | Primary language |
| Material Design 3 | UI components |
| Coroutines | Async shell commands |
| View Binding | Type-safe view access |
- Qualcomm only -- Does not work on MediaTek, Exynos, or other chipsets
- Root required -- Cannot modify WiFi driver parameters without root
- Driver dependent -- Newer Qualcomm drivers (cnss_pci/WCN) may not expose
con_mode - SELinux -- Strict SELinux policies may block access to
con_mode - Injection not guaranteed -- Most devices support passive capture only; packet injection depends on the specific driver and chipset
MIT License. See LICENSE.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes
- Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
- Bug reports: Issues
- Feature requests: Discussions
AmWF © 2026
