summaryrefslogtreecommitdiffstats
path: root/services/core/java/com/android/server/PersistentDataBlockService.java
diff options
context:
space:
mode:
authorAndres Morales <anmorales@google.com>2015-03-19 08:34:55 -0700
committerAndres Morales <anmorales@google.com>2015-03-19 17:18:01 +0000
commitc8f952ce9f9cadc0d38745e455c0a6388bc68a47 (patch)
tree5215eb2cfbad1d4230e52c6bc9363b7671f421aa /services/core/java/com/android/server/PersistentDataBlockService.java
parentcbdfa09fc56995c8c99e8684b8c52e4f9d247a50 (diff)
downloadframeworks_base-c8f952ce9f9cadc0d38745e455c0a6388bc68a47.zip
frameworks_base-c8f952ce9f9cadc0d38745e455c0a6388bc68a47.tar.gz
frameworks_base-c8f952ce9f9cadc0d38745e455c0a6388bc68a47.tar.bz2
Write correct checksum when formatting partition
OEM unlock enabled bit is not computed in the checksum, causing OEM Unlocking to be disabled after the second reboot. Bug: 19829441 Change-Id: I100bf5d3958b89323ee35b9e97b19c162209fcd7
Diffstat (limited to 'services/core/java/com/android/server/PersistentDataBlockService.java')
-rw-r--r--services/core/java/com/android/server/PersistentDataBlockService.java9
1 files changed, 4 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/PersistentDataBlockService.java b/services/core/java/com/android/server/PersistentDataBlockService.java
index e5ace1b..97d16c0 100644
--- a/services/core/java/com/android/server/PersistentDataBlockService.java
+++ b/services/core/java/com/android/server/PersistentDataBlockService.java
@@ -110,8 +110,7 @@ public class PersistentDataBlockService extends SystemService {
private void formatIfOemUnlockEnabled() {
if (doGetOemUnlockEnabled()) {
synchronized (mLock) {
- formatPartitionLocked();
- doSetOemUnlockEnabledLocked(true);
+ formatPartitionLocked(true);
}
}
}
@@ -165,7 +164,7 @@ public class PersistentDataBlockService extends SystemService {
byte[] digest = computeDigestLocked(storedDigest);
if (digest == null || !Arrays.equals(storedDigest, digest)) {
Slog.i(TAG, "Formatting FRP partition...");
- formatPartitionLocked();
+ formatPartitionLocked(false);
return false;
}
}
@@ -242,7 +241,7 @@ public class PersistentDataBlockService extends SystemService {
return md.digest();
}
- private void formatPartitionLocked() {
+ private void formatPartitionLocked(boolean setOemUnlockEnabled) {
DataOutputStream outputStream;
try {
outputStream = new DataOutputStream(new FileOutputStream(new File(mDataBlockFile)));
@@ -264,7 +263,7 @@ public class PersistentDataBlockService extends SystemService {
IoUtils.closeQuietly(outputStream);
}
- doSetOemUnlockEnabledLocked(false);
+ doSetOemUnlockEnabledLocked(setOemUnlockEnabled);
computeAndWriteDigestLocked();
}