ShizuStore

Battery Monitor

tswistak

1.7.2 · GitHub

Download APK
Power management Android 8.0+ 1 month ago GPL-3.0
59 ShizuStore
3.7k GitHub
91 Stars
4 MB Size

More about this app

Track and log battery capacity and parameters over time using Shizuku

Battery Monitor app icon

Battery Monitor

[Download on GitHub](https://github.com/tswistak/Battery-Monitor/releases/latest) [Download from F-Droid](https://f-droid.org/packages/codes.swistak.batterymonitor/)

Battery Monitor is a classic, no-nonsense Android battery app focused on clarity, reliability, and control.

See battery status at a glance, get meaningful notifications, and track battery behavior over time.

Battery Monitor screenshot 1 Battery Monitor screenshot 2 Battery Monitor screenshot 5 Battery Monitor screenshot 6

Highlights

  • Live battery percentage and status in notifications
  • Detailed current battery info (charge, temperature, voltage, health, plug state)
  • Access advanced battery info using root or Shizuku
  • Configurable battery alarms (for charge levels, temperature, and more)
  • Battery history/logging with CSV export
  • Home screen widgets
  • Privacy-friendly by design (no personal data collection)

Features

Main Notification

  • Persistent battery status in the notification area
  • Flexible display options for percentage/time/status content
  • Designed for quick readability

Battery Alarms

  • Alerts for full charge
  • Alerts when charge drops below or rises above selected levels
  • Optional temperature and health-related alerts

History and Logs

  • Built-in battery event logging
  • Filter and review battery events
  • Export logs to CSV for analysis

Widgets

  • Circle and full-size widget variants
  • Keep battery info visible without opening the app

Privacy

Battery Monitor processes battery and device information locally, including values exposed by the device such as a battery serial number. It does not transmit this information or collect it on external servers.

Project Background

This project is a fork of Battery Indicator Pro / BatteryBot Pro, with continued development and rebranding.

The main goal of the fork is to maintain and enhance the app to ensure it works well on modern Android versions. Check CHANGELOG for details on changes and updates.

Huge thanks to the original authors and contributors.

Development

Use Android Studio for development.

Build

./gradlew assembleDebug

Unit tests

./gradlew test

License

GNU GPL v3.0-or-later.
See LICENSE.

Release signing

GitHub APK releases since version 1.7.0 are signed with OpenPGP.

Fingerprint: 4A5C 1BDE 7687 85AD 68F2 C4F0 99B6 89A2 66FF 1B8B

Public key: docs/release-signing-key.asc.

Close

How Shizuku is used

Can show advanced battery health details and improve live current, voltage and charging limit readings via `dumpsys battery`, `cmd battery get` and sysfs commands 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

Shizuku is used to read protected battery, power supply and system setting data that normal apps cannot reach, powering detailed diagnostics and more reliable live readings.

  • Show advanced battery details: the advanced stats tab loads charge counter, current, energy counter, cycle count, full and design capacity, charging current and voltage limits, charging policy and state, plus raw service and power supply values, collected with dumpsys battery, cmd battery get and sysfs cat and ls commands through Shizuku and hidden battery APIs.
  • Show battery identity metadata: manufacturing date, first use date, serial number, part status, manufacturer, model name, minimum design voltage, health and remaining charge time are shown from privileged battery APIs when available.
  • Improve live current readings: the main current display falls back to privileged cmd battery get results for current now and average when standard system and direct file reads give no value.
  • Improve voltage readings: when broadcast and direct file voltage are invalid, a background probe reads power supply voltage files and dumpsys battery output through Shizuku and caches the result.
  • Detect charging protection limits: OEM charging limit state is detected by reading system settings with settings get, Lineage settings with a content query, and power supply nodes with privileged cat when direct reads fail.
  • Diagnose charging support: the diagnostics report gathers settings list, getprop, system package listings and power supply node discovery through Shizuku to explain device support and adapter state.

Android APIs or commands used

  • dumpsys battery
  • cmd battery get
  • cat /sys/class/power_supply/battery/cycle_count
  • cat /sys/class/power_supply/battery/charge_full
  • cat /sys/class/power_supply/battery/charge_full_design
  • ls /sys/class/power_supply
  • cat /sys/class/power_supply/*/voltage_now
  • cat /sys/class/power_supply/*/type
  • settings get
  • settings list
  • content query --uri content://lineagesettings/system
  • getprop
  • pm list packages -s
  • id
  • android.content.Context.getSystemService(Context.BATTERY_SERVICE)
  • android.os.BatteryManager.getIntProperty
  • android.os.BatteryManager.getLongProperty

Notable details

If privileged access is unavailable, the advanced stats screen shows a no access status instead of values, while live current, voltage and charging limit features continue with standard system readings and direct file access where possible.

Close

Changelog

What's new for version 1.7.2

Improved

  • More reliable voltage reading (#142).

Fixed

  • Notifications opening Alarms instead of Current State (#139, thanks @matiamb).
Close

Permissions

9 permissions requested

  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_SPECIAL_USE
  • android.permission.POST_NOTIFICATIONS
  • android.permission.POST_PROMOTED_NOTIFICATIONS
  • android.permission.VIBRATE
  • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • codes.swistak.batterymonitor.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23
Close

Sources

2 sources

1.7.2 GitHub · codes.swistak.batterymonitor
Selected Download
1.7.2 F-Droid · codes.swistak.batterymonitor · codes.swistak.batterymonitor
Download