I had read a Lifehacker article about how one could disable real-time malware scanning on a laptop while it is running on battery power as a way to “spin out” the battery runtime further. This was because if the desktop-security program is performing real-time scanning, it would be using a processor thread and demanding more power to do that job.
It is in addition to Microsoft researching ways to minimise screen refreshing while a portable computer is running on batteries so as to conserve battery power. Here, it was about avoiding the need for the CPU and graphics infrastructure to devote lots of energy to “painting” the whole screen when there is a small amount of animation taking place.
Here, I am advocating a “dual-power” approach for software development to allow software to operate in two different modes – a high-performance mode and a power-economy mode. The operating system would sense if the computer is running on external power or battery power and convey this power status to the software applications accordingly. This is in addition to optimising the display, Wi-Fi or other functionality depending on their power source.
It is similar to how some portable electronics made through the 70s to the 90s operated depending on the power source. For example some portable radios and boomboxes along with some personal audio players would have the dial or display illuminated while they were connected to external power but you could activate this lighting at the press of a button if the unit was running on batteries. Or some devices would charge rechargeable batteries installed therein while they were connected to external power.
Also there is a reality that most of us will plug our laptops, tablets or smartphones in to a charger while we are at home, in the office or in the car even while we have a full battery in our devices. This is typically to “spin out” the battery runtime and make sure the battery’s “topped off”. In this situation, if we use our devices while they are plugged in to the external power source, we could see a situation where they work in a higher-performance mode.
For example, a game could activate extra “between-move” animations only while the laptop, tablet or smartphone is connected to external power. Or a program which does a lot of calculations like a photo-editing program could work in a “high-performance” mode while on external power. Similarly an email client or similar program could work in a “manual refresh” mode on battery power or an endpoint security program could enable real-time scanning and similar functionality only while on external power.
What needs to happen is for the desktop or mobile operating system to convey the device power-mode status to all of the apps as part of an “application-programming-interface” hook and for the apps to take advantage of that hook to adapt their behaviour. The functionality could be enabled or disabled for each application through a configuration option in the application’s settings window.
A security issue that can easily be raised is enablement of unwanted cryptomining and other processes while the mobile device is on external power as a way to facilitate stealthy operation of these processes. This is to make it appear to the user that the unwanted processes don’t exist because there isn’t the excessive battery drain taking place with these processes.
In the privacy context, determining whether a device is running on external power could be used to assume whether the device is at a fixed location or not because AC mains power is the common power source associated with these locations. This is although external power supplies can be used in a mobile context such as being connected to a vehicle’s, boat’s or aircraft’s power infrastructure and used while underway for example.
What is being highlighted here is for the feasibility for operating systems in portable computing devices to convey a system-wide power-mode status relating to use of external power. This is to allow application software to work in a manner to conserve the host computer’s battery power.