A compact, D-pad-friendly Android utility for rooted TCL Flip 2 phones. Power Saver can toggle any selected combination of Airplane Mode, Wi-Fi, Bluetooth, and Android Battery Saver, then reverse those selected changes on the next toggle.
- Select Airplane Mode, Wi-Fi, Bluetooth, and/or Battery Saver from an in-app configuration screen.
- Airplane Mode powers off cellular service while restoring unselected Wi-Fi and Bluetooth radios to their prior state.
- Restore selected Wi-Fi and Bluetooth radios to their normal on state on the reverse toggle.
- Arm selected Battery Saver while USB/external power is connected, then activate it automatically when external power is removed.
- Show the live battery percentage directly beneath the app title.
- Update Airplane Mode, Wi-Fi, Bluetooth, and Battery Saver status live while the app is open, including changes made through Android's native settings screens.
- Verify the requested system state and attempt rollback when verification fails.
- Keypad and D-pad navigation designed for the TCL Flip 2's 240×320 display.
- No analytics, network permission, advertising, or data collection.
- TCL Flip 2 or a compatible Android 11 device.
- Magisk or another
suimplementation that can grant root to apps. - An explicit Superuser grant for Power Saver.
This app intentionally invokes protected Android shell commands as root:
svc wifi enable|disablesvc bluetooth enable|disablecmd connectivity airplane-mode enable|disablecmd power set-mode 1|0settings get global ...for state verification
Review the source before granting root. The app accepts no command text, paths, URLs, or shell arguments from intents or user input; shell commands are assembled only from internal boolean state.
-
Download
PowerSaver-v1.0.3.apkfrom the v1.0.3 release. -
Transfer and install it:
adb install PowerSaver-v1.0.3.apk
-
Open Power Saver and approve the Magisk Superuser request.
-
Leave Toggle Selected set to Yes (the default), then move to a setting row and press the center/OK key to check or uncheck it. This only stages the item; it does not change the phone setting.
-
Move to Toggle Selected Setting or Toggle Selected Settings (depending on the selection count) and press the center/OK key to apply the checked group. Press it again to restore the same group.
-
Set Toggle Selected to No to gray out the bottom action and make the four setting rows operate as individual live toggles. Their live On/Off values appear only in this mode.
Selections can be edited while a group is active. Power Saver keeps a frozen copy of the active group for accurate restoration; edits become the next group. Turning Toggle Selected to No while the group is active restores the group and disables the mode in one step.
The build intentionally avoids Gradle. It requires:
- JDK with
javac,keytool, andjava - Android SDK Platform 35 by default
- Android SDK Build Tools 35.0.0 by default
zip,shasum, and eitheropensslor Python 3
./test.sh
./build.shThe APK is written to dist/PowerSaver-v1.0.3.apk.
On the first build, the script creates a local signing keystore and a random signing password. Both are excluded by .gitignore. Preserve them securely if you want future builds to update an already-installed copy. You can instead provide:
POWER_SAVER_KEYSTOREPOWER_SAVER_KEY_ALIASPOWER_SAVER_STOREPASSPOWER_SAVER_KEYPASS
Build tools/platforms can be overridden with BUILD_TOOLS_VERSION and ANDROID_PLATFORM_VERSION.
./test.shThe host-side tests cover reversible Airplane Mode and radio planning, staged and active selections, individual/group interaction, charging and deferred Battery Saver behavior, battery-percentage formatting and layout guards, shell construction and ordering, verification markers, and rollback construction.
- Root access can change protected device settings. Use at your own risk.
- The app is tested for the TCL Flip 2 on Android 11; behavior may differ on other firmware.
- Battery Saver can be selected while external power is detected. Applying it arms a private deferred request; an unplug broadcast activates Battery Saver through Magisk even when the app is closed. Restoring the group disarms the request and only disables Battery Saver when this app enabled it.
- Bluetooth transitions are asynchronous; the UI listens for Android state broadcasts and updates when the final state arrives.
- Airplane Mode itself is verified immediately; Wi-Fi/Bluetooth stabilization continues briefly in the background and the visible row states update from Android broadcasts.
- When Airplane Mode is selected, separately selected Wi-Fi or Bluetooth rows still turn those radios off; unselected radios retain their prior state.
- Toggle Selected defaults to Yes. Setting it to No disables the bottom group action, reveals the settings' live On/Off column, and restores individual row toggles. In individual mode the full-strength checkboxes track each power-saving action; saved group membership reappears when the mode returns to Yes.
- App preferences are stored privately and Android backup is disabled.
Power Saver contains no network permission and sends no telemetry. It does not collect device identifiers, accounts, contacts, messages, location, or usage data.
Forks are welcome. This repository does not accept issues or pull requests; see CONTRIBUTING.md.
MIT. See LICENSE.