I know that some laptops (e.g. Lenovo ThinkPad) have user-controllable software to disable battery charging even when AC power is plugged in. This feature takes precedence.

When a typical mobile device (phone or tablet) is connected to a USB port, the mobile device will automatically draw power from USB to supply its electronics and charge its battery. But this default behavior isn't always desirable.

For example, a laptop on battery probably should not waste run time supplying any power to a phone. Presumably a phone is connected to a laptop for data transfer. So the laptop should not power the phone's electronics or charge its battery.

If mobile devices could control the power they demand from the USB port, along the lines of the ThinkPad feature, they would be less of a drain on the USB host. I'm aware that a workaround is to charge a phone to 100% from AC power, then immediately plug the phone into the USB port. Because the phone's battery is full, it should only draw power from the USB port for the electronics.

But is such technology already implemented in some mobile devices, allowing them to optimize performance in this way?


2 Answers 2


I'll answer from the on-topic perspective of the impact of such devices on the laptop. You're starting with a bad premise. Mobile devices don't automatically draw high current when plugged into a USB port.

When any device that isn't self-powered is plugged into a USB port, it initially gets an allowance of one "unit load" of power (on USB 2.0 that's 100 mA, on USB 3.0 or higher that's 150 mA). If it's a low-power device, that may be all it needs. If it needs more, it negotiates for a higher power limit. On a standard USB 2.0 port, it can negotiate for up to a maximum of 5 unit loads (500 mA). On a standard USB 3.0 or higher port, it can negotiate for up to a maximum if 6 unit loads (900 mA). On a high-current charging port, it can negotiate for higher limits governed by the capacity of the port. The host port (i.e., laptop) sets an upper limit on how much power it will provide, and the device accepts that limit.

So the host determines how much power it will make available. Any optimization of the laptop's available runtime via limiting the power it shares with USB devices is the responsibility of the laptop ("just say no").

The mobile device is free to use the power it's been granted however it sees fit. If it negotiated for enough power to operate and charge, it can do that. If it was granted only enough power to transfer data, it can use that power to transfer data or try to really slowly charge the battery. But it's up to the device to decide how to use the available power.

As far as how smart laptops and mobile devices are at optimizing their own performance, that varies and is a moving target. Any answer that reflects the status today will soon be obsolete, so that kind of information isn't on-topic for the site.


This can be done, at least on some Android devices if you have root access. It comes down to whether the charge controller can be manipulated in software to cause it to not charge or to set its charging voltage.

On my OnePlus 3T running LineageOS 15.1 with root access enabled, I can echo a numeric value in millivolts to /sys/class/power_supply/battery/voltage_max for the desired charge voltage. It defaults to 4320 (4.32 volts), but can be set anywhere between 3600 mV and 4500 mV in 20 mV increments (given what can happen when a lithium-ion battery is abused, you do not want to misuse this setting to overcharge the battery). If I set it to something close to the current voltage and adjust according by monitoring the charging current (I use AccuBattery to monitor battery charging and performance), I can get the phone to either limit the battery's maximum charge level or hold its state of charge at some desired point below 100% while plugged in, which is useful for extending the battery's service life (extended operation at 100% can reduce its life). There's also /sys/class/power_supply/battery/charge_enabled; echoing 1 or 0 will enable or disable charging altogether.

However, this is something that requires root access in the first place, and not every phone has these controls available to the system. As such, this isn't something that the average consumer will be able to do, unless a device manufacturer decides to expose this feature in the phone's settings menus. That, too is unlikely because allowing consumers to sacrifice some of the device's battery life for each charge to extend usable battery service down the road is difficult (even with Apple's throttling of devices with worn-out batteries calling attention to long-term battery performance).

Long story short, while it's technically possible, it's not something you'd be able to do without some tinkering.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .