Aplicación Android para activar y desactivar el modo monitor WiFi en dispositivos Qualcomm Snapdragon con root.
AmWF es una herramienta que permite controlar el modo monitor de la interfaz WiFi en dispositivos Android con chipset Qualcomm Snapdragon. El modo monitor es necesario para realizar análisis de redes inalámbricas y capturar handshakes WPA/WPA2.
- 🔘 Control de Modo Monitor - Activa/Desactiva el modo monitor WiFi con un solo toque
- 🔍 Verificación de Compatibilidad - Detecta automáticamente si el dispositivo es compatible
- 📊 Información del Sistema - Muestra chipset, driver WiFi, estado de root y archivo con_mode
- 🌐 Soporte Multilingüe - Español e Inglés
- 🎨 Material Design 3 - Interfaz moderna y elegante
- 🔒 Seguridad - Verificación de root y restricciones SELinux
| Requisito | Mínimo | Recomendado |
|---|---|---|
| Android | 10 (API 29) | 13+ (API 33) |
| Root | Magisk / KernelSU / APatch / SuperSU | Magisk |
| Chipset | Qualcomm Snapdragon | Snapdragon 855+ |
| Arquitectura | aarch64 (ARM64) | aarch64 |
| Requisito | Versión |
|---|---|
| Android Studio | 2024.0+ |
| Kotlin | 1.9+ |
| Gradle | 8.0+ |
| JDK | 17+ |
- Descarga la última versión desde Releases
- Instala el APK en tu dispositivo
- Activa el modo monitor desde la app
# Clonar repositorio
git clone https://github.com/Hitomatito/AmWF.git
cd AmWF
# Abrir en Android Studio
# File > Open > seleccionar carpeta del proyecto
# Compilar
./gradlew assembleDebug
# El APK estará en: app/build/outputs/apk/debug/app-debug.apk┌────────────────────────────────────┐
│ AmWF [🌐 ES] │ ← Selector de idioma
│ Control de Modo Monitor WiFi │
│ │
│ ┌────────────────────────────────┐│
│ │ ● Compatibilidad del Dispositivo ││
│ │ ✓ Listo para usar ││
│ │────────────────────────────────││
│ │ 🔲 Snapdragon 855/855+ ││
│ │ 🛡️ Qualcomm WCNSS ││
│ │ 🔒 Magisk v27.0 ││
│ │ 📁 con_mode ││
│ └────────────────────────────────┘│
│ │
│ ┌────────────────────────────────┐│
│ │ ○ Modo WiFi ││
│ │ Modo Normal ││
│ │────────────────────────────────││
│ │ 📶 Interface: wlan0 ││
│ │ MAC: bc:6a:d1:b6:21:6c ││
│ └────────────────────────────────┘│
│ │
│ [ ACTIVAR MONITOR ] │
│ │
└────────────────────────────────────┘
| Estado | Color | Significado |
|---|---|---|
| 🟢 Verde | Cyan | Modo Monitor activo / Compatible |
| 🟠 Naranja | Coral | Modo Normal / No compatible |
| ⚪ Gris | Neutral | Error / Verificando |
- Verificar Compatibilidad - La app verifica automáticamente al iniciar
- Otorgar Permisos Root - Aprobar la solicitud de Magisk/KernelSU
- Presionar "ACTIVAR MONITOR" - El botón cambiará a "VOLVER A NORMAL"
- ¡Listo! - La antena está en modo monitor
- Presiona el botón con el código de idioma (ES/EN) en la esquina superior derecha
- La app se reiniciará con el nuevo idioma seleccionado
La app utiliza el método con_mode de Qualcomm para activar el modo monitor:
# Desactivar interfaz
ip link set wlan0 down
# Activar modo monitor (con_mode = 4)
echo 4 > /sys/module/wlan/parameters/con_mode
# Reactivar interfaz
ip link set wlan0 up
# Verificar modo
iw dev wlan0 info| Valor | Modo | Descripción |
|---|---|---|
| 0 | STA | Station (Normal) |
| 1 | Monitor | Modo monitor raw |
| 4 | AP | Access Point |
| 5 | P2P | Wi-Fi Direct |
La app verifica:
- Acceso Root - Detecta Magisk, KernelSU, APatch, SuperSU, phh-su
- Chipset - Verifica que sea Qualcomm Snapdragon
- Driver - Confirma que
/sys/module/wlan/parameters/con_modeexiste - Escritura - Prueba escribir en con_mode
La app detecta el chipset usando múltiples fuentes:
ro.hardware- Nombre interno del SoC/proc/cpuinfo- Información del CPU (Hardware, CPU part)ro.product.board- Plataforma de la placa
Tabla de identificación por CPU part (hex):
| CPU Part | Snapdragon |
|---|---|
| 0x070 | 855 |
| 0x072 | 865/870 |
| 0x080 | 888 |
| 0x081 | 8 Gen 1 |
| 0x084 | 8 Gen 2 |
| 0x086 | 8 Gen 3 |
AmWF/
├── app/
│ ├── src/main/
│ │ ├── java/com/hitomatito/amwf/
│ │ │ ├── MainActivity.kt # Actividad principal
│ │ │ ├── MonitorModeManager.kt # Gestión de modo monitor
│ │ │ ├── DeviceCompatibilityChecker.kt # Verificación de compatibilidad
│ │ │ └── LocaleHelper.kt # Helper de idiomas
│ │ ├── res/
│ │ │ ├── layout/
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── item_row_*.xml # Items de información
│ │ │ ├── drawable/ # Iconos vectoriales
│ │ │ ├── values/ # Strings español
│ │ │ └── values-en/ # Strings inglés
│ │ └── AndroidManifest.xml
│ └── build.gradle.kts
├── build.gradle.kts
├── settings.gradle.kts
└── gradle.properties
| Tecnología | Propósito |
|---|---|
| Kotlin | Lenguaje principal |
| Material Design 3 | Sistema de diseño UI |
| Coroutines | Programación asíncrona |
| SharedPreferences | Persistencia de configuración |
| View Binding | Acceso a vistas tipado |
- Solo Qualcomm Snapdragon - No funciona en MediaTek, Exynos, etc.
- Requiere Root - Sin root no es posible modificar el modo WiFi
- SELinux - Algunas configuraciones pueden bloquear el acceso
- No todas las redes - Captura de handshakes depende de muchos factores
- Modo Monitor Pasivo - El método
con_modesolo permite escaneo pasivo en la mayoría de dispositivos - Sin Inyección de Paquetes - Generalmente no es posible inyectar/tranmitir paquetes en este modo
- Captura Limitada - Algunos drivers solo permiten captura pasiva sin modificación de tramas
El método con_mode de Qualcomm tiene limitaciones importantes:
| Característica | Disponibilidad |
|---|---|
| Escaneo pasivo | ✅ Generalmente disponible |
| Captura de tramas | |
| Inyección de paquetes | ❌ Generalmente no disponible |
| Transmisión | ❌ No disponible |
La app incluye una verificación automática de estas capacidades. Algunos dispositivos con drivers específicos pueden soportar funcionalidades adicionales.
- Los datos se almacenan únicamente en SharedPreferences local
- No se envían datos a ningún servidor
- No se requiere internet para funcionar
- Root es necesario únicamente para modificar parámetros del kernel
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
- Fork el repositorio
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcion) - Commit tus cambios (
git commit -m 'Agregar nueva función') - Push a la rama (
git push origin feature/nueva-funcion) - Abre un Pull Request
- 🐛 Bugs: Abre un Issue
- 💡 Features: Solicita en Discussions
- 📖 Documentación: Mejora este README
Hecho con ❤️ para la comunidad de Android
© 2026 AmWF