Yes, it's possible if your device is rooted running Advanced Charging Controller-Acc Magisk module
and device kernel supports (see currently known list at the end of answer. For more join telegram
)
- Battery Idle Mode: To activate this feature at a user defined battery level.
And/Or
Custom Charging Voltage Limits: Activates this feature at a user defined voltage level. This method is superior to first method since granular voltage control is possible Keep in mind that battery charge level is not an accurate indication of voltage. Kernels that support this, include support for first mode too.
Custom Max Charging Current:
** Idle mode for selected apps:** In a recent update users can select apps, which when running trigger idle mode, a very useful feature while watching YouTube, playing games, etc.
First step is to configure charging to be stopped at a safe level, in my case, 75%, using the Acc module
Next step is to use the charging power to run the phone only
How does it work?
In either methods (battery idle mode or Voltage/Current based) , the charger is fooled into "believing" temperature conditions aren't good for charging (either the reported battery temperature is too high or too low, so battery charging is discontinued as a safety precaution).
That means the device is drawing power from the external power supply alone - which is exactly what we wanted! And the battery doesn't get drained because it is not being used (of course over a long period of time it would drop a percentage point. As an example I used the device to surf for 4 hours, mostly YouTube videos and lost just 1% of battery).
On my OnePlus 7, battery idle mode is supported by Kirisakura kernel. Interestingly, beta versions of stock ROM have this feature in stock kernel but one doesn't know if it makes it to next stable version (Edit : Stock kernel on 10.3.2 supports idle battery mode as verified by me)
When this feature is running, a low USB equivalent power is fed to the phone and conventional charging indicators show charging with zero power. Note that the second screenshot (Ampere app) shows "not charging" and no word about discharging, so the battery is at status quo. Normally, such apps show a binary status, either charging or discharging. Here, you see the difference
This screenshot below is from ACCA (Acc App, optional companion app of Acc Magisk module ) which offers all the command line options (believe me, a ton of them) in a user friendly GUI. Edit: ACCA is not being developed for more than 2 years now and using this is likely to cause severe problems. Instead use CLI (Termux) or a MacroDroid (automation app) based front end,developed by an avid user. It shows battery charging idle mode at 75%
Edit: The list below is very old (and not updated), practically all phones are supported now (except for kernels that do not support idle mode). The developer is very active and I would recommend joining the Telegram Channel to be abreast of the latest.
Support Battery Idle Mode
- Asus Zenfone Max Pro M1
- Essential Phone
- Lenovo K5 Pro L38041 (kunlun)
- Motorola Moto G4 Play
- OnePlus 7/Pro
- Xiaomi Redmi 3 (ido)
- Xiami Redmi Note 8
- Pixel 4a on Android 11 (not initially but in subsequent updates) and Android 12.
Support Custom Max Charging Voltage
- Essential Phone
- Lenovo K5 Pro L38041 (kunlun)
- Xiami Redmi Note 8
Support Custom Max Charging Current: Some phones support this as well
...