Download Latest Version v1.2.0 source code.zip (13.3 MB)
Home / v1.0.30
Name Modified Size InfoDownloads / Week
Parent folder
NetToggle.apk 2026-07-29 46.0 kB
README.md 2026-07-29 3.9 kB
v1.0.30 source code.tar.gz 2026-07-29 4.5 MB
v1.0.30 source code.zip 2026-07-29 4.6 MB
Totals: 4 Items   9.2 MB 0

NetToggle v1.0.30

What's Changed

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=1 → cmd phone -s 0
  • multi_sim_data_call=2 → cmd 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: https://github.com/Dhangofa/NetToggle/compare/v1.0-2...v1.0.30

Source: README.md, updated 2026-07-29