diff options
| author | 2022-04-20 20:57:17 +0000 | |
|---|---|---|
| committer | 2022-04-20 20:57:17 +0000 | |
| commit | 4bf1a4ac0166eed6280b9fcb574204a2abd15f52 (patch) | |
| tree | a8d4c78f5346542481948a45730bacd148356756 | |
| parent | ff4461ae5565438e3d66fda0771ae831690fe043 (diff) | |
| parent | e1f17026ca80e43952fcc5d3a246615b711eba0a (diff) | |
UserDataPreparer: reboot to recovery if preparing user storage fails am: e1f17026ca
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17416117
Change-Id: I7c61136b0fc6f2c8992672c6cdd179de9f0ba639
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/pm/UserDataPreparer.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/UserDataPreparer.java b/services/core/java/com/android/server/pm/UserDataPreparer.java index 045a295da965..504769064808 100644 --- a/services/core/java/com/android/server/pm/UserDataPreparer.java +++ b/services/core/java/com/android/server/pm/UserDataPreparer.java @@ -22,6 +22,7 @@ import android.content.Context; import android.content.pm.UserInfo; import android.os.Environment; import android.os.FileUtils; +import android.os.RecoverySystem; import android.os.storage.StorageManager; import android.os.storage.VolumeInfo; import android.os.SystemProperties; @@ -115,6 +116,13 @@ class UserDataPreparer { // Try one last time; if we fail again we're really in trouble prepareUserDataLI(volumeUuid, userId, userSerial, flags | StorageManager.FLAG_STORAGE_DE, false); + } else { + try { + Log.e(TAG, "prepareUserData failed", e); + RecoverySystem.rebootPromptAndWipeUserData(mContext, "prepareUserData failed"); + } catch (IOException e2) { + throw new RuntimeException("error rebooting into recovery", e2); + } } } } |