Fix "Factory Reset" fails to reset the device

when device didn't support PersistentDataBlockManager, Settings will
crash at get PersistentDataBlock service.
So we need to check if device support PersistentDataBlockManager
before call getService.

Fixes: 196634851
Test: manual verify on aosp build.
Change-Id: I5afba5df8c4831499478490b442c0fcf367d23ae
This commit is contained in:
Edgar Wang
2022-04-11 21:50:01 +08:00
parent 18bdecad94
commit f8739eda93

View File

@@ -31,6 +31,7 @@ import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.service.oemlock.OemLockManager;
@@ -67,6 +68,8 @@ import com.google.android.setupdesign.GlifLayout;
public class MainClearConfirm extends InstrumentedFragment {
private static final String TAG = "MainClearConfirm";
private static final String PERSISTENT_DATA_BLOCK_PROP = "ro.frp.pst";
@VisibleForTesting View mContentView;
private boolean mEraseSdCard;
@VisibleForTesting boolean mEraseEsims;
@@ -83,6 +86,11 @@ public class MainClearConfirm extends InstrumentedFragment {
return;
}
// pre-flight check hardware support PersistentDataBlockManager
if (SystemProperties.get(PERSISTENT_DATA_BLOCK_PROP).equals("")) {
return;
}
final PersistentDataBlockManager pdbManager = (PersistentDataBlockManager)
getActivity().getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);