diff options
author | Amith Yamasani <yamasani@google.com> | 2012-11-27 15:40:36 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-11-27 15:40:36 -0800 |
commit | 1c2c48cba61e87f54f4b413b2192963dc71d76e3 (patch) | |
tree | 9101e18d4679a907ba644cd03951b41803722027 | |
parent | 712c26865c5d0491054143c15579c0c5db59923a (diff) | |
parent | f426ace9dab65c88b36a047bf921070edcf8cf61 (diff) | |
download | frameworks_base-1c2c48cba61e87f54f4b413b2192963dc71d76e3.zip frameworks_base-1c2c48cba61e87f54f4b413b2192963dc71d76e3.tar.gz frameworks_base-1c2c48cba61e87f54f4b413b2192963dc71d76e3.tar.bz2 |
am f426ace9: Merge "Only wipe device if primary user (for failed password attempts)" into jb-mr1.1-dev
* commit 'f426ace9dab65c88b36a047bf921070edcf8cf61':
Only wipe device if primary user (for failed password attempts)
-rw-r--r-- | services/java/com/android/server/DevicePolicyManagerService.java | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/services/java/com/android/server/DevicePolicyManagerService.java b/services/java/com/android/server/DevicePolicyManagerService.java index a5e26a8..5ba71a4 100644 --- a/services/java/com/android/server/DevicePolicyManagerService.java +++ b/services/java/com/android/server/DevicePolicyManagerService.java @@ -1875,28 +1875,32 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { DeviceAdminInfo.USES_POLICY_WIPE_DATA); long ident = Binder.clearCallingIdentity(); try { - if (userHandle == UserHandle.USER_OWNER) { - wipeDataLocked(flags); - } else { - lockNowUnchecked(); - mHandler.post(new Runnable() { - public void run() { - try { - ActivityManagerNative.getDefault().switchUser(0); - ((UserManager) mContext.getSystemService(Context.USER_SERVICE)) - .removeUser(userHandle); - } catch (RemoteException re) { - // Shouldn't happen - } - } - }); - } + wipeDeviceOrUserLocked(flags, userHandle); } finally { Binder.restoreCallingIdentity(ident); } } } + private void wipeDeviceOrUserLocked(int flags, final int userHandle) { + if (userHandle == UserHandle.USER_OWNER) { + wipeDataLocked(flags); + } else { + lockNowUnchecked(); + mHandler.post(new Runnable() { + public void run() { + try { + ActivityManagerNative.getDefault().switchUser(0); + ((UserManager) mContext.getSystemService(Context.USER_SERVICE)) + .removeUser(userHandle); + } catch (RemoteException re) { + // Shouldn't happen + } + } + }); + } + } + public void getRemoveWarning(ComponentName comp, final RemoteCallback result, int userHandle) { enforceCrossUserPermission(userHandle); mContext.enforceCallingOrSelfPermission( @@ -1996,7 +2000,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { saveSettingsLocked(userHandle); int max = getMaximumFailedPasswordsForWipe(null, userHandle); if (max > 0 && policy.mFailedPasswordAttempts >= max) { - wipeDataLocked(0); + wipeDeviceOrUserLocked(0, userHandle); } sendAdminCommandLocked(DeviceAdminReceiver.ACTION_PASSWORD_FAILED, DeviceAdminInfo.USES_POLICY_WATCH_LOGIN, userHandle); |