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
diff --git a/src/com/android/settings/MainClearConfirm.java b/src/com/android/settings/MainClearConfirm.java
index c45a907..9208c4f 100644
--- a/src/com/android/settings/MainClearConfirm.java
+++ b/src/com/android/settings/MainClearConfirm.java
@@ -31,6 +31,7 @@
 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 @@
 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 @@
                 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);