Skip to content

Repository files navigation

NetToggle

NetToggle Icon

Build status GitHub release License

Get it on F-Droid Get it on IzzyOnDroid Get it on GitHub Get it on Orion Store


📖 Overview

NetToggle is a lightweight Android Quick Settings tile app for switching cellular network modes directly from the QS panel. It is built for users whose Android ROM, OEM skin, or carrier configuration hides strict 5G/4G controls or makes network mode switching inconvenient.

NetToggle uses privileged shell access through Root or Shizuku to run Android telephony commands that normal Android apps cannot access. Network behavior can still depend on the device, ROM, modem, SIM setup, and carrier support.

⭐ What NetToggle Can Do

  • Switch network modes directly from a Quick Settings tile
  • Force 5G Only where supported
  • Force 4G Only / LTE Only where supported
  • Set Preferred 5G or Preferred 4G
  • Use Root or Shizuku execution mode
  • Target Auto, SIM 1, or SIM 2
  • Handle single-SIM and dual-SIM devices
  • Avoid background polling and unnecessary battery use
  • Keep a clean single-screen setup UI with light/dark styling

🚧 Why It Was Made

Modern Android skins, often restrict or completely hide advanced network mode selections (such as locking the device strictly to 5G or 4G to prevent unwanted network drops). Furthermore, standard third-party Android apps are only providing pref 4G and pref 5G not locking to 4G only or 5G only.

NetToggle bridges this gap by completely bypassing standard Android APIs. Instead of asking the system to change the network, it executes raw baseband telephony shell commands (cmd phone set-allowed-network-types-for-users) as a privileged user, direct network mode switching on supported devices/ROMs.

⚙️ Working Modes & Requirements

To execute the privileged baseband commands, NetToggle requires an elevated execution environment. It features a built-in UI to select between two independent working modes:

1. Root Mode (su)

  • Requirements: A rooted device (e.g., Magisk, Apatch or KernelSU).

2. Shizuku Mode (ADB)

  • Requirements: The Shizuku application installed and running.

💳 Target SIM Selection

  • Auto: Detects the active data subscription and maps it to the correct physical SIM slot.
  • SIM 1: Applies network mode changes to physical SIM slot 1.
  • SIM 2: Applies network mode changes to physical SIM slot 2.

This helps on dual-SIM devices where Android subscription IDs do not always match physical SIM slot numbers.

📸 Screenshots

1 2 3 4 5 6

📱 Supported Android Versions

  • Minimum: Android 7.0, API 24
  • Target: Android 16, API 36

Tested device/ROM examples include:

  • Samsung One UI
  • HyperOS / MIUI
  • OriginOS / ColorOS / OxygenOS
  • Android custom/AOSP-based ROMs

Other OEM skins and custom ROMs may also work. If NetToggle does not work on your device, please open an issue with device details and logs.

🔐 Privacy

NetToggle is designed to work offline.

  • No ads
  • No analytics
  • No telemetry
  • No trackers
  • No internet permission
  • No background network communication
  • No personal data collection
  • No personal data transmission

External links are opened only when the user manually taps the GitHub or Telegram icons in the app.

🛠️ Build From Source

NetToggle can be built using the standard Android Gradle toolchain.

git clone https://github.com/dhangofa/NetToggle.git
cd NetToggle
./gradlew assembleRelease

🚀 Planned Improvements

  • Custom QS tile cycle selection
  • Preferred 3G mode
  • Preferred 2G mode
  • Copyable command error details for debugging

💬 Contact

For project-related questions, issue follow-up, or contact verification:

For bugs or feature requests, please use GitHub Issues when possible so device details, logs, and discussions stay trackable.

📜 License

NetToggle is licensed under the GNU General Public License v3.0. See the LICENSE file for the full license text.

🧾 Notices

NetToggle uses custom vector assets created or edited for this project.

  • The NetToggle launcher icon was created for this project using AI-assisted generation and manual vector editing.
  • The Quick Settings network icon was created for this project.
  • The app UI uses custom outlined vector icons created or edited for this project.
  • The GitHub and Telegram icons are used only as external link indicators.
  • GitHub and Telegram trademarks remain the property of their respective owners.
  • NetToggle does not use third-party icon packs as app identity assets.

See NOTICE.md for more details.

Releases

Packages

Contributors

Languages