summaryrefslogtreecommitdiff
path: root/core/java/android/os/PowerManagerInternal.java
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'android-13.0.0_r35' of ↵George Zacharia2023-04-031-0/+12
|\ | | | | | | | | | | | | | | https://android.googlesource.com/platform/frameworks/base into t13.0 Android 13.0.0 release 35 Change-Id: I709958b2f015d1774b2ece25894467c3a279f93c
| * Update UiModeManagerService to not trigger dreaming if dreams areLucas Silva2022-10-181-0/+6
| | | | | | | | | | | | | | | | | | | | | | suppressed. Bug: 246472225 Test: atest UiModeManagerServiceTest Test: flashed device and docked, verified we don't dream while suppressed Change-Id: I769fe08cf056d5fc2285cc667d491c153068eb42
| * Add internal API to PowerManager which allows napping when device isLucas Silva2022-10-131-0/+6
| | | | | | | | | | | | | | | | | | | | | | asleep. This allows us to enter the dream directly while the device is off, instead of needing to wake the device before entering dream. Bug: 246472225 Test: adb shell cmd dreams start-dreaming (while device asleep) Test: atest PowerGroupTest Change-Id: Id4634f3d5f7c3ae324f85f11a6991f0cab068a7d
* | fw/b: Button backlight brightnessRicardo Cerqueira2022-11-071-0/+10
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squash of: Author: Ricardo Cerqueira <cyanogenmod@cerqueira.org> Date: Fri Nov 23 14:23:16 2012 +0000 Reintroduce button-backlight (and respective inactivity timeout) The power manager rewrite from Change I1d7a52e98f0449f76d70bf421f6a7f245957d1d7 completely removed support for control of the button backlights, which makes all capacitive buttons out there stay dark. The commit message in that change mentions it hasn't been implemented _yet_, so this fix should be temporary until upstream does their own implementation Change-Id: I6094c446e0b8c23f57d30652a3cbd35dee5e821a Author: Danny Baumann <dannybaumann@web.de> Date: Thu Aug 22 08:53:24 2013 +0200 Add PowerManager integration for button and keyboard backlight. Allows setting button and keyboard backlight brightness as well as button timeout. Change-Id: I550cccafc0a8f90d6347de9261adb26b75955cc4 Author: Steve Kondik <steve@cyngn.com> Date: Sat Jan 3 05:13:26 2015 -0800 power: Disable keyboard/button lights while dozing/dreaming * With hardkeys and doze mode enabled, entering suspend results in an epic battle over the lights. It's a bad situation. Disable them when we're sleepy. Change-Id: I7f1fc35a1573717d1ea101a07c4171d6f66d1553 Author: nadlabak <pavel@doshaska.net> Date: Sun Jun 7 02:01:05 2015 +0200 PowerManagerService: Fix updating of mUserActivitySummary I7f1fc35a1573717d1ea101a07c4171d6f66d1553 missed the fact that the primary purpose of the affected condition block was to update mUserActivitySummary and the button/keyboard light handling was just appended to it later. This fixes the waking from dream/screensaver by user activity. I30c5c8c9c09e3d57ace18cac72b783510b9b3bf3 is removed here as well as it was just a band aid. jira: NIGHTLIES-1285 Change-Id: I6b2f6c58e73110787d62e86d4d2ef538638cf491 Author: Bruno Martins <bgcngm@gmail.com> Date: Tue Dec 26 17:15:05 2017 +0000 Forward-port button brightness implementation to O * Reworked for the new handler interface, restoring also removed methods (partial revert of commit 86c39f9edee88baa912c694061010483c7da9daf). * Keyboard backlight brightness support left out for now. Change-Id: I53f031fa2da394e95a2b29a01eb3c6a8f8132507 Change-Id: I5176a2028c18408c17bac7f25e62b5612fd6c227
* Check sleep reason and time before cancelling vibrationsLais Andrade2022-05-131-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a method PowerManagerInternal.getLastGoToSleep(), similar to existing method getLastWakeup(), to retrieve global values for last go to sleep events, including system uptime and reason. Retrieve this data in VibratorManagerService before cancelling ongoing vibrations by the broadcast of ACTION_SCREEN_OFF intents to indicate that the screen was turned of when the vibration was still playing. This new logic allows vibrations to continue in the following cases: - the broadcasted event was triggered before the vibration started; - there is already a wakeup event triggered by the time the screen off broadcast is being processed by the vibrator service; - the screen off reason is in allowlist, indicating it's an automatically triggered event (screen timeout or user inattentive); This should handle the following scenarios: - delayed broadcasts of screen off events, that should not cancel vibrations that started when the screen was already off (e.g. notification or ringtone that are allowed to vibrate in that state); - race conditions when the screen automatically turns off right after a ringtone/notification vibration starts, before the notification acquires a screen lock; Fix: 219849350 Test: VibrationSettingsTest Change-Id: I358327192196989a7d4fc49a96b2ab92ec677302
* Allowlist active voice interaction session from Low Power StandbyRobert Horvath2022-01-271-0/+7
| | | | | | | | | | | | If a voice interaction session is started, then it should be allowed to use the network & wakelocks unrestricted while it is ongoing, since it is direct user interaction. Bug: 190822356 Test: atest LowPowerStandbyControllerTest PowerManagerServiceTest Test: With reference VIS: adb shell cmd voiceinteraction show To verify allowlist/wakelock state: adb shell dumpsys power Change-Id: I63cd0cf2e97b574ba8fa6c6caa8f046cce2bb821
* Introduce Low Power Standby API and wakelock restrictionsRobert Horvath2022-01-271-0/+8
| | | | | | | | | | | | | | | | | | | | | In Low Power Standby, additional restrictions are placed on apps that are in a process state of FOREGROUND_SERVICE or less important during standby (while the device is non-interactive): - Wakelocks are disabled - Network access is blocked During doze maintenance windows the restrictions are lifted temporarily. This change introduces the APIs for Low Power Standby, as well as the wakelock restrictions. This feature is targeting TVs. To prevent Low Power Standby from being enabled on other devices, the feature is guarded by the config flag config_lowPowerStandbySupported. Bug: 190822356 Test: atest LowPowerStandbyControllerTest PowerManagerServiceTest Ignore-AOSP-First: New permission only added internally for now. Change-Id: Ia40f8a0fc4b366860af58ad76c988f93a5d41936
* Merge "Allow Power-button to temporarily ignore proximity sensor." into ↵Santos Cordon2020-08-071-0/+4
|\ | | | | | | | | | | | | | | rvc-d1-dev am: fdc35a2491 am: 69603f319e am: 64bff5c814 Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12282513 Change-Id: I144bd25307e616fdbaf7c233dcebd941ab36e8be
| * Allow Power-button to temporarily ignore proximity sensor.Santos Cordon2020-08-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | If a device has an active proximity wakelocks while proximity is in the "near" state, a press of the power button will temporarily ignore proximity sensor allowing the screen to turn back on. It will stop being ignored where there is a change to the proximity sensor state. Bug: 162443904 Test: atest PowerManagerServiceTests, atest DisplayManagerTests Change-Id: I2656cca3e643e278cd5e5fedc2d74d9cbca82c2b
* | Remove powerHint from IPowerManager.aidlLais Andrade2020-07-211-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also removes sendPowerHint, setInteractive and setFeature from PowerManagerService, replacing calls to these methods to existing setPowerBoost and setPowerMode native methods. This is a relanding CL whose original is ag/10891954 Reason for revert: Reverting the original changes had no effect on the perf regression: https://dashboards.corp.google.com/google::_233805d0_deb2_44ce_8f21_d31f71af27e0?f=build_creation_timestamp:bt:1594364400000000,1595228400000000&f=build_target:in:flame-userdebug&f=build_branch:in:git_master&f=metric_key:eq:gfxinfo_com.android.systemui_jank_percentile_95-mean&f=atp_test_name:eq:health%2Fmicrobench%2Fsystemui%2Fsystemui-jank-suite&f=test_name:eq:android.platform.test.scenario.sysui.power.PowerMenuMicrobenchmark%23testPower_verifySystemPowerMenuAppears Reverted Changes: I52bb144d6:Revert removal of power hint from PowerManager.aid... Id087f6867:Revert removal of power hint from PowerManager.aid... Bug: b/150878220 Test: atest FrameworksServicesTests:PowerManagerServiceTest Change-Id: Ic53a97c006668cfb4013f67ef163a0e7af97519c
* | Revert removal of power hint from PowerManager.aidlLais Andrade2020-07-091-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reverts all changes on PowerManagerService.cpp and bring back power hint methods and usages. This cl stops using the new PowerHalController, to confirm it is the cause of the perf regression from b/157483189. Once confirmed it can be reintroduced later once the root cause is fixed within the new code. Forrest run: https://android-build.googleplex.com/builds/forrest/run/L68600000629276407 android.platform.test.scenario.sysui.power.PowerMenuMicrobenchmark#testPower_verifySystemPowerMenuAppears gfxinfo_com.android.systemui_jank_percentile_95-mean:12.28 Bug: b/157483189 Test: atest FrameworksServicesTests:PowerManagerServiceTest Change-Id: Id087f6867174a15c74617f3bb1cccb3569a358ac
* | Remove powerHint from IPowerManager.aidlLais Andrade2020-05-141-6/+0
|/ | | | | | | | | | | Also removes sendPowerHint, setInteractive and setFeature from PowerManagerService, replacing calls to these methods to existing setPowerBoost and setPowerMode native methods. Fix: 150878220 Test: atest FrameworksServicesTests:PowerManagerServiceTest atest WmTests:SurfaceAnimationRunnerTest Change-Id: I6c14504650879da6c4d7de4412dc9421fb332f53
* Make PowerManagerService use float for brightnessFiona Campbell2020-04-061-2/+2
| | | | | | | | | | | | | | Change the override brightness values to use float instead of an int in PowerManagerService. Bug: 150671605 Test: WmTests:RootWindowContainerTests FrameworksServicesTests:PowerManagerServiceTest CtsOsTestCases:android.os.cts.PowerManagerTest FrameworksCoreTests:android.os.PowerManagerTest Change-Id: I97e97e1500dac7f8beb112812d1347fa420afbf7
* Support PowerHAL AIDL serviceJia-yi Chen2020-03-061-0/+113
| | | | | | Bug: 147840082 Test: Boot & check logs Change-Id: Iccdaf84053e0974ffb43857aaa2e382d2f1b4a6b
* Add delay to power-button power-off after gesture wakeup.Santos Cordon2019-04-231-0/+3
| | | | | | | | | Adds a small delay to avoid turning off the device if the user hits the power button right after the device wakes up via a gesture. Bug: 126560003 Test: Manual Change-Id: I3116ce98f244e5660573d5fa764a77083aee7fc5
* Add isManagedKiosk system APIs.Alex Kershaw2018-12-111-0/+3
| | | | | | | | | | | | | | | | | Add system APIs isManagedKiosk and isUnattendedManagedKiosk. These will be defined in the CDD. The intention is to have privacy and security-approved definitions that future features (removing user consent dialogs, stronger APIs) can use specifically for publicly-accessible dedicated devices. We use 'kiosk' rather than 'publicly-accessible dedicated device' for ease-of-use, which is actually consistent with ChromeOS. Bug: 111384878 Test: Each use will have its own CTS tests. The definitions themselves will be in CDD. Currently tested by calling the methods in TestDPC. Change-Id: If080a3b9dae285bc28823e6004750908009130d2
* Avoid changing display power state on draw wake lockIvan Podogov2018-03-071-0/+8
| | | | | | | | | | | | When Sidekick is controlling the display, any draw wake lock can cause a sequence of endDisplayControl/setDisplayPowerState/beginDisplayControl twice, because of DOZE_SUSPEND -> DOZE -> DOZE_SUSPEND transitions. We can avoid that by telling power manager that display is controlled by Sidekick, and draw wake locks shouldn't change the display power state. Bug: 70574675 Test: build, flash Sardine, run Stopwatch, observe logcat Change-Id: Ie4dac76606e45f0d3b62bc5890841f4f24d454d7
* Implement activity --proto --processesYi Jin2018-01-231-0/+18
| | | | | | Bug: 66729158 Test: out/host/linux-x86/bin/incident_report -w amprocesses Change-Id: Iae043203bca954bfc4aadad0460cc56621e9ba05
* Profile lock timeout.Pavel Grafov2017-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | When a managed profile has separate lock (a.k.a work challenge) and maximum screen off timeout set by admin, this timeout will only cause the profile to get locked, not the whole device. PowerManagerService now tracks some per-profile state for profiles that have lock timeout set by admin and have separate lock: 1. timeout set by admin. 2. wake lock summary 3. last activity time 4. whether the profile is considered active 5. whether the profile got locked last time it went inactive. Wake lock summaries and last activity times are updated at the same time as global wake lock summary/user activity is updated. Test: cts-tradefed run commandAndExit cts-dev -a armeabi-v7a -m CtsDevicePolicyManagerTestCases -t com.android.cts.devicepolicy.ManagedProfileTest Test: runtest -c com.android.server.devicepolicy.DevicePolicyManagerTest frameworks-services Bug: 63908311 Change-Id: Ief7be4e0bf12bdbedef94a129a13d07a9f98e75c
* Battery saver preliminary changes for P.Makoto Onuki2017-11-081-0/+19
| | | | | | | | | - 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
* Fix lock contention: Call into power manager service from handlerJorim Jaggi2017-05-031-10/+0
| | | | | | | | | | | | | | Make sure to not hold the wm lock when calling into power manager service, because PWM will acquire a lock that might be contended. Test: Make sure user activity timeout is still respected on Keyguard Test: Have activity with screenBrightness=1.0, make sure screen is fully bright when opened Bug: 37888898 Bug: 36631902 Change-Id: I4b5433dbaf8aa151465ae32232d3b3b8597715df
* Add BatterySaverPolicy for power save modejackqdyulei2017-03-081-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Power manager now prevents wake locks from idle uids.Dianne Hackborn2016-10-281-0/+8
| | | | | | | | | | | | | | | | The activity manager now pushes the idle/active state down in to the power manager. The power manager now tracks a structure of data about each uid: how many wake locks it holds, whether it is active, and (as before) its current process state. Now when apps are inactive, we always disable wake locks they hold, regardless of the system's device idle or other state. Test: none Change-Id: I2cd4077e4d8a8572525406ae9747f0a2435764da
* power: PowerHAL support for HIDL interfaces.Ruchi Kandoi2016-10-101-18/+4
| | | | | | Bug: 31177288 Change-Id: I3ce5a71958f47d26855513cf7523922e80dd25d2 Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
* Trigger power hints for activity launchWei Wang2016-05-311-2/+7
| | | | | BUG: 28220567 Change-Id: Id2a0397efd1dd02ee50d5626edaed9e60ea6de8a
* window: Adds a Sustained Performance Mode window flag.Ruchi Kandoi2016-04-201-2/+6
| | | | | | | | | | Adds setSustainedPerformanceMode(boolean) API for applications to set the mode for a given window. The mode will be disabled automatically when the window is no longer in focus. Bug: 28150358 Change-Id: Ibe8bc564eeaaccbcaad5c4f792cda16da931dffd Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
* Initial implementation of light-weight idle mode.Dianne Hackborn2015-10-201-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This mode turns on after the screen has been off for 15 minutes, and then cycles through 15 minutes of idle and 1 minute of maintenance, ragardless of whether the device is moving around. It currently only impacts network access and sync/job scheduling. It does not remove access to wake locks or alarms for any apps. It also doesn't report in the public API that the device is in idle mode (since it isn't modifying the behavior of the power manager) -- this is probably what we desire, since we don't want stuff like GCM to be reporting these frequent changes. We'll probably at least want to have the alarm manager do some kind of more aggressive batching of alarms in this most (not allowing more than one wakeup every minute?). That's for the future. Also updated batterystats to include this new information, which means the format of some of the data has changed -- device_idle is no longer a flag, but an enum of (off, light, full), and there is no information about time spent in light modes. Also added new data about the maximum duration spent in both light and full idle modes, to get a better understanding of how those are behaving. And did a little cleanup of DeviceIdleController, removing the sensing alarm which was redundant with the regular alarm. Change-Id: Ibeea6659577dc02deff58f048f97fcd9b0223307
* am 952d5b33: Merge "Send power hint on fling gestures." into mnc-dr-devTim Murray2015-09-171-0/+11
|\ | | | | | | | | * commit '952d5b334ccdf9cab0f56673861906e59d4e9933': Send power hint on fling gestures.
| * Send power hint on fling gestures.Michael Wright2015-09-171-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | Use the existing PointerEventListener infrastructure to listen for gestures that look like flings and hint to the power system when they happen. Since we don't actually have a bound for the fling like a regular application would, limit them to five seconds and refresh every time a new fling is seen until the five second time period is up. bug 24059298 Change-Id: I5757a1e88f2ab2ef08cccefa8221d809ae71bb6f
* | Handle KEYCODE_SOFT_SLEEP from Ungaze.Nick Armstrong-Crews2015-09-071-0/+6
| | | | | | | | | | | | | | | | | | | | | | Needed for Ungaze to trigger "soft sleep" (respecting wake locks); operates by sending new KEYCODE_SOFT_SLEEP to PhoneWindowManager, which calls PowerManagerService's new method setUserInactiveOverride (thereby causing immediate sleep, modulo wakelocks, upon next iteration of PowerManagerService's main loop). BUG: b/23589870 Change-Id: Iddafdde923605d119075e890eeda5d3fd3fd2bc7
* | Revert "Handle KEYCODE_SOFT_SLEEP from Ungaze."Nick Armstrong-Crews2015-09-081-6/+0
| | | | | | | | | | | | | | | | This reverts commit 677adf1e66ba83b8fb2c849c181303b35bd489bc. Hiding new keycode to prevent change to public API before resubmitting. Change-Id: Ic43273dd0c7ade1d51a36b77f363543f1df466e8
* | Handle KEYCODE_SOFT_SLEEP from Ungaze.Nick Armstrong-Crews2015-09-041-0/+6
|/ | | | | | | | | | | Needed for Ungaze to trigger "soft sleep" (respecting wake locks); operates by sending new KEYCODE_SOFT_SLEEP to PhoneWindowManager, which calls PowerManagerService's new method setUserInactiveOverride (thereby causing immediate sleep, modulo wakelocks, upon next iteration of PowerManagerService's main loop). BUG: b/23589870 Change-Id: I24a96bd6db8ff28674c907f2898e49c4f6140209
* Temporarily whitelist an app for network during dozeAmith Yamasani2015-06-021-0/+2
| | | | | | | | | | | | | | | API to allow an app to be whitelisted for network and wakelock access for a short period. So even if the device is in idle mode, such apps can be given a chance to download the payload related to a high priority cloud-to-device message. This API is meant for system apps only. A new permission CHANGE_DEVICE_IDLE_TEMP_WHITELIST is required to make this call. Bug: 21525864 Change-Id: Id7a761a664f21af5d7ff55aa56e8df98d15511ca
* Update power manager to track uid state like netstats.Dianne Hackborn2015-05-181-0/+4
| | | | | | | | | | | | | | | | To follow the correct semantics for when restricts due to device idle can be applied, power manager need to know about uid process states like net policy so that it can allow wake locks from apps that are in the foreground. Since this is being added to a second place, I reworked things so that the activity manager now keeps track of per-uid process states and allows apps to register to listen to those, rather than having to track lower-level process states and transform them into an overall uid state. Both net policy and power manager use this new facility. Change-Id: I77359164c40d0f36fe1ef296dd9f9c3062431148
* Implement device idle in power manager.Dianne Hackborn2015-05-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | When in device idle mode, we now prevent most apps from being able to hold partial wake locks. The device idle controller now pushes its white list of app uids into the power manager, so it can apply this policy correctly to only apps that are not whitelisted. The implementation adds a new "disabled" flag to a wake lock which is set when we want to apply this policy. When set, we ensure that we tell battery stats that the wake lock is not being held and ignore that wake lock when computing the power state summary. Also add new SDK APIs to schedule alarms that are allowed to execute while in idle mode. Finally add new dumpsys commands to the device idle controller to completely disable and re-enable its operation, to use for testing. Change-Id: I1f16672c6ac06d03bb538f9854d5843db9aa6f27
* More work on device idle mode.Dianne Hackborn2015-03-241-1/+3
| | | | | | | | | | | | | | | | | | | | | - There is now an API for people to find out about its state. - Moved DeviceIdleController to be closer to the power manager implementation, since they are closely related. - Job scheduler now knows about idle state and doesn't run jobs while the device is idle. - Battery stats now keeps track of "idling" vs "idle mode". Idling is when we consider the device to be idle, independent of whether we are actually in deep idle mode. This allows us to keep track of longer-term changes independently of cycling in and out of idle mode. - Battery stats also now keeps track of package changes in its daily stats. - Small optimization to network policy manager service to not touch uids that do not have the NETWORK permission. Change-Id: I0b3304fb3722c78cdfdd0c1eada7369ece7cbcf9
* resolved conflicts for merge of 694c1d2b to lmp-mr1-devJeff Brown2014-11-211-0/+52
|\ | | | | | | Change-Id: I9a9b724e0fd12aa161ff276540431b9d8e218e2b
| * Support keeping activities resumed while dozing.Jeff Brown2014-11-201-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | If the lock screen is not shown, then let activities keep running while dozing. This is important to support ambient mode on watches since it allows the home app to keep running. To make this possible, we need to inform the activity manager about the exact wakefulness state, not just the overall boolean interactive state. Bug: 18284212 Change-Id: Ia35c99127ce51ffc178f3a2f51fca67d24061c71
* | Move device admin max screen off timeout to internal interface.Jeff Brown2014-11-061-0/+7
|/ | | | | | | | The setting was previously exposed in IPowerManager but it doesn't need to be there. Bug: 17656076 Change-Id: If3ed0cbe89f67c60aa00376be0c54b1bd9656144
* Allow dreams to control screen state and brightness.Jeff Brown2014-07-221-0/+13
| | | | | | | | | | | | | | | | Added setDozeScreenState() and setDozeScreenBrightness() methods to DreamService. The values specified here only take effect once startDozing is called and can be changed while dozing. This required some significant rework of the display power controller but the result seems quite nice and better represents the policy we want to apply. Changed the test dream a little bit to make it flash the screen every minute using the new functions. Bug: 15903322 Change-Id: I83bcc34503f1b87727d2b2b3c0ef08507f9f0808
* Resolve boot time dependencies related to the power manager.Jeff Brown2014-06-171-7/+2
| | | | | | | | | | | | | | | | | | | | | This change fixes a bug where native daemons may try to communicate with the power manager before it was fully initialized due to a race between publishing the binder service and completing init(). The solution was to simplify the dependencies related to the power manager. It turns out that most services that were passed in init are not actually needed until systemReady. What remained was a dependency on the activity manager to check permissions for incoming calls. So now we start activity manager first. However, the activity manager also depends on power manager for wakelocks. To break the cycle, we now defer initializing the activity manager's wakelocks until after the power manager has been started. Cleaned up a bunch of boot-time service dependencies so that we can have better confidence that they are correctly maintained. Bug: 13884219 Change-Id: If08e2d7ccd44e7026a72441bb6bd5afd7bb9fffe
* Battery stats more wake history, power save mode.Dianne Hackborn2014-05-151-0/+8
| | | | | | | | | | | | | Add new option for battery stats to record the full wake lock history, and recording the current power save mode. Also add in some additional error constants when generating Binder error exceptions. And fix issue #14974572: Avoid repeating wakeup_reason at the beginning of history Change-Id: I7c1a2ab9569de216634f63d8ad69f1294ef1d235
* Refactor display manager service to new pattern.Jeff Brown2014-01-161-5/+5
| | | | | | | | | | | | | | Transform DisplayManagerService into a SystemService and start cleaning up other local services that it uses from window manager and input manager. Clean up service thread initialization. Remove unnecessary static variables from ActivityManagerService. It's starting to become clear that we really need a better way to manage service dependencies. Boot phases don't quite cut it. Change-Id: If319dbd7cbfbd4812fe55ece969e818d4b20755b
* Start untangling system server early bootstrapping.Jeff Brown2014-01-161-0/+60
Refactored SystemServer to get rid of a bunch of legacy cruft related to how the ServerThread used to be started up. Create system context first when system server starts. This removes the tangled initialization order dependency that forced us to start the activity manager service before most anything else. Moved factory test related constants into the FactoryTest class. Partially migrated Installer, ActivityManagerService, and PowerManagerService to the new SystemService pattern. There's more work to be done here, particularly around the lifecycle of the power manager. Bug: 12172368 Change-Id: Ia527dd56e3b3fd90f9eeb41289dbe044921230d4