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
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 @@
     private void formatIfOemUnlockEnabled() {
         if (doGetOemUnlockEnabled()) {
             synchronized (mLock) {
-                formatPartitionLocked();
-                doSetOemUnlockEnabledLocked(true);
+                formatPartitionLocked(true);
             }
         }
     }
@@ -165,7 +164,7 @@
             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 @@
         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 @@
             IoUtils.closeQuietly(outputStream);
         }
 
-        doSetOemUnlockEnabledLocked(false);
+        doSetOemUnlockEnabledLocked(setOemUnlockEnabled);
         computeAndWriteDigestLocked();
     }