summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mark Salyzyn <salyzyn@google.com> 2017-08-25 14:25:41 +0000
committer android-build-merger <android-build-merger@google.com> 2017-08-25 14:25:41 +0000
commitcf5fa80fbfa3b43875fd5fae1b6c06cf6c6364d2 (patch)
tree06aaff63ba756edfdf8c31661962dcba82b3f0e9
parent49042dc67c6df7177db10ab5c91e062faf1efedd (diff)
parent0172ce8dbfefcae92c6fb9098bb570244237dfb8 (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.java20
-rw-r--r--services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java19
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);
}
}