From c8f952ce9f9cadc0d38745e455c0a6388bc68a47 Mon Sep 17 00:00:00 2001 From: Andres Morales Date: Thu, 19 Mar 2015 08:34:55 -0700 Subject: [PATCH] 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 --- .../core/java/com/android/server/PersistentDataBlockService.java | 9 ++++----- 1 file 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 e5ace1bae9cf..97d16c00d6c4 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(); } -- 2.11.0