AOD Battery Saver Override

Keep Always On Display available while Battery Saver is enabled.

Current upstream release: 0.1.3. Requires an Xposed framework with modern API 102 support. Supports Android 16 QPR2 (SDK 36) and Android 17 (SDK 37).

Updates from 0.1.2 use the same signing key and can be installed directly. Reboot after updating so the framework hook is reloaded.

To upgrade from 0.1.1, uninstall the old APK, install the latest release, enable the module again in LSPosed with system scope, and reboot. The signing key changed in 0.1.2.

  • Package: dev.mirsella.aodsaveroverride
  • Support: https://github.com/mirsella/aod-battery-saver-override/issues
  • Source: https://github.com/mirsella/aod-battery-saver-override

Releases

0.1.3

Stable

9/22/2026, 10:03:03 AM

Changes

  • Fix AOD being blocked by Battery Saver on Android 17 (SDK 37). Previous versions skipped the framework hook because the compatibility map only included SDK 36.
  • Add SecretSpec and Proton Pass support for local signed builds with just build-release.
  • Version code: 4. Requires a framework supporting modern Xposed API 102.

Verification

Tested the Android 17 fix on a POCO F5 running SDK 37 with Vector 2.2:

  • Enabled AOD from Quick Settings while Battery Saver was on.
  • Toggled Battery Saver off and on; AOD stayed enabled and available.
  • Confirmed the phone entered the dozing state with SystemUI's DozeService active.
  • Checked that Battery Saver's location, brightness, and sound restrictions still applied.

CI debug and signed release builds passed. Published APKs come from that run. The release APK's signature, version, and API 102 metadata were verified.

Updating

Install the release APK over 0.1.2, keep the module enabled with system scope, and reboot. This release uses the same signing key as 0.1.2.

Upgrading from 0.1.1 requires uninstalling the old APK first because the signing key changed in 0.1.2. Install the latest release, enable it again in LSPosed, and reboot.

Release APK SHA-256:
17063f0bc167a06f1cede05515b71f3891b6d3ccf3efd44ef30e2f8b3005805a

Assets

1

0.1.2

Stable

9/22/2026, 9:19:43 AM

Changes

  • Target modern Xposed API 102 and build against io.github.libxposed:api:102.0.0.
  • Require a framework with API 102 support.
  • Use a dedicated release signing key for local and GitHub Actions builds.

Version name: 0.1.2. Version code: 3.

Upgrading from 0.1.1

The previous release used a debug signing key that could not be recovered. This release uses a new key, so Android cannot install it over 0.1.1.

Uninstall the old APK, install aod-battery-saver-override-release.apk, enable the module again in LSPosed, and reboot. Keep the recommended system scope. Future releases will reuse this key so they can update 0.1.2 directly.

Release certificate SHA-256:

01fdb65611bf38d3e63c851a8e99d536bfd1e9623e2a9bb54e52efaaabb9b27c

Verification

  • Debug and release builds passed locally and in GitHub Actions.
  • Verified the release APK signature, package ID, version code, and packaged Xposed metadata.
  • On-device behavior with API 102 has not been tested.

Assets

1

0.1.1

Stable

4/21/2026, 8:24:00 AM

Update release for upstream version 0.1.1.

  • Add LSPosed API 101 support metadata note
  • Point this metadata repo at the current upstream release
  • Attach the 0.1.1 release APK

Assets

1

0.1.0

Stable

3/23/2026, 9:28:18 AM

Initial release.

  • Keep AOD available while Battery Saver is enabled
  • Hook BatterySaverPolicy#getBatterySaverPolicy(int) in system_server
  • Leave non-AOD Battery Saver behavior unchanged

Assets

1