Android phones are taking longer than ever to receive software updates, with devices like the Google Pixel 8 series receiving updates for seven years. Additionally, device manufacturers are expanding repair options and parts offerings, and some are even offering self-repair programs so you can repair your device yourself. If you plan on using the same phone for as long as it's officially supported, you'll most likely need to replace the battery at some point.

This is because batteries age over time, reducing their maximum charging capacity and therefore the phone's runtime on a single charge. However, it's not easy to know when your phone battery needs to be replaced because there's no easy way to actually measure the battery's remaining capacity. There are apps that can provide rough estimates, but they require collecting days or even weeks of data to come up with a more accurate measurement. Even so, the results from these apps can be completely inaccurate.

The Android operating system already collects many battery-related statistics in the background when it first boots up, so it's better suited to provide this kind of estimate rather than third-party apps that start collecting data months or years after the device is first installed. The battery itself would be a better source of information if it could share this information with the operating system. Fortunately, this is exactly what Google has been working on for the past year. Android 14 laid the foundation for the operating system to track battery health information, and Android 15 can truly present this information to users.

With the release of Pixel Feature Drop in December 2023, Google has launched a new "Battery Information" page under "Settings" > "About Phone". As shown in the image below, the page displays the production date and number of cycles of the device battery, and the Settings page obtains this information through the new API introduced in Android 14.

Production date and number of cycles aren't the only battery-related statistics Android 14 makes available to apps via the new API. Other battery health details such as first use date, charging strategy, charge status and health status are also available. Health status is particularly interesting because it is an estimate of the battery's current full charge capacity, expressed as a percentage of the battery's rated capacity. For example, if your Pixel 8 battery's health measurement is 90%, that means it has an estimated full capacity remaining of about 4118mAh (versus a rated capacity of 4575mAh).

Currently, the Settings app does not display battery health, but this will change in the future, as the latest version of the Settings Service app in Android 14QPR2Beta2 (an extension of the Settings app on Pixel and other devices) adds a new Battery Health page that will display battery health. A clue provided by Nail Sadykov, this new page is not live yet, so we have to manually activate it in order for it to appear under Settings > Battery. Currently, the page doesn't show actual health, but warns that "batteries will degrade over time, and the time between charges will be reduced."

A string in the APK says that before and after the battery is "recalibrated" the page will display "the estimated percentage of charge the battery can currently hold compared to when new" (i.e. healthy state). We don't have exact details about the "recalibration," but given that there's a string that says "This process may take several weeks," we're guessing it's just the system collecting data over a longer period of time to provide a more accurate estimate of battery capacity. Meanwhile, the "initial battery health value" is "based on lab results" and therefore "may differ from your actual battery status."

While we don't have a screenshot of the Battery Health page, nor does it show any actual battery health data, we do find these icons corresponding to Battery Capacity Reduction, Battery Recalibration, and Battery Capacity Not Detected. We also learned that the Settings app itself will display a "prompt" to users when battery capacity drops or cannot be detected, so users don't have to manually check the Battery Health page.

Finally, we learned that Google is working to expose more battery-related information to the operating system, such as part status and serial numbers. Part status has three values: UNSUPPORTED (the device cannot distinguish between the original and replacement batteries), ORIGINAL (the device is using the original battery), or REPLACED (the device is using a replacement battery). A serial number is a string of 6 or more alphanumeric characters that uniquely identifies a battery.

We don’t know if Google plans to use this new information for anything, and we wouldn’t dare speculate because at this stage, they haven’t even submitted this code to AOSP. At the very least, we know that Android will support reading a battery's part status and serial number, but only if the battery exposes this information to the operating system and the vendor implements a new version of the Android Health HAL.

The health HAL is the software responsible for bridging the gap between the operating system API that reads battery/charging information (i.e. everything we talked about before) and the software that controls the battery/charging chip. Version 2.0 of the health HAL needs to be implemented to support all new Android 14 battery health APIs (such as health status), which is why so few devices currently support this API. It is hoped that after the launch of Android 15 next year, Google's Pixel devices can display battery health-related information such as charging status, instead of using part status or serial numbers to prevent users from repairing themselves as Apple currently does.