diff options
| author | 2022-01-26 20:29:32 +0000 | |
|---|---|---|
| committer | 2022-01-26 20:29:32 +0000 | |
| commit | e68cd4c435b73dcb6320b3de88c362724b3b34fc (patch) | |
| tree | f89cc3bdf039116b43e0fb7f787d3c3e67aac3b2 | |
| parent | 759ccebf47a7d207b0d3b2f1faff4ec69b2f460d (diff) | |
| parent | 0a3cb5df0a6912c868bf9915e27ee066149c20ce (diff) | |
Merge "UserDataPreparer: reboot to recovery if preparing user storage fails" am: 39d90b7a2d am: 0a3cb5df0a
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1959659
Change-Id: I0856593c8d0f39fadedcdd3565154a036f6678f6
| -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); + } } } } |