diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-05-16 21:11:13 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-05-16 21:11:13 +0000 |
commit | 6668fcafe221934d94c83eea534caeeddc1e8587 (patch) | |
tree | 7415e60b47392804c3385a3cdd1180a9e9fb9639 | |
parent | 2ba316f58e4429033caa495cbc22a0d66dd92d15 (diff) | |
parent | 6ba336c0e280183a04ca45b217a7e89f8419d62b (diff) | |
download | base-6668fcafe221934d94c83eea534caeeddc1e8587.tar.gz |
Merge "UserDataPreparer: reboot to recovery if preparing user storage fails" into snap-temp-L01900000954560285
-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); + } } } } |