From 0595b5a94b222ca399ee17c7d672302beb0c5eb4 Mon Sep 17 00:00:00 2001 From: Siyamed Sinir Date: Wed, 13 Sep 2017 15:09:24 -0700 Subject: Fix ClipboardService device lock check for cross profile ClipboardService.isDeviceLocked should clear callingIdentity before accessing KeyguardManager. Test: bit CtsDevicePolicyManagerTestCases:com.android.cts.devicepolicy.ManagedProfileTest Bug: 64934810 Change-Id: Iffc8e73dd3ee14a94958bb50dd11a696eab7f052 --- .../java/com/android/server/clipboard/ClipboardService.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/clipboard/ClipboardService.java b/services/core/java/com/android/server/clipboard/ClipboardService.java index 383f11604acb..83ec036fe94b 100644 --- a/services/core/java/com/android/server/clipboard/ClipboardService.java +++ b/services/core/java/com/android/server/clipboard/ClipboardService.java @@ -307,10 +307,15 @@ public class ClipboardService extends IClipboard.Stub { } private boolean isDeviceLocked() { - final KeyguardManager keyguardManager = (KeyguardManager) mContext.getSystemService( - Context.KEYGUARD_SERVICE); - return keyguardManager != null && keyguardManager.isKeyguardLocked() + final long token = Binder.clearCallingIdentity(); + try { + final KeyguardManager keyguardManager = (KeyguardManager) mContext.getSystemService( + Context.KEYGUARD_SERVICE); + return keyguardManager != null && keyguardManager.isKeyguardLocked() && keyguardManager.isKeyguardSecure(); + } finally { + Binder.restoreCallingIdentity(token); + } } private final void checkUriOwnerLocked(Uri uri, int uid) { -- cgit v1.2.3-59-g8ed1b