NetToggle is a lightweight Android Quick Settings (QS) tile app for cellular network control. It allows you to create custom tile cycles, target one or both SIMs, build capability-aware shortcuts, execute secure broadcast automations, and troubleshoot network states with detailed diagnostics.
NetToggle executes privileged telephony commands via Root or Shizuku that standard Android apps cannot access. For older Android releases (Android 7β11), it utilizes an efficient headless reflection mechanism, while Android 12+ relies on native direct command dispatching.
- Preferred 5G (5G/4G/3G/2G): Recommended for daily use. Allows 5G SA and NSA (including UW, UC, 5G+, or 5G++ where supported) with LTE and legacy fallback.
- 5G Only (NR Only): Disables 4G, 3G, and 2G. Intended strictly for 5G SA networks. Service and calls may drop on NSA networks or without SA and VoNR provisioning.
- Preferred 4G (4G/3G/2G): Disables 5G while retaining LTE and legacy fallback. Useful for battery saving, reducing device heat, or stabilizing connections in fringe 5G areas.
- 4G Only (LTE/LTE-A): Locks to LTE without 3G/2G fallback. Calls require VoLTE; carrier aggregation is controlled by the modem and network.
- Preferred 3G (3G/2G): Disables 4G and 5G while allowing supported 3G and 2G networks.
- 2G Only (GSM/EDGE): Locks to 2G where legacy service remains available.
Note: If calls or cellular service fail in an Only mode, switch back to Preferred 5G or Preferred 4G.
- Custom Sequence: Choose an ordered cycle of 2 or 3 modes.
- Live State: Shows the active mode with an Auto, SIM 1, SIM 2, or Both badge.
- Auto Restore: Automatically restores your preferred mode after a configurable cooldown if Android, thermal management, or the carrier reverts it.
- Efficient Refresh: Controlled checks avoid continuous polling and unnecessary battery drain.
- Auto: Dynamically resolves the active data subscription and maps it to the physical SIM slot using native Android APIs.
- SIM 1 or SIM 2: Applies network mode changes to the selected physical SIM slot.
- Both SIMs: Reconciles and synchronizes mutually supported modes across both SIMs simultaneously and reports any partial failures.
Tip: If Auto detection fails on unusual hardware, select a SIM manually.
- Capability-Aware Actions: Create up to 4 routine shortcuts with custom names, network modes, and SIM targets.
- 1-Tap Launcher Widgets: Pin direct toggle actions to your home screen launcher.
- OEM Automation: Integrates seamlessly with Samsung Modes & Routines, Google Assistant, and third-party taskers.
Control NetToggle programmatically from Tasker, MacroDroid, Automate, or ADB shell scripts:
- Opt-In Security: External automation is disabled by default and requires opt-in with a secret authorization token.
- Live ADB Command Preview: Interactive builder generates ready-to-run shell commands and intent extras with one-tap clipboard copy.
- Sample ADB Shell Broadcast:
am broadcast -a com.dhangofa.networktoggle.SET_NETWORK_MODE \ -n com.dhangofa.networktoggle/.AutomationReceiver \ --es mode "5G" \ --ei sim 1 \ --es token "YOUR_SECRET_TOKEN"
- Supported Modes:
5G_ONLY(or5G),4G_ONLY(or4G,LTE),PREF_5G(orPREFERRED_5G),PREF_4G(orPREFERRED_4G),PREF_3G(orPREFERRED_3G),2G_ONLY(or2G) - Supported SIM Values:
1(SIM 1),2(SIM 2),3(Both)
- Root or Shizuku Required: Either must be active and authorized. Shizuku is recommended and can run through Root, ADB, or Wireless Debugging (trusted forks may add start-on-boot, watchdog, or TCP mode). Root mode supports Magisk, KernelSU, APatch, and compatible
sumanagers. - Read Phone State: Required for fast native SIM mapping and hardware capability detection. Without it, privileged shell fallbacks are used where available.
- Run at Startup: Briefly clears stale tile state after boot or app update. No persistent background service is used.
- Hardware Baseband Detection: Evaluates device baseband properties (
ro.telephony.default_network) to hide unsupported network modes. - Dual-SIM Mutual Support: When targeting Both SIMs, the UI automatically offers only modes supported by both slots.
- 2G/3G Sunset Registry: Built-in global carrier database dynamically hides deprecated legacy network options on known sunset networks.
- Clean Material 3 interface optimized for both portrait and landscape orientations.
- Interactive setup card, segmented controls, Fluid Animations.
- Supports Auto (System), Light, Dark, and high-contrast AMOLED themes with custom tactile feedback.
- In-App Diagnostic Logs: View and copy detailed reports including executed commands, exit codes, raw output (stdout/stderr), exceptions, execution state, and SIM resolution.
- Error Banners: Immediate visual feedback with recovery guidance when a command or permission fails.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- Minimum Version: Android 7.0 (Nougat, API 24)
- Target Version: Android 17 (API 37)
NetToggle is built strictly as an offline utility:
- π« Zero Ads
- π« Zero Analytics or Telemetry
- π« Zero Trackers
- π« No
android.permission.INTERNETdeclared (cannot connect to the web) - π« Zero Background Data Transmission
- π« Zero Personal Data Collection
Permission Transparency:
READ_PHONE_STATE: Strictly used to query active physical SIM slot configurations and detect carrier capability ceilings via Android's nativeSubscriptionManager. All operations are executed 100% locally on your device.
NetToggle is built with Kotlin, Java, and the standard Android Gradle toolchain.
git clone https://github.com/Dhangofa/NetToggle.git
cd NetToggle
./gradlew assembleReleaseFor step-by-step setup guides, routine integrations, and detailed technical troubleshooting, check out the official Wiki:
- 1. Execution Mode Configuration
- 2. Target SIM Setup & Quick Tile Cycle Guide
- 3. Adding the Tile to Quick Settings
- 4. App Shortcuts & Built-in OS Routines
- 5. Broadcast Automation (Tasker, MacroDroid, Automate)
- Frequently Asked Questions (FAQ)
- Bug Reports & Feature Requests: GitHub Issues
- Community Discussion: Telegram Group
NetToggle is open-source software licensed under the GNU General Public License v3.0. See the LICENSE file for details.
NetToggle uses original vector assets and icons created or customized specifically for this project.
- The NetToggle launcher icon and QS network icons were created for this project.
- UI outlines and vector assets are customized for Material Design 3 guidelines.
- Third-party trademarks (such as Android, Samsung One UI, Magisk, Shizuku, GitHub, Telegram) belong to their respective copyright holders.
See NOTICE.md for further information.










