diff options
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 8a105ddf1a81..bd58472f2d2c 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -1177,7 +1177,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) { @@ -1203,7 +1206,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 2e801ab60acd..e895d377f607 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -2707,15 +2707,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 c94168c59fde..1b92017b8a00 100644 --- a/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java @@ -321,7 +321,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); @@ -439,7 +439,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); @@ -627,8 +627,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(); @@ -638,8 +637,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(); } @@ -647,8 +645,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); @@ -693,8 +690,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); @@ -792,7 +788,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); @@ -1231,7 +1227,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"); @@ -1444,7 +1440,7 @@ public class PowerManagerServiceTest { @Test public void testSetPowerBoost_redirectsCallToNativeWrapper() { createService(); - mService.systemReady(); + startSystem(); mService.getBinderServiceInstance().setPowerBoost(Boost.INTERACTION, 1234); @@ -1454,7 +1450,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); @@ -1470,7 +1466,7 @@ public class PowerManagerServiceTest { @Test public void testSetPowerMode_withLaunchBoostDisabledAndModeLaunch_ignoresCallToEnable() { createService(); - mService.systemReady(); + startSystem(); // Disables launch boost in BatterySaverController. when(mBatterySaverControllerMock.isLaunchBoostDisabled()).thenReturn(true); @@ -1486,7 +1482,7 @@ public class PowerManagerServiceTest { @Test public void testSetPowerModeChecked_returnsNativeCallResult() { createService(); - mService.systemReady(); + startSystem(); // Disables launch boost in BatterySaverController. when(mBatterySaverControllerMock.isLaunchBoostDisabled()).thenReturn(true); @@ -1649,7 +1645,7 @@ public class PowerManagerServiceTest { @Test public void testGetFullPowerSavePolicy_returnsStateMachineResult() { createService(); - mService.systemReady(); + startSystem(); BatterySaverPolicyConfig mockReturnConfig = new BatterySaverPolicyConfig.Builder().build(); when(mBatterySaverStateMachineMock.getFullBatterySaverPolicy()) .thenReturn(mockReturnConfig); @@ -1664,7 +1660,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); @@ -1678,7 +1674,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); @@ -1689,7 +1685,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); @@ -1701,7 +1697,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); @@ -1714,7 +1710,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); |