WGControl
Automated WireGuard tunnel control via home Wi-Fi and Bluetooth.
Screenshots
Description
WGControl automatically manages your WireGuard tunnel based on your Wi-Fi and Bluetooth connections. It disables the tunnel when connected to your configured home Wi-Fi or selected Bluetooth devices (e.g., Android Auto) and re-enables it upon leaving.
This app is a VibeCode product. I have thoroughly tested all functions and believe everything works reliably.
However, I assume no responsibility for errors, results of errors, or atomic fallout.
Key Features:
- Wi-Fi & Bluetooth Detection: Automatically toggles the tunnel based on home networks or paired Bluetooth devices.
- Real-Time Monitoring: Continuously checks system-level VPN status and enforces the target state.
- Ping Connectivity Check (optional, off by default): Verifies internet availability via ICMP/TCP ping to a configurable host (example.com by default) before re-enabling the tunnel.
- Notification Pause Buttons: Manually override the tunnel from the status notification - indefinitely or for a configurable duration - without opening the app.
- Admin Password Protection: Secures configuration tabs using salted PBKDF2 hashing.
- Local Logging: Tracks tunnel commands and network events locally for up to 24 hours with search and export capabilities.
- QuickSettings Tiles and widget to control pause.
Essential Setup Steps:
1. WireGuard App: Enable "Allow user-controlled tunnel management" in settings.
2. Grant Permission: Allow "WireGuard tunnel control" permission.
3. Location Access: Set to "Allow all the time" for background Wi-Fi detection.
4. Battery Optimization: Disable for BOTH WGControl and the WireGuard app.
Note: Not affiliated with WireGuard or Jason A. Donenfeld. Controls the official WireGuard app via its public broadcast interface.
What’s new (1.47.61910)
- New: manage several WireGuard tunnels, with per-Wi-Fi-network assignment ("Configured Networks") and separate default tunnels for Wi-Fi, mobile data, and roaming
- New: home screen widget with status, current network, active tunnel, Bluetooth info, and the same pause buttons as the notification; adapts to widget size (abbreviated labels/icon buttons when narrow), background style and opacity configurable
- Changed: Quick Settings tile long-press now opens the app (Status tab) instead of the sy
Versions
Permissions
What the app asks the system for. Android only grants sensitive access after you confirm it.
- Internet accessSend and receive data over the internet.
- Network stateCheck whether and how the device is connected.
- Wi-Fi stateRead information about the Wi-Fi connection.
- Precise locationDetermine the location via GPS.
- Approximate locationDetermine the location via the network.
- Change Wi-FiTurn Wi-Fi on and off or switch networks.
- Location in backgroundDetermine the location while the app is not open.
- NEARBY_WIFI_DEVICES
Show 12 more permissions
- BluetoothConnect to Bluetooth devices.
- BLUETOOTH_ADMIN
- Bluetooth connectionConnect to paired Bluetooth devices.
- Foreground serviceKeep running in the background, visible in the status bar.
- FOREGROUND_SERVICE_CONNECTED_DEVICE
- FOREGROUND_SERVICE_LOCATION
- Run at startupStart automatically after the device is switched on.
- NotificationsShow notifications.
- REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
- permission.CONTROL_TUNNELS
- Prevent sleepingKeep the device from going to sleep.
- wgcontrol.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Comments