History log of /frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a50bf78fdeecedb646a5bb34fe42343c68e25c96 25-May-2018 Makoto Onuki <omakoto@google.com> Disable battery saver tron log by default

Test: Make sure not logs are written on: logcat -b events | grep -w 1302
Test: Re-anble tron log with settings put global battery_saver_constants send_tron_log=true
and make sure logs are written on: logcat -b events | grep -w 1302
Bug: 74742911

Change-Id: I1f4159b7194fbc29be7f76669aa4e53084ed27e7
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
bd7a62538901e256148186006f60bd4dfa35469a 10-May-2018 Makoto Onuki <omakoto@google.com> Rework battery saver synchronization logic

- Stop using individual lock instances and use use the power manager lock.
- Make sure not to access external components with the lock held,
*except for settings provider*, which is already touched by the power manager
and the battery service

(I'm planning to re-organize things for Q: b/79580230)

Fixes: 79486713

Test: atest /android/pi-dev/frameworks/base/services/tests/servicestests/src/com/android/server/power/batterysaver/Battery*Test.java /android/pi-dev/frameworks/base/services/tests/servicestests/src/com/android/server/power/*Test.java
Test: Manual test with ./development/scripts/battery_simulator.py with toggling
battery saver on and off and then watch
adb logcat -b all | grep -P '(battery_saving_stats|battery_saver_mode)'

Change-Id: I8ecdfefe978de348ee979d765c82e3d8f0280082
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
a3e0e0cc6b993e98cbcfe42a85d3ab07d9857576 08-May-2018 Makoto Onuki <omakoto@google.com> Fix BatterySaverPolicyTest and add more accessibility test

Change-Id: I90fd6cb4980d540f77c749f987678de2852d2a47
Bug: 78174280
Fixes: 79123174
Test: atest ${ANDROID_BUILD_TOP}/frameworks/base/services/tests/servicestests/src/com/android/server/power/BatterySaverPolicyTest.java
Test: Manual test -- enable battery saver, enable accessibility, make sure
vibration still works.
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
ebd2421c733f2bc56928f9ac2e583cac20db020b 07-May-2018 Makoto Onuki <omakoto@google.com> EBS: Don't disable vibration when accessibility is on

Note the unit test is a bit stale; I'll fix that separately, which is tracked in
b/79123174.

Bug: 78174280
Test: Manual test with accessibility ON/OFF
Change-Id: I60aa130bbda7d7cd5bfa1146e8ab1c2b63f2c60a
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
c733500d1de3db256f5f97b71920f55878b2156f 16-Mar-2018 Makoto Onuki <omakoto@google.com> Add phenotype flag to disable battery saver tron log

- Also improve dumpsys power output.

Example:
===============================================================================
Battery saving stats:
Battery Saver state: OFF
Times enabled: 4

Drain stats:
Battery saver OFF ON
NonDoze NonIntr: 0m 0mAh( 0%) 0.0mAh/h 0m 0mAh( 0%) 0.0mAh/h
Intr: 0m 0mAh( 0%) 0.0mAh/h 0m 0mAh( 0%) 0.0mAh/h
Deep NonIntr: 0m 0mAh( 0%) 0.0mAh/h 0m 0mAh( 0%) 0.0mAh/h
Intr: 0m 0mAh( 0%) 0.0mAh/h 0m 0mAh( 0%) 0.0mAh/h
Light NonIntr: 0m 0mAh( 0%) 0.0mAh/h 0m 0mAh( 0%) 0.0mAh/h
Intr: 0m 0mAh( 0%) 0.0mAh/h 0m 0mAh( 0%) 0.0mAh/h

Battery saver policy (*NOTE* they only apply when battery saver is ON):
Settings: battery_saver_constants
value: send_tron_log=true
Settings: (overlay)
value:

vibration_disabled=true
animation_disabled=false
fullbackup_deferred=true
keyvaluebackup_deferred=true
firewall_disabled=false
datasaver_disabled=true
launch_boost_disabled=true
:
===============================================================================

Bug: 74742911
Fix: 75024658
Test: atest $ANDROID_BUILD_TOP/frameworks/base/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySavingStatsTest.java
Test: Manual test with "settings put global battery_saver_constants send_tron_log=true" and
"settings put global battery_saver_constants send_tron_log=false" with
logcat | grep 'sysui_multi.*,1302,'

Change-Id: If0593273e21ace7899ac95642dc9feef2515eea1
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
92a62e5533e816d05b8342f20114d56ddab18fc3 31-Jan-2018 Lucas Dupin <dupin@google.com> Add AOD to BatterySaverPolicy

Test: activate/deactivate battery saver, look at AOD
Test: atest packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java
Fixes: 62797110
Change-Id: I9fc5f4fc5aa9cfd45e90e602251e4c2c863dfbcc
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
a36dc621ef0b86a0bd46f1d4f5a719a466ba1800 06-Feb-2018 Andreas Gampe <agampe@google.com> Frameworks: Annotate trivial @GuardedBy in services/core

Add @GuardedBy for simple functions that require a single lock
and are named XYZLocked.

Derived by errorprone.

Bug: 73000847
Test: m
Test: m javac-check-framework RUN_ERROR_PRONE=true
Change-Id: I6993325b11c71a4ec27c21935fb54a954d95455f
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
076218bfc0094c17f95c2e8afa4d5b2480f03f73 26-Jan-2018 Makoto Onuki <omakoto@google.com> Keep track of battery drain rate in various states...

... and print in dumpsys power.

Bug: 72229630
Test: manual test with dumpsys power, etc
Test: atest $ANDROID_BUILD_TOP/frameworks/base/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySavingStatsTest.java

Change-Id: I43949129ff03c1e0b0fa3aa603e0678b728538ee
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
57f0f5513b593c206d8410922a667c8c5f79b2b8 11-Dec-2017 Makoto Onuki <omakoto@google.com> Battery saver: Expose location power save mode as system API

- Expose the location power save mode as a system API for the fuse
provider to change the behavior.

- Didn't choose to expose PowerManager.getPoserSaveState() because the result
class seems to be a bit ugly...

- Not all the modes are exposed since the two existing saving modes are
implemented within the system server and system apps don't need to know them.

Bug: 68769804
Test: Manual test with a test app
Change-Id: I25d8e68bfb79ebbeefbc241479077389c01e0f25
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
4de1ad7061039aee9905a302753ee8d22cca7c72 06-Dec-2017 Makoto Onuki <omakoto@google.com> Extreme battery saver: do not disable animation

Bug:68769804
Test: manual
Change-Id: I82fefa5045258ec1adee0f4ab27d31b7950e4a8e
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
2b186fa2142087cb3bb5d5996febe66b2aaf7aa3 29-Nov-2017 Makoto Onuki <omakoto@google.com> Extreme battery saver: Disable location when screen is off.

Bug: 68769804
Test: manual test
Change-Id: Id93e250e5d189136dd267b21a3977ac95392c50b
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
9e0aba647c81a174ec5e80a902fa3748b0202bc3 04-Dec-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Extreme battery saver: Log BS state in the event log."
85dd0852fe506bcf800bea99aeb7af401e1485c4 01-Dec-2017 Makoto Onuki <omakoto@google.com> Extreme battery saver: Log BS state in the event log.

Test: manual test (adb logcat -b events | grep battery_saver_mode)
Bug: 68769804
Change-Id: I93b26e3434a60dcae1efaa7ab8c78da2ba73192c
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
97e5a71838f07721a6622e4de837ffbbdf9ba7f7 01-Dec-2017 Makoto Onuki <omakoto@google.com> Extreme battery saver: Do not lower screen brightness

- Auto-awesome brightness should handle it better.

Test: manual test
Bug: 68769804
Change-Id: Ic9e620520c509948a7685e95c8a4d2db76399008
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
e7ec72a5dfff1d199de5a77b5818478c3e29d825 22-Nov-2017 Makoto Onuki <omakoto@google.com> Extreme battery saver: Force background check on all apps

- Power-saver whitelisted (including temp whitelist) apps and system UIDs
are exempted.

- Otherwise, background services and manifest receivers will be restricted
as if OP_RUN_IN_BACKGROUND is set to IGNORE.

Test: manual test
Bug: 68769804
Change-Id: I49e7d32357ffc177ace38a064f943643f4f71058
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
a7d8c4d9ca619c2565aa7994305cdd8aa52fefc1 21-Nov-2017 Makoto Onuki <omakoto@google.com> Extreme battery saver: Disable launch boost

Bug: 68769804
Test: manual test with debug log in nativeSendPowerHint().
Change-Id: I7ce61463215400379e0aa0d1782b2372495fe97e
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
ce643a309e8d414395ec36188523d10eb64d6618 20-Nov-2017 Makoto Onuki <omakoto@google.com> Extreme battery saver: Cap max cpu frequency.

- Lower the max CPU frequency on battery saver.
- We have different sets of frequencies for screen-on and screen-off.
- The frequency configuration is from R.string.config_batterySaverDeviceSpecificConfig.

Bug: 68769804
Test: Manual test with settings put global battery_saver_device_specific_constants cpufreq-n=0:1324800/4:1497600,cpufreq-i=0:1900800/4:1958400
using cat_repeat /sys/devices/system/cpu/cpu{0,4}/cpufreq/{cpuinfo_cur,scaling_max}_freq

Test: atest $ANDROID_BUILD_TOP/frameworks/base/services/tests/servicestests/src/com/android/server/power/batterysaver/CpuFrequenciesTest.java
Test: atest $ANDROID_BUILD_TOP/frameworks/base/services/tests/servicestests/src/com/android/server/power/batterysaver/FileUpdaterTest.java
Change-Id: Ie1bb11c46c0d4730129fe9d82e86d8acebe0b560
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
fb5b96b4afd2dd255552e7c32f2d0adf3fcb62f6 17-Nov-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Follow-up for Ife38c2cd94ac9902911b005dbbca8b0d0a62e6d7"
3aaed2912be642d306fa223edcb58278b0e45795 16-Nov-2017 Makoto Onuki <omakoto@google.com> Follow-up for Ife38c2cd94ac9902911b005dbbca8b0d0a62e6d7

Address review comments on the previous CL.
(Plus a couple bug fixes.)

Test: atest BatterySaverPolicyTest
Test: manual test
Bug: 68769804
Change-Id: If2de9148d1b8175a9f0d66bc3a7ecd02ce7a620b
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
9be0140c1474dfd23d46121c51e636040a8080df 10-Nov-2017 Makoto Onuki <omakoto@google.com> Implement force-all-apps-standly in job scheduler.

Bug: 68769804
Test: Manual test

Change-Id: I70c28b7841165414cc8d27bf3466401c541d0569
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
66a7812bc90b5be7702fe5743d257fddcdb48201 15-Nov-2017 Makoto Onuki <omakoto@google.com> Refactor battery saver logic + add "per device" setting

- Extract the battery saver mode transition logic to BatterySaverController.

This now also supports running different code when screen turns on and off.

- BatterySaverPolicy now takes a "per-device configuration" from config.xml,
which can be overwritten via a global setting. We'll use this to set up
max CPU frequencies.

- The actual part to write max CPU frequencies is not finished yet.

Test: atest BatterySaverPolicyTest
Bug: 68769804
Change-Id: Ife38c2cd94ac9902911b005dbbca8b0d0a62e6d7
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
aae89531c0e8fce575d97fc887cd1fbd3055de19 08-Nov-2017 Makoto Onuki <omakoto@google.com> Battery saver preliminary changes for P.

- Flags for force app standby for jobs and alarms, and sensors.
- Don't disable GPS when the screen is off.

Bug: 68769804
Test: manual
Change-Id: I13661498dbc25051f2be0423cb50a55e4e592dc4
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
2eccd0262827259d15ceaa0fca975d3243c3a699 01-Nov-2017 Makoto Onuki <omakoto@google.com> Make the battery saver knobs hidden public,

so other components (system UI, settings, etc) can use them.

Bug: 68769804
Test: Build & presubmit
Change-Id: I30fe78e49d2187bee7c7aeba735cd9c26fc332a5
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
29c82ab242d50000d22e593c27153751c8c6b44a 10-Mar-2017 jackqdyulei <jackqdyulei@google.com> Hook up data saver to battery saver.

1. Add globalBatterySaverEnabled in PowerSaveState, which stores
the real battery saver mode, not the one for specific service.
2. Add "mRestrictBackgroundChangedInBsm" and
"mRestrictBackgroundBeforeBsm" to restore the mRestrictBackground
if necessary.
3. If user toggles the data saver when battery saver is on, don't
restore the data saver when battery saver is off.

Bug: 34693888
Test: FrameworksServicesTests
Change-Id: Ic50c1cae3fb110a228e59e5d1fd04c164e4b7274
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java
455e90add22835d0744fc0f5c2feb5fcaf03b28f 10-Feb-2017 jackqdyulei <jackqdyulei@google.com> Add BatterySaverPolicy for power save mode

The BatterySaverPolicy is designed to consolidate all battery saver
knobs into a central location. Usually it is consistent to
mLowPowerModeEnabled unless it gets different data for specific
service. By adding these knobs, we can effectively tune the battery
saver.

This cl sets up the framework for BatterySaverPolicy and updates
following service to get battery saver data from BatterySaverPolicy

1. GnssLocationProvider
2. VibratorService
3. WindowManagerService
4. BackupManagerService
5. SoundTriggerService
6. NetworkPolicyManagerService

Screen brightness will come in a following cl.

Bug: 34693888
Test: FrameworksServicesTests

Change-Id: I6b040e93391614b44d136a485faa4a332c396e51
/frameworks/base/services/core/java/com/android/server/power/BatterySaverPolicy.java