ShizuStore

Amply

d4rken-org

0.5.0-beta0 · GitHub

Download APK
Power management Android 8.0+ 1 month ago GPL-3.0
261 ShizuStore
1.8k GitHub
43 Stars
3 MB Size

More about this app

Easy control of charging limits. Temporarily allows one full charge, then automatically restores your protective charge limit

Amply banner

Amply

GitHub release (latest SemVer including pre-releases) RB Status Code tests & eval Github Downloads Discord

Amply is experimental and pre-launch. Direct control is verified on a limited set of devices — device reports and feedback are welcome!

Amply is an Android controller for OEM battery charge-protection modes. Its primary action temporarily allows one full charge, then restores your protective charge limit automatically.

Features include:

  • One-tap "charge to 100% once", then automatic restore of your protective limit
  • A dashboard that reports charge state honestly — verified, last-requested, or unknown
  • Optional "reconnect to charge to 100%" gesture at the active hardware limit
  • Quick Settings tile and a home-screen widget for protect / full-charge actions
  • Charge history with per-charge curves — level, speed, and temperature over time
  • Branded light/dark themes, optional Material You, and contrast choices
  • Works via WRITE_SECURE_SETTINGS, Shizuku, or Porter

Currently supported for direct control:

  • Pixel 6a and newer, Android 15+ (Google charging optimization)
  • Samsung One UI 8 (multi-mode battery protection)
  • Samsung One UI 4 / 5 (legacy battery-protection toggle)
  • Xiaomi / Redmi / POCO on HyperOS 2 (charging protection)
  • OnePlus / Oppo / Realme on ColorOS 15 (charging protection; requires Shizuku or Porter)

Download

Source Status
GitHub (Pre-Release) https://github.com/d4rken-org/amply/releases

Support the project

Amply has no ads and doesn't sell your data, and it never will. Charge control is free; an optional upgrade unlocks the extras above and is what funds continued development.

Get help

Screenshots

License

Amply's code is available under a GPL v3 license, this excludes:

  • Amply icons, logos, mascots and marketing materials/assets.
  • Amply animations and videos.
  • Amply documentation.
  • Google Play screenshots.
  • Google Play texts & descriptions.
  • Translations.
Close

How Shizuku is used

Can control charging limits and grant settings access via `settings`, `pm grant`, `content insert` and `dumpsys` through Shizuku.

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

Amply uses Shizuku to read and apply the system charging protection settings that control how far the battery charges.

  • Apply charging limits: the user chosen limit, adaptive charging or unrestricted charging is applied on Pixel, Samsung, Xiaomi, OnePlus or Oppo and GrapheneOS devices with the settings put shell command through Shizuku.
  • Check current limit: the current charging protection state is read back to confirm and enforce the limit with the settings get shell command through Shizuku.
  • Control LineageOS charging: on LineageOS the charge enable, mode and percent limit are written to the Lineage settings provider with the content insert shell command through Shizuku, and capability is probed with the dumpsys lineagehealth shell command through Shizuku.
  • Self grant settings access: the app grants itself the system settings permission with the pm grant shell command through Shizuku so later limit changes can use the direct system path.
  • Discover device support: full setting lists are captured with the settings list shell command through Shizuku to detect charging keys and help add support for new devices.

Android APIs or commands used

  • /system/bin/settings get
  • /system/bin/settings put
  • /system/bin/settings list
  • /system/bin/pm grant
  • /system/bin/content insert
  • /system/bin/dumpsys lineagehealth
  • android.permission.WRITE_SECURE_SETTINGS
  • content://lineagesettings/system

Notable details

After the self grant succeeds, many devices can apply limits through the direct system settings path without Shizuku. GrapheneOS, LineageOS and OnePlus or Oppo system keys stay Shizuku only because only the shell identity can access them. All privileged writes are limited to an allowlist of charging protection keys and values.

Close

Changelog

What's new for version 0.5.0-beta0

What's Changed

Full Changelog: https://github.com/d4rken-org/amply/compare/v0.4.0-beta0...v0.5.0-beta0

Close

Permissions

11 permissions requested

  • android.permission.WRITE_SECURE_SETTINGS
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.POST_NOTIFICATIONS
  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_SPECIAL_USE
  • android.permission.BLUETOOTH_CONNECT
  • android.permission.BLUETOOTH
  • android.permission.WAKE_LOCK
  • android.permission.ACCESS_NETWORK_STATE
  • eu.darken.amply.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23
Close