From e461e673ac24b19a10a17fe7770d3ebd81497d5b Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Wed, 23 Jun 2021 23:54:12 +0800 Subject: [PATCH] Fix crashes when clearing storage for a protected package When clearing storage for a protected package, ActivityManager throws a SecurityException. This change catches the exception then shows a dialog with the message "Couldn't clear storage for app". Bug: 191806850 Test: manual visual 1. Lock the device. 2. Clear storage for a protected package. Change-Id: Ic3e2c2237c6ee6dc945b03dac35b3b96a26129a9 --- .../android/settings/applications/AppStorageSettings.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/applications/AppStorageSettings.java b/src/com/android/settings/applications/AppStorageSettings.java index d095e37a5bf..91eeace0fd3 100644 --- a/src/com/android/settings/applications/AppStorageSettings.java +++ b/src/com/android/settings/applications/AppStorageSettings.java @@ -368,7 +368,12 @@ public class AppStorageSettings extends AppInfoWithHeader } ActivityManager am = (ActivityManager) getActivity().getSystemService(Context.ACTIVITY_SERVICE); - boolean res = am.clearApplicationUserData(packageName, mClearDataObserver); + boolean res = false; + try { + res = am.clearApplicationUserData(packageName, mClearDataObserver); + } catch (SecurityException e) { + Log.i(TAG, "Failed to clear application user data: " + e); + } if (!res) { // Clearing data failed for some obscure reason. Just log error for now Log.i(TAG, "Couldn't clear application user data for package:" + packageName);