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
This commit is contained in:
@@ -110,8 +110,7 @@ public class PersistentDataBlockService extends SystemService {
|
|||||||
private void formatIfOemUnlockEnabled() {
|
private void formatIfOemUnlockEnabled() {
|
||||||
if (doGetOemUnlockEnabled()) {
|
if (doGetOemUnlockEnabled()) {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
formatPartitionLocked();
|
formatPartitionLocked(true);
|
||||||
doSetOemUnlockEnabledLocked(true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -165,7 +164,7 @@ public class PersistentDataBlockService extends SystemService {
|
|||||||
byte[] digest = computeDigestLocked(storedDigest);
|
byte[] digest = computeDigestLocked(storedDigest);
|
||||||
if (digest == null || !Arrays.equals(storedDigest, digest)) {
|
if (digest == null || !Arrays.equals(storedDigest, digest)) {
|
||||||
Slog.i(TAG, "Formatting FRP partition...");
|
Slog.i(TAG, "Formatting FRP partition...");
|
||||||
formatPartitionLocked();
|
formatPartitionLocked(false);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -242,7 +241,7 @@ public class PersistentDataBlockService extends SystemService {
|
|||||||
return md.digest();
|
return md.digest();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void formatPartitionLocked() {
|
private void formatPartitionLocked(boolean setOemUnlockEnabled) {
|
||||||
DataOutputStream outputStream;
|
DataOutputStream outputStream;
|
||||||
try {
|
try {
|
||||||
outputStream = new DataOutputStream(new FileOutputStream(new File(mDataBlockFile)));
|
outputStream = new DataOutputStream(new FileOutputStream(new File(mDataBlockFile)));
|
||||||
@@ -264,7 +263,7 @@ public class PersistentDataBlockService extends SystemService {
|
|||||||
IoUtils.closeQuietly(outputStream);
|
IoUtils.closeQuietly(outputStream);
|
||||||
}
|
}
|
||||||
|
|
||||||
doSetOemUnlockEnabledLocked(false);
|
doSetOemUnlockEnabledLocked(setOemUnlockEnabled);
|
||||||
computeAndWriteDigestLocked();
|
computeAndWriteDigestLocked();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user