Loading services/core/java/com/android/server/clipboard/ClipboardService.java +10 −4 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.ActivityManagerNative; import android.app.AppGlobals; import android.app.AppOpsManager; import android.app.IActivityManager; import android.app.KeyguardManager; import android.content.BroadcastReceiver; import android.content.ClipData; import android.content.ClipDescription; Loading Loading @@ -247,7 +248,7 @@ public class ClipboardService extends IClipboard.Stub { public ClipData getPrimaryClip(String pkg) { synchronized (this) { if (mAppOps.noteOp(AppOpsManager.OP_READ_CLIPBOARD, Binder.getCallingUid(), pkg) != AppOpsManager.MODE_ALLOWED) { pkg) != AppOpsManager.MODE_ALLOWED || isDeviceLocked()) { return null; } addActiveOwnerLocked(Binder.getCallingUid(), pkg); Loading @@ -258,7 +259,7 @@ public class ClipboardService extends IClipboard.Stub { public ClipDescription getPrimaryClipDescription(String callingPackage) { synchronized (this) { if (mAppOps.checkOp(AppOpsManager.OP_READ_CLIPBOARD, Binder.getCallingUid(), callingPackage) != AppOpsManager.MODE_ALLOWED) { callingPackage) != AppOpsManager.MODE_ALLOWED || isDeviceLocked()) { return null; } PerUserClipboard clipboard = getClipboard(); Loading @@ -269,7 +270,7 @@ public class ClipboardService extends IClipboard.Stub { public boolean hasPrimaryClip(String callingPackage) { synchronized (this) { if (mAppOps.checkOp(AppOpsManager.OP_READ_CLIPBOARD, Binder.getCallingUid(), callingPackage) != AppOpsManager.MODE_ALLOWED) { callingPackage) != AppOpsManager.MODE_ALLOWED || isDeviceLocked()) { return false; } return getClipboard().primaryClip != null; Loading @@ -293,7 +294,7 @@ public class ClipboardService extends IClipboard.Stub { public boolean hasClipboardText(String callingPackage) { synchronized (this) { if (mAppOps.checkOp(AppOpsManager.OP_READ_CLIPBOARD, Binder.getCallingUid(), callingPackage) != AppOpsManager.MODE_ALLOWED) { callingPackage) != AppOpsManager.MODE_ALLOWED || isDeviceLocked()) { return false; } PerUserClipboard clipboard = getClipboard(); Loading @@ -305,6 +306,11 @@ public class ClipboardService extends IClipboard.Stub { } } private boolean isDeviceLocked() { final KeyguardManager keyguardManager = mContext.getSystemService(KeyguardManager.class); return keyguardManager != null && keyguardManager.isDeviceLocked(); } private final void checkUriOwnerLocked(Uri uri, int uid) { if (!"content".equals(uri.getScheme())) { return; Loading Loading
services/core/java/com/android/server/clipboard/ClipboardService.java +10 −4 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.ActivityManagerNative; import android.app.AppGlobals; import android.app.AppOpsManager; import android.app.IActivityManager; import android.app.KeyguardManager; import android.content.BroadcastReceiver; import android.content.ClipData; import android.content.ClipDescription; Loading Loading @@ -247,7 +248,7 @@ public class ClipboardService extends IClipboard.Stub { public ClipData getPrimaryClip(String pkg) { synchronized (this) { if (mAppOps.noteOp(AppOpsManager.OP_READ_CLIPBOARD, Binder.getCallingUid(), pkg) != AppOpsManager.MODE_ALLOWED) { pkg) != AppOpsManager.MODE_ALLOWED || isDeviceLocked()) { return null; } addActiveOwnerLocked(Binder.getCallingUid(), pkg); Loading @@ -258,7 +259,7 @@ public class ClipboardService extends IClipboard.Stub { public ClipDescription getPrimaryClipDescription(String callingPackage) { synchronized (this) { if (mAppOps.checkOp(AppOpsManager.OP_READ_CLIPBOARD, Binder.getCallingUid(), callingPackage) != AppOpsManager.MODE_ALLOWED) { callingPackage) != AppOpsManager.MODE_ALLOWED || isDeviceLocked()) { return null; } PerUserClipboard clipboard = getClipboard(); Loading @@ -269,7 +270,7 @@ public class ClipboardService extends IClipboard.Stub { public boolean hasPrimaryClip(String callingPackage) { synchronized (this) { if (mAppOps.checkOp(AppOpsManager.OP_READ_CLIPBOARD, Binder.getCallingUid(), callingPackage) != AppOpsManager.MODE_ALLOWED) { callingPackage) != AppOpsManager.MODE_ALLOWED || isDeviceLocked()) { return false; } return getClipboard().primaryClip != null; Loading @@ -293,7 +294,7 @@ public class ClipboardService extends IClipboard.Stub { public boolean hasClipboardText(String callingPackage) { synchronized (this) { if (mAppOps.checkOp(AppOpsManager.OP_READ_CLIPBOARD, Binder.getCallingUid(), callingPackage) != AppOpsManager.MODE_ALLOWED) { callingPackage) != AppOpsManager.MODE_ALLOWED || isDeviceLocked()) { return false; } PerUserClipboard clipboard = getClipboard(); Loading @@ -305,6 +306,11 @@ public class ClipboardService extends IClipboard.Stub { } } private boolean isDeviceLocked() { final KeyguardManager keyguardManager = mContext.getSystemService(KeyguardManager.class); return keyguardManager != null && keyguardManager.isDeviceLocked(); } private final void checkUriOwnerLocked(Uri uri, int uid) { if (!"content".equals(uri.getScheme())) { return; Loading