Xiaomi’s smartphones, including its Redmi and POCO sub-brands, have traditionally been equipped with high-capacity batteries, which is one of the company’s main bargaining chips in the market. However, even the most advanced lithium-polymer batteries are subject to natural wear over time, losing some of their original capacity. Users often notice that the device begins to discharge faster, warms up or suddenly turns off when the remaining charge is 10-15%.
Unlike iOS, where Apple has implemented a clear percentage of “maximum capacity” in the settings, the MIUI shell and the new HyperOS often hide this information from the eyes of the average user. Manufacturers are slow to implement simple battery health indicators, as this can encourage unnecessary warranty requests or purchase of external batteries. However, in the Android system and specifically in the firmware of Xiaomi, there are hidden engineering menus, special codes and software methods to access this data.
In this article, we will take a look at all the known diagnostic methods, from simple commands in the “bell ringer” to deep analysis of logs through the computer, you will learn to distinguish between software calibration errors and the real degradation of battery chemistry. Understanding the real state of your battery will help you make a decision on replacement or just calm down if the problem lies in the background.
Using CIT's Hidden Engineering Menu
The fastest and most reliable way to make initial diagnosis, available directly from the smartphone interface, is to log into the engineering test menu, known as the CIT (Customer Integration Test), which is designed for factory testers who check the health of all the device modules before packaging, and you can run an automatic battery test that shows current status, voltage and temperature.
To start the diagnosis, you need to open the standard application "Phone" and dial a special USSD-Most of the devices on Xiaomi use the combination ##6485##. Once you enter the last star, the menu will open automatically, you don't need to go anywhere. If the code didn’t work, your firmware version or smartphone model may have limitations, and then you’ll have to use alternative methods.
⚠️ Note: The engineering menu contains many settings that affect the operation of radio modules and sensors. It is strongly recommended not to change the values of parameters in which you are not 100% sure, as this can lead to improper communication or screen calibration.
In the list of options that opens, you need to pay attention to specific lines, whose values can vary depending on the version of Android and the shell.
- 🔋 MB_06: displays battery status (usually "Good" means good state).
- 🔋 MB_00: The current percentage of battery charge.
- 🔋 MB_01: displays the current battery voltage in millivolts.
- 🔋 MB_02: Shows the actual remaining capacity in mAh (not always available).
Why can't the code work?
Analysis of charging cycles and real capacity through codes
One key indicator of lithium battery health is the number of charging cycles passed. One cycle is considered to be passed when you consume 100% of the battery capacity, not necessarily at a time (for example, twice 50%). Manufacturers usually guarantee that 80% of the capacity is saved after 500-800 full cycles. You can find out the exact number of cycles on Xiaomi through the same menu we considered above, but with nuance.
On a menu called by a code ##6485##, Look for the parameter. MB_05. The number opposite this point is the number of cycles of recharging your device. 300-400, The battery must be in excellent condition if the number exceeds 800, And the autonomy has dropped, which is a direct signal to replace the battery, but on newer versions of HyperOS, this parameter can be hidden or reset when flashing without resetting the controller.
There may also be a parameter in this menu. MB_03 or MB_04, Compare this value to the nominal value shown on the battery case or in the specifications on the site. 20% It's important to understand that the power controller may not update this data for a long time, so after calibration, the numbers may change.
For more advanced users, it is possible to request detailed statistics through the ADB command line, but this requires a connection to a PC. The team allows you to pull out hidden battery history logs, where you can see how the battery has behaved in recent days. This is especially useful if the phone is discharged unevenly.
Status check through settings and usage report
The Android system’s regular hardware and MIUI shells don’t provide a direct percentage of battery health, as is done in the iPhone. However, the built-in usage statistics can indirectly indicate problems. If you notice that the discharge schedule has become nonlinear (for example, a sharp jump from 40% to 10% in 5 minutes), this is a sign of controller desynchronization or cell degradation.
To access basic information, go to Settings → About Phone → All specs → Battery (the path may vary depending on the version of MIUI). This displays battery type (usually Li-Poly), rated capacity and current charge level. More detailed consumption statistics can be found in Settings → Battery → Statistics.
In this section, the system ranks applications by energy consumption. If you see system processes or unknown services consuming abnormally high amounts of power in standby mode, this may indicate not only a "heavy" application, but also problems with the energy efficiency of the processor or the battery itself.
💡
For a more accurate assessment through settings, turn on Memory Protection and limit the background activity of applications. If the uptime does not increase after that, the problem is physical.
Note the temperature. The battery section often displays the current temperature. If in a simple (no running games or navigation) phone heats up above 35-38 degrees, it is an alarming sign. Overheating accelerates the chemical degradation of the electrolyte, and the battery condition drops exponentially.
Use of third-party applications for diagnosis
When built-in tools aren't enough, specialized applications from the Google Play Store come to the rescue, and AccuBattery has been a leader in this field for many years, and it works on a monitoring principle: the app doesn't know the exact capacity of your battery initially, but it calculates it by analyzing the charging and discharging speed in real time.
To get accurate data through AccuBattery or analogues (for example, Battery Charge Limit), you need to use your smartphone in normal mode for several days (usually 3-5 charging cycles), the program compares the amount of energy “filled” in the battery (in mAh) with the increase in percentage of charge.
- 📊 Accuracy: after 5-7 The charge cycle error is less than 3-5%.
- 📊 Functional: shows the wear rate per charge, real-time temperature and degradation rate.
- 📊 Alerts: You can adjust the signal when you reach 80% charge to extend the life of the battery.
Other applications, such as CPU-Z or AIDA64, can also read information from Android system files. In the Battery section, they show technology, voltage, temperature, and sometimes state (Health). However, this data is taken directly from the controller, which can broadcast a template value of "Good" even if the capacity has fallen.
⚠️ Warning: Do not install questionable battery accelerators and cleaners, which are often the cause of the discharge, as they are constantly hanging in memory and aggressively shutting down processes, forcing the system to start them again.
Deep Diagnostics through ADB and Computer
For users who want to get the most complete data without installing third-party software on their phone, the ideal option is to use the ADB (Android Debug Bridge) debugging bridge, which allows them to read raw data from the system files of the battery, which are not available to regular applications due to Android security limitations.
To start, activate Developer Mode. Go to Settings → About Phone and quickly press 7 times on MIUI Version (or OS Version). Then, in advanced settings, turn on “Debugging on USB.” Connect your smartphone to your computer with a cable and install ADB drivers. In the PC Command Line, type a command to check the connection: adb devices.
adb shell dumpsys batterystats --chargedThis command will provide the most detailed battery status report since the last full charge. In the conclusion, look for the lines "Current capacity" and "Design capacity." Dividing the former by the latter, you get the exact percentage of battery health (SOH - State of Health).
You can also use the adb shell cat command. /sys/class/power_supply/battery/capacity to get the current level, but for cycle history, the command adb shell dumpsys batterystats is better suited. If you see many charging interruptions or voltage surges in the logs, this may indicate a malfunction of the power controller or poor contact of the plume.
☑️ Preparation for diagnosis through ADB
Table: Normal and critical battery performance
To make it easier for you to navigate the numbers, we've compiled a scorecard that will help you determine if your battery is within normal range or needs to be replaced, and remember that values can vary slightly depending on ambient temperature.
| Parameter | Normal condition | It needs attention. | Critical condition |
|---|---|---|---|
| Charging cycles | 0 - 300 | 300 - 600 | More than 800. |
| Residual receptacle | 90-100% of the denomination | 80-89% of the face value | Less than 80% |
| Tension (calm) | 3.7B - 4.2B | 3.5B - 3.6B | Below 3.4B |
| Temperature (load) | 30°C - 40°C | 40°C - 45°C | Above 50°C. |
| Status (Health) | Good | Good (with reservations) | Bad / Overheat |
If your readings are in the Critical State column, further operation may not be safe. Battery bloating is not only a loss of capacity, but also a risk of fire or damage to the screen and the case of the smartphone from the inside.
💡
The combination of a high number of cycles (more than 500) and a sharp drop in voltage under load is a sure sign of the need to replace the battery.