diff options
| author | 2017-08-25 14:25:41 +0000 | |
|---|---|---|
| committer | 2017-08-25 14:25:41 +0000 | |
| commit | cf5fa80fbfa3b43875fd5fae1b6c06cf6c6364d2 (patch) | |
| tree | 06aaff63ba756edfdf8c31661962dcba82b3f0e9 | |
| parent | 49042dc67c6df7177db10ab5c91e062faf1efedd (diff) | |
| parent | 0172ce8dbfefcae92c6fb9098bb570244237dfb8 (diff) | |
Merge "Switch /data/misc/reboot/last_reboot_reason to persistent property"
am: 0172ce8dbf
Change-Id: I69a9c17fc8594dee564e8c64e9d85f2afe60607b
| -rw-r--r-- | services/core/java/com/android/server/power/PowerManagerService.java | 20 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java | 19 |
2 files changed, 13 insertions, 26 deletions
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 50f4f24c8d44..855c055dc7d5 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -204,8 +204,8 @@ public final class PowerManagerService extends SystemService // Possible reasons for shutting down for use in data/misc/reboot/last_shutdown_reason private static final String REASON_SHUTDOWN = "shutdown"; private static final String REASON_REBOOT = "reboot"; - private static final String REASON_USERREQUESTED = "userrequested"; - private static final String REASON_THERMAL_SHUTDOWN = "thermal-shutdown"; + private static final String REASON_USERREQUESTED = "shutdown,userrequested"; + private static final String REASON_THERMAL_SHUTDOWN = "shutdown,thermal"; private static final String TRACE_SCREEN_ON = "Screen turning on"; @@ -220,8 +220,8 @@ public final class PowerManagerService extends SystemService private static final int HALT_MODE_REBOOT = 1; private static final int HALT_MODE_REBOOT_SAFE_MODE = 2; - // File location for last reboot reason - private static final String LAST_REBOOT_LOCATION = "/data/misc/reboot/last_reboot_reason"; + // Persistent property for last reboot reason + private static final String LAST_REBOOT_PROPERTY = "persist.sys.boot.reason"; private final Context mContext; private final ServiceThread mHandlerThread; @@ -4388,7 +4388,7 @@ public final class PowerManagerService extends SystemService final long ident = Binder.clearCallingIdentity(); try { - return getLastShutdownReasonInternal(new File(LAST_REBOOT_LOCATION)); + return getLastShutdownReasonInternal(LAST_REBOOT_PROPERTY); } finally { Binder.restoreCallingIdentity(ident); } @@ -4622,13 +4622,9 @@ public final class PowerManagerService extends SystemService } @VisibleForTesting - int getLastShutdownReasonInternal(File lastRebootReason) { - String line = ""; - try (BufferedReader bufferedReader = new BufferedReader(new FileReader(lastRebootReason))){ - line = bufferedReader.readLine(); - } catch (IOException e) { - Slog.e(TAG, "Failed to read last_reboot_reason file", e); - } + // lastRebootReasonProperty argument to permit testing + int getLastShutdownReasonInternal(String lastRebootReasonProperty) { + String line = SystemProperties.get(lastRebootReasonProperty); if (line == null) { return PowerManager.SHUTDOWN_REASON_UNKNOWN; } 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 d12c07a84004..14b1ce1662c7 100644 --- a/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java @@ -20,6 +20,7 @@ import android.content.Context; import android.hardware.display.DisplayManagerInternal.DisplayPowerRequest; import android.os.PowerManager; import android.os.PowerSaveState; +import android.os.SystemProperties; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.SmallTest; import android.text.TextUtils; @@ -44,17 +45,14 @@ public class PowerManagerServiceTest extends AndroidTestCase { private static final float PRECISION = 0.001f; private static final float BRIGHTNESS_FACTOR = 0.7f; private static final boolean BATTERY_SAVER_ENABLED = true; - private static final String LAST_REBOOT_REASON = "last_reboot_reason"; + private static final String TEST_LAST_REBOOT_PROPERTY = "test.sys.boot.reason"; private @Mock BatterySaverPolicy mBatterySaverPolicy; private PowerManagerService mService; private PowerSaveState mPowerSaveState; private DisplayPowerRequest mDisplayPowerRequest; - private File mTempReason; @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); - public void setUp() throws Exception { super.setUp(); MockitoAnnotations.initMocks(this); @@ -68,8 +66,6 @@ public class PowerManagerServiceTest extends AndroidTestCase { .thenReturn(mPowerSaveState); mDisplayPowerRequest = new DisplayPowerRequest(); mService = new PowerManagerService(getContext(), mBatterySaverPolicy); - temporaryFolder.create(); - mTempReason = temporaryFolder.newFile(LAST_REBOOT_REASON); } @SmallTest @@ -82,14 +78,9 @@ public class PowerManagerServiceTest extends AndroidTestCase { @SmallTest public void testGetLastShutdownReasonInternal() { - try { - FileWriter writer = new FileWriter(mTempReason); - writer.append("thermal-shutdown\n"); - writer.close(); - } catch (IOException e) { - e.printStackTrace(); - } - int reason = mService.getLastShutdownReasonInternal(mTempReason); + SystemProperties.set(TEST_LAST_REBOOT_PROPERTY, "shutdown,thermal"); + int reason = mService.getLastShutdownReasonInternal(TEST_LAST_REBOOT_PROPERTY); + SystemProperties.set(TEST_LAST_REBOOT_PROPERTY, ""); assertThat(reason).isEqualTo(PowerManager.SHUTDOWN_REASON_THERMAL_SHUTDOWN); } } |