Skip to content

Releases: Dhangofa/NetToggle

v1.0.31

Choose a tag to compare

@Dhangofa Dhangofa released this 02 Aug 04:38
973cee3

NetToggle v1.0.31

Highlights

  • Fixed Samsung One UI dual-SIM switching behavior.
  • Added Target SIM selection with Auto, SIM 1, and SIM 2 options.
  • Auto mode now resolves the active data subscription to the correct physical SIM slot before applying network mode changes.
  • Added Android 10+ native subscription-to-slot mapping using SubscriptionManager.
  • Added dumpsys isub fallback for older Android versions and OEM-specific subscription layouts.
  • Added safe failure behavior when Auto SIM detection cannot resolve a valid SIM slot.
  • Added Toast feedback when Auto SIM detection fails, asking the user to choose SIM manually.
  • Added persistent app warning when Auto SIM detection fails.
  • Cleared cached Quick Settings tile state when execution mode changes.
  • Cleared cached Quick Settings tile state when Target SIM selection changes.
  • Added boot/app-update cache invalidation to avoid stale tile state after reboot or app replacement.
  • Updated network state readback to use subscription IDs for preferred_network_mode reads.
  • Manual SIM readback now resolves SIM slot to subscription ID before reading preferred_network_mode.
  • Expanded preferred network mode mappings for additional OEM/ROM variants.

Preferred Network Mode Mapping Improvements

  • Preferred 4G now recognizes additional legacy modes:

    • 8
    • 10
    • 12
    • 15
    • 17
    • 19
    • 20
    • 22
  • Preferred 5G now recognizes legacy modes from:

    • 24 through 33

Notes

  • Root or Shizuku is still required.
  • Auto Target SIM is recommended for most users.
  • If Auto detection does not work on a device, choose SIM 1 or SIM 2 manually from the app.
  • GitHub release builds and F-Droid builds may use different signing keys, so switching between install sources may require uninstalling first.

Full Changelog: v1.0.30...v1.0.31

v1.0.30

Choose a tag to compare

@Dhangofa Dhangofa released this 29 Jul 11:29
22fd829

NetToggle v1.0.30

What's Changed

  • Optimize NetToggle Root/Shizuku handling and QS tile performance by @Dhangofa in #1
  • Add app info, runtime version display, and developer links by @Dhangofa in #2
  • Prepare NetToggle for F-Droid and add app info UI by @Dhangofa in #4

Highlights

This release focuses on improving NetToggle’s reliability, Root/Shizuku permission handling, QS tile responsiveness, active SIM handling, and overall system resource usage.

Root/Shizuku mode handling

  • Fresh install no longer auto-selects Root mode.
  • Added explicit execution mode states:
    • No mode selected
    • Root mode
    • Shizuku mode
  • Root permission is now checked when Root mode is selected or restored.
  • Shizuku permission is requested only when the user selects Shizuku mode.
  • Saved Shizuku mode now checks status without automatically showing the permission popup.
  • Shizuku callbacks now update UI only when Shizuku mode is currently selected.
  • Added safer cleanup for Shizuku listeners when MainActivity is destroyed.
  • Added cleanup for active Root permission check process/thread when MainActivity is destroyed.
  • Prevented stale Root/Shizuku permission callbacks from updating UI after MainActivity closes.

QS tile performance improvements

  • Added proper network state constants instead of raw numeric state values.
  • Added unknown/setup tile state instead of assuming 4G Only on first install.
  • Cached generated QS tile icons to avoid recreating Bitmap/Icon objects on every tile update.
  • Added immediate Switching... tile feedback while a mode change is running.
  • Moved Root/Shizuku command execution off the QS tile click path.
  • Added background executor for network mode switching.
  • Added Android 7+ compatible main-thread UI update handling.
  • Added duplicate-tap protection to avoid queuing multiple toggle commands.
  • Tile state now updates only after command execution succeeds.
  • Previous tile state is preserved if Root/Shizuku command execution fails.

SIM and network mode handling

  • Removed hardcoded -s 0 behavior.
  • Added active data SIM detection using multi_sim_data_call.
  • Mapped active data SIM index to phone command index:
    • multi_sim_data_call=1cmd phone -s 0
    • multi_sim_data_call=2cmd phone -s 1
  • Added current mode detection using legacy preferred_network_mode1/2 values.
  • Added legacy mode ID mapping:
    • 11 → 4G Only
    • 23 → 5G Only
    • 33 → Preferred 5G
    • 9 → Preferred 4G
  • Current mode is read only when cached tile state is unknown, reducing unnecessary shell/Shizuku calls during normal QS panel refresh.

Resource usage improvements

  • Reduced unnecessary command execution when pulling down Quick Settings.
  • Reduced CPU overhead by using cached tile state during normal QS refresh.
  • Removed repeated Shizuku reflection lookup by caching the newProcess method.
  • Cached regex pattern used for legacy mode parsing.
  • Removed unused command result stderr storage.
  • Added process cleanup after Root/Shizuku command execution.

Adds a lightweight app info/developer section to the NetToggle configuration screen.

  • Show app title and runtime APK version.
  • Add developer section with person icon and developer name.
  • Add icon-only GitHub and Telegram links.
  • Use lightweight VectorDrawable icons.
  • Open GitHub/Telegram links externally using browser/app intent.
  • Keep UI changes isolated to MainActivity and activity_main.xml.
  • No QS tile behavior or background execution changes.

Notes

  • Root or Shizuku is required.
  • On fresh install, open the app and select either Root or Shizuku mode first.

Full Changelog: v1.0-2...v1.0.30

v1.0.2

Choose a tag to compare

@Dhangofa Dhangofa released this 26 Jul 17:25
ee246d9

🔄 Update Notes

This release updates the build configuration to meet the strict Free and Open Source Software ( FOSS ) requirements for inclusion in the IzzyOnDroid repository . There are no changes to the application features or user interface in this update .

Full Changelog: v1.0-1...v1.0-2

v1.0.1

Choose a tag to compare

@Dhangofa Dhangofa released this 25 Jul 19:51
e693315

🎉 Welcome to the First Release of NetToggle!

This is the initial stable release of NetToggle, a lightweight Quick Settings tile designed to force specific cellular network modes directly from your Quick Settings, bypassing OEM restrictions.

✨ Features included in v1.0-1:

  • One-Tap Network Switching: Seamlessly cycle between 4G Only, 5G Only, Pref 5G, and Pref 4G directly from the Quick Settings panel.
  • Dual Execution Modes:
    • Root Mode (su): For rooted users (Magisk/KernelSU/Apatch) requiring zero background overhead.
    • Shizuku Mode (ADB): For non-rooted users, leveraging UID 2000 shell permissions via the Shizuku app.

🛠️ Installation & Setup:

  1. Download the NetToggle-v1.0.1.apk file from the Assets section below.
  2. Install the APK on your device.
  3. Open the NetToggle app from your app drawer.
  4. Select your preferred execution method:
    • If rooted, select Root (su) and grant superuser access when prompted or in root manager.
    • If non-rooted, ensure Shizuku is running in the background, select Shizuku (ADB), and tap "Allow" on the authorization popup.
  5. Pull down your status bar, edit your Quick Settings layout, and drag the NetToggle tile into your active panel.

⚠️ Note on MIUI/HyperOS:

If the tile does not update immediately upon tapping, ensure NetToggle is allowed to run in the background in your device's battery/app settings.
Full Changelog: https://github.com/Dhangofa/NetToggle/commits/v1.0-1