Fix crash if trying to erase the FRP data.
- Once factory reset protection is on, user data shall not be erased. Flag: EXEMPT bug fix Fix: 345587437 Test: Manual test passed Test: atest passed Change-Id: I9506224cae7ba12c4181f2b2c676e5eb8ec27431
This commit is contained in:
@@ -89,8 +89,7 @@ public class MainClearConfirm extends InstrumentedFragment {
|
||||
final PersistentDataBlockManager pdbManager;
|
||||
// pre-flight check hardware support PersistentDataBlockManager
|
||||
if (!SystemProperties.get(PERSISTENT_DATA_BLOCK_PROP).equals("")) {
|
||||
pdbManager = (PersistentDataBlockManager)
|
||||
getActivity().getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
|
||||
pdbManager = getActivity().getSystemService(PersistentDataBlockManager.class);
|
||||
} else {
|
||||
pdbManager = null;
|
||||
}
|
||||
@@ -152,6 +151,11 @@ public class MainClearConfirm extends InstrumentedFragment {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Do not try to erase factory reset protection data if the protection is alive.
|
||||
if (pdbManager.isFactoryResetProtectionActive()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// The persistent data block will persist if the device is still being provisioned.
|
||||
if (isDeviceStillBeingProvisioned()) {
|
||||
return false;
|
||||
|
@@ -77,6 +77,7 @@ public class MainClearConfirmTest {
|
||||
|
||||
when(mMockActivity.getSystemService(Context.DEVICE_POLICY_SERVICE))
|
||||
.thenReturn(mDevicePolicyManager);
|
||||
when(mPersistentDataBlockManager.isFactoryResetProtectionActive()).thenReturn(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -112,6 +113,13 @@ public class MainClearConfirmTest {
|
||||
assertThat(mMainClearConfirm.shouldWipePersistentDataBlock(null)).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldWipePersistentDataBlock_frpIsAlive_shouldReturnFalse() {
|
||||
when(mPersistentDataBlockManager.isFactoryResetProtectionActive()).thenReturn(true);
|
||||
assertThat(mMainClearConfirm.shouldWipePersistentDataBlock(mPersistentDataBlockManager))
|
||||
.isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldWipePersistentDataBlock_deviceIsStillBeingProvisioned_shouldReturnFalse() {
|
||||
doReturn(true).when(mMainClearConfirm).isDeviceStillBeingProvisioned();
|
||||
|
Reference in New Issue
Block a user