diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index 8ab3588bff0fa..8b240668cd50c 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -1604,10 +1604,15 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { if (userState.mUserId != UserHandle.USER_OWNER) { return; } - if (hasRunningServicesLocked(userState) && LockPatternUtils.isDeviceEncrypted()) { - // If there are running accessibility services we do not have encryption as - // the user needs the accessibility layer to be running to authenticate. - mLockPatternUtils.clearEncryptionPassword(); + final long identity = Binder.clearCallingIdentity(); + try { + if (hasRunningServicesLocked(userState) && LockPatternUtils.isDeviceEncrypted()) { + // If there are running accessibility services we do not have encryption as + // the user needs the accessibility layer to be running to authenticate. + mLockPatternUtils.clearEncryptionPassword(); + } + } finally { + Binder.restoreCallingIdentity(identity); } }