diff options
| author | 2022-02-09 13:40:34 +0000 | |
|---|---|---|
| committer | 2022-02-14 13:33:02 +0000 | |
| commit | 800c1b5c069d5fd989708a4c97de5f780f398b7e (patch) | |
| tree | 8df1cb928144c070ccbb07f0ec59b603c569e5a1 | |
| parent | 5dc8ee52ed4b203ffdef69dbe0da97d66e9c9559 (diff) | |
Use onBootPhase for PowerManagerService bring-up
Change PowerManagerService to remove the extra systemReady method called
from SystemServer and use the boot phase for system services ready
instead.
Fix: 218847044
Test: PowerManagerServiceTest
Change-Id: Ib69f0a0a5168e270e413c25d75f739809787eded
5 files changed, 25 insertions, 35 deletions
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 38570727742d..972c2ad0dce9 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -1172,7 +1172,10 @@ public final class PowerManagerService extends SystemService @Override public void onBootPhase(int phase) { synchronized (mLock) { - if (phase == PHASE_THIRD_PARTY_APPS_CAN_START) { + if (phase == PHASE_SYSTEM_SERVICES_READY) { + systemReady(); + + } else if (phase == PHASE_THIRD_PARTY_APPS_CAN_START) { incrementBootCount(); } else if (phase == PHASE_BOOT_COMPLETED) { @@ -1198,7 +1201,7 @@ public final class PowerManagerService extends SystemService } } - public void systemReady() { + private void systemReady() { synchronized (mLock) { mSystemReady = true; mDreamManager = getLocalService(DreamManagerInternal.class); diff --git a/services/core/java/com/android/server/power/batterysaver/BatterySaverPolicy.java b/services/core/java/com/android/server/power/batterysaver/BatterySaverPolicy.java index ffcb2bdbffab..b4613a76c751 100644 --- a/services/core/java/com/android/server/power/batterysaver/BatterySaverPolicy.java +++ b/services/core/java/com/android/server/power/batterysaver/BatterySaverPolicy.java @@ -276,7 +276,7 @@ public class BatterySaverPolicy extends ContentObserver implements } /** - * Called by {@link PowerManagerService#systemReady}, *with no lock held.* + * Called by {@link PowerManagerService#onBootPhase}, *with no lock held.* */ public void systemReady() { ConcurrentUtils.wtfIfLockHeld(TAG, mLock); diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 03b1c53beaf8..0f3b7bdd30d4 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -2689,15 +2689,6 @@ public final class SystemServer implements Dumpable { systemTheme.rebase(); } - t.traceBegin("MakePowerManagerServiceReady"); - try { - // TODO: use boot phase - mPowerManagerService.systemReady(); - } catch (Throwable e) { - reportWtf("making Power Manager Service ready", e); - } - t.traceEnd(); - // Permission policy service t.traceBegin("StartPermissionPolicyService"); mSystemServiceManager.startService(PermissionPolicyService.class); diff --git a/services/tests/mockingservicestests/src/com/android/server/power/PowerManagerServiceMockingTest.java b/services/tests/mockingservicestests/src/com/android/server/power/PowerManagerServiceMockingTest.java index 0411b941c4a4..9cf6c0325024 100644 --- a/services/tests/mockingservicestests/src/com/android/server/power/PowerManagerServiceMockingTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/power/PowerManagerServiceMockingTest.java @@ -263,7 +263,7 @@ public class PowerManagerServiceMockingTest { @Test public void testUserActivityOnDeviceStateChange() { createService(); - mService.systemReady(); + mService.onBootPhase(SystemService.PHASE_SYSTEM_SERVICES_READY); mService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED); final DisplayInfo info = new DisplayInfo(); diff --git a/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java index 827349ad433a..f39e3a893ad7 100644 --- a/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java @@ -319,7 +319,7 @@ public class PowerManagerServiceTest { } private void startSystem() { - mService.systemReady(); + mService.onBootPhase(SystemService.PHASE_SYSTEM_SERVICES_READY); // Grab the BatteryReceiver ArgumentCaptor<BatteryReceiver> batCaptor = ArgumentCaptor.forClass(BatteryReceiver.class); @@ -419,7 +419,7 @@ public class PowerManagerServiceTest { @Test public void testGetDesiredScreenPolicy_WithVR() { createService(); - mService.systemReady(); + startSystem(); // Brighten up the screen mService.setWakefulnessLocked(Display.DEFAULT_DISPLAY_GROUP, WAKEFULNESS_AWAKE, 0, 0, 0, 0, null, null); @@ -607,8 +607,7 @@ public class PowerManagerServiceTest { public void testWasDeviceIdleFor_true() { int interval = 1000; createService(); - mService.systemReady(); - mService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED); + startSystem(); mService.onUserActivity(); advanceTime(interval + 1 /* just a little more */); assertThat(mService.wasDeviceIdleForInternal(interval)).isTrue(); @@ -618,8 +617,7 @@ public class PowerManagerServiceTest { public void testWasDeviceIdleFor_false() { int interval = 1000; createService(); - mService.systemReady(); - mService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED); + startSystem(); mService.onUserActivity(); assertThat(mService.wasDeviceIdleForInternal(interval)).isFalse(); } @@ -627,8 +625,7 @@ public class PowerManagerServiceTest { @Test public void testForceSuspend_putsDeviceToSleep() { createService(); - mService.systemReady(); - mService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED); + startSystem(); // Verify that we start awake assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE); @@ -673,8 +670,7 @@ public class PowerManagerServiceTest { // // TEST STARTS HERE // - mService.systemReady(); - mService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED); + startSystem(); // Verify that we start awake assertThat(mService.getGlobalWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE); @@ -772,7 +768,7 @@ public class PowerManagerServiceTest { createService(); assertTrue(isAcquired[0]); - mService.systemReady(); + mService.onBootPhase(SystemService.PHASE_SYSTEM_SERVICES_READY); assertTrue(isAcquired[0]); mService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED); @@ -1146,7 +1142,7 @@ public class PowerManagerServiceTest { public void testQuiescentBoot_WakeKeyBeforeBootCompleted_AwakeAfterBootCompleted() { when(mSystemPropertiesMock.get(eq(SYSTEM_PROPERTY_QUIESCENT), any())).thenReturn("1"); createService(); - mService.systemReady(); + startSystem(); mService.getBinderServiceInstance().wakeUp(mClock.now(), PowerManager.WAKE_REASON_UNKNOWN, "testing IPowerManager.wakeUp()", "pkg.name"); @@ -1359,7 +1355,7 @@ public class PowerManagerServiceTest { @Test public void testSetPowerBoost_redirectsCallToNativeWrapper() { createService(); - mService.systemReady(); + startSystem(); mService.getBinderServiceInstance().setPowerBoost(Boost.INTERACTION, 1234); @@ -1369,7 +1365,7 @@ public class PowerManagerServiceTest { @Test public void testSetPowerMode_redirectsCallToNativeWrapper() { createService(); - mService.systemReady(); + startSystem(); // Enabled launch boost in BatterySaverController to allow setting launch mode. when(mBatterySaverControllerMock.isLaunchBoostDisabled()).thenReturn(false); @@ -1385,7 +1381,7 @@ public class PowerManagerServiceTest { @Test public void testSetPowerMode_withLaunchBoostDisabledAndModeLaunch_ignoresCallToEnable() { createService(); - mService.systemReady(); + startSystem(); // Disables launch boost in BatterySaverController. when(mBatterySaverControllerMock.isLaunchBoostDisabled()).thenReturn(true); @@ -1401,7 +1397,7 @@ public class PowerManagerServiceTest { @Test public void testSetPowerModeChecked_returnsNativeCallResult() { createService(); - mService.systemReady(); + startSystem(); // Disables launch boost in BatterySaverController. when(mBatterySaverControllerMock.isLaunchBoostDisabled()).thenReturn(true); @@ -1564,7 +1560,7 @@ public class PowerManagerServiceTest { @Test public void testGetFullPowerSavePolicy_returnsStateMachineResult() { createService(); - mService.systemReady(); + startSystem(); BatterySaverPolicyConfig mockReturnConfig = new BatterySaverPolicyConfig.Builder().build(); when(mBatterySaverStateMachineMock.getFullBatterySaverPolicy()) .thenReturn(mockReturnConfig); @@ -1579,7 +1575,7 @@ public class PowerManagerServiceTest { @Test public void testSetFullPowerSavePolicy_callsStateMachine() { createService(); - mService.systemReady(); + startSystem(); BatterySaverPolicyConfig mockSetPolicyConfig = new BatterySaverPolicyConfig.Builder().build(); when(mBatterySaverStateMachineMock.setFullBatterySaverPolicy(any())).thenReturn(true); @@ -1593,7 +1589,7 @@ public class PowerManagerServiceTest { @Test public void testLowPowerStandby_whenInactive_FgsWakeLockEnabled() { createService(); - mService.systemReady(); + startSystem(); WakeLock wakeLock = acquireWakeLock("fgsWakeLock", PowerManager.PARTIAL_WAKE_LOCK); mService.updateUidProcStateInternal(wakeLock.mOwnerUid, PROCESS_STATE_FOREGROUND_SERVICE); mService.setDeviceIdleModeInternal(true); @@ -1604,7 +1600,7 @@ public class PowerManagerServiceTest { @Test public void testLowPowerStandby_whenActive_FgsWakeLockDisabled() { createService(); - mService.systemReady(); + startSystem(); WakeLock wakeLock = acquireWakeLock("fgsWakeLock", PowerManager.PARTIAL_WAKE_LOCK); mService.updateUidProcStateInternal(wakeLock.mOwnerUid, PROCESS_STATE_FOREGROUND_SERVICE); mService.setDeviceIdleModeInternal(true); @@ -1616,7 +1612,7 @@ public class PowerManagerServiceTest { @Test public void testLowPowerStandby_whenActive_FgsWakeLockEnabledIfAllowlisted() { createService(); - mService.systemReady(); + startSystem(); WakeLock wakeLock = acquireWakeLock("fgsWakeLock", PowerManager.PARTIAL_WAKE_LOCK); mService.updateUidProcStateInternal(wakeLock.mOwnerUid, PROCESS_STATE_FOREGROUND_SERVICE); mService.setDeviceIdleModeInternal(true); @@ -1629,7 +1625,7 @@ public class PowerManagerServiceTest { @Test public void testLowPowerStandby_whenActive_BoundTopWakeLockDisabled() { createService(); - mService.systemReady(); + startSystem(); WakeLock wakeLock = acquireWakeLock("BoundTopWakeLock", PowerManager.PARTIAL_WAKE_LOCK); mService.updateUidProcStateInternal(wakeLock.mOwnerUid, PROCESS_STATE_BOUND_TOP); mService.setDeviceIdleModeInternal(true); |