Shizzi
0.4.0-rc.3 · GitHub
More about this app
Rootless Wi-Fi tethering bypass via Shizuku
Shizzi
Wi-Fi tethering over a Shizuku-privileged test network.
Creates a test TUN interface, sets it as the preferred tethering upstream, and forwards hotspot traffic through a Go datapath. Supports IPv4 and IPv6.
Requirements
- Android 11 (API 30+), arm64
- Shizuku 13.6.0+
Android 13 and up work outright. On Android 11 and 12 it depends on the device's tethering module; the app checks on first launch and offers to install the module it needs. See compatibility.
Install
Download the APK from the latest release.
Features
- ๐ Unlimited hotspot. Sharing draws on your regular data instead of your hotspot allowance.
- ๐ก๏ธ VPN compatible. Stay private on every connected device.
- โ๏ธ Uses your existing hotspot. No extra configuration required.
- ๐ No root. Shizuku is all it needs.
- ๐๏ธ One tap away. A quick settings tile starts and stops sharing from the notification shade.
- ๐ค Automatable. Start and stop from Tasker or MacroDroid. See automation.
Build
Needs the Android SDK with NDK, Go, and gomobile:
go install golang.org/x/mobile/cmd/gomobile@latest && gomobile init
./gradlew assembleDebug
How Shizuku is used
Can share mobile data over Wi-Fi hotspot without carrier checks via `TestNetworkManager`, `TetheringManager`, `pm install --apex --staged` and `svc power reboot`.
This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.
How this app uses Shizuku
Shizuku runs a privileged helper that bypasses carrier tethering checks and routes hotspot clients through a test network.
- Start hotspot bypass: start and stop the Wi-Fi hotspot from the main toggle, quick tile or automation intents, with the privileged helper creating a TUN interface and registering it as a test network so tethering uses it as upstream.
- Route with VPN choice: keep an active VPN working with tethering by binding the datapath to the VPN network, with modes to follow it automatically, require it or leave it unbound.
- Check device compatibility: run a compatibility check that reports whether the test network service and tethering preference are available on the device.
- Run connection diagnostics: run a diagnostics probe that creates a test TUN, restarts the hotspot and verifies upstream selection, network callbacks and datapath attachment, then shows the report.
- Update tethering module: download the tethering APEX file and stage it with the package manager when the check shows the device needs it.
- Reboot after update: reboot the device to activate the staged tethering module update.
Android APIs or commands used
android.net.TestNetworkManager.createTunInterfaceandroid.net.TestNetworkManager.setupTestNetworkandroid.net.TestNetworkManager.teardownTestNetworkandroid.net.TetheringManager.startTetheringandroid.net.TetheringManager.stopTetheringandroid.net.TetheringManager.setPreferTestNetworksandroid.net.TetheringManager.TetheringRequest.Builderandroid.net.wifi.WifiManager.startTetheredHotspotandroid.net.ConnectivityManager.requestNetworkandroid.net.ConnectivityManager.registerNetworkCallbackandroid.net.ConnectivityManager.getLinkPropertiesandroid.net.ConnectivityManager.getNetworkCapabilitiesandroid.app.ActivityThread.systemMain()pm install --apex --stagedsvc power reboot
Notable details
The tethering module download happens without Shizuku; only staging the downloaded file and rebooting to activate it use the privileged helper.
Changelog
What's new for version 0.4.0-rc.3
What's Changed
- fix: ignore VPNs running in other Android users by @carlelieser in https://github.com/carlelieser/shizzi/pull/38
- chore: release 0.4.0-rc.3 by @carlelieser in https://github.com/carlelieser/shizzi/pull/39
Full Changelog: https://github.com/carlelieser/shizzi/compare/v0.4.0-rc.2...v0.4.0-rc.3
Permissions
11 permissions requested
Sources
2 sources
Sources
2 sources