Stub the oemlock operations when the PersistentDataBlock is not supported

The PersistentDataBlockService is not a compulsory component of framework thus we need to
handle cases when the PersistentDataBlockService is unavailable.

Bug: 132943408
Bug: 123777418
Test: toggle the oemlock in setting menu.

Change-Id: I59eec0a4905b588bf261b8447ad4b4e26ba5278d
This commit is contained in:
Howard Chen
2019-06-06 11:36:48 +08:00
parent f3825f11a1
commit f1c7648abf

View File

@@ -73,6 +73,10 @@ class PersistentDataBlockLock extends OemLock {
// unlocked but doesn't actually do any unlocking.
final PersistentDataBlockManager pdbm = (PersistentDataBlockManager)
mContext.getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
if (pdbm == null) {
Slog.w(TAG, "PersistentDataBlock is not supported on this device");
return;
}
pdbm.setOemUnlockEnabled(allowedByDevice);
}
@@ -80,6 +84,10 @@ class PersistentDataBlockLock extends OemLock {
boolean isOemUnlockAllowedByDevice() {
final PersistentDataBlockManager pdbm = (PersistentDataBlockManager)
mContext.getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
if (pdbm == null) {
Slog.w(TAG, "PersistentDataBlock is not supported on this device");
return false;
}
return pdbm.getOemUnlockEnabled();
}
@@ -91,6 +99,10 @@ class PersistentDataBlockLock extends OemLock {
private void disallowUnlockIfNotUnlocked() {
final PersistentDataBlockManager pdbm = (PersistentDataBlockManager)
mContext.getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
if (pdbm == null) {
Slog.w(TAG, "PersistentDataBlock is not supported on this device");
return;
}
if (pdbm.getFlashLockState() != PersistentDataBlockManager.FLASH_LOCK_UNLOCKED) {
pdbm.setOemUnlockEnabled(false);
}