From 10e88cc1508091af8c33933a5d4d357f0f994f30 Mon Sep 17 00:00:00 2001 From: Mehdi Alizadeh Date: Tue, 18 Feb 2020 17:57:32 -0800 Subject: [PATCH] Overrides permission check in tests to fix failing unit tests Bug: 149793111 Test: atest com.android.server.pm.ShortcutManagerTest1 \ com.android.server.pm.ShortcutManagerTest2 \ com.android.server.pm.ShortcutManagerTest3 \ com.android.server.pm.ShortcutManagerTest4 \ com.android.server.pm.ShortcutManagerTest5 \ com.android.server.pm.ShortcutManagerTest6 \ com.android.server.pm.ShortcutManagerTest7 \ com.android.server.pm.ShortcutManagerTest8 \ com.android.server.pm.ShortcutManagerTest9 \ com.android.server.pm.ShortcutManagerTest10 Change-Id: I524985ca8c28a2b75dc584fb70761a1ce1598882 --- .../com/android/server/pm/LauncherAppsService.java | 14 +++++++++++--- .../android/server/pm/BaseShortcutManagerTest.java | 5 +++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java index f93c663c551c1..ffcc197f546e7 100644 --- a/services/core/java/com/android/server/pm/LauncherAppsService.java +++ b/services/core/java/com/android/server/pm/LauncherAppsService.java @@ -16,7 +16,6 @@ package com.android.server.pm; -import android.Manifest.permission; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; @@ -307,8 +306,8 @@ public class LauncherAppsService extends SystemService { final int callingUserId = injectCallingUserId(); if (targetUserId == callingUserId) return true; - if (mContext.checkCallingOrSelfPermission(permission.INTERACT_ACROSS_USERS_FULL) - == PackageManager.PERMISSION_GRANTED) { + if (injectHasInteractAcrossUsersFullPermission(injectBinderCallingPid(), + injectBinderCallingUid())) { return true; } @@ -684,6 +683,15 @@ public class LauncherAppsService extends SystemService { callingPid, callingUid) == PackageManager.PERMISSION_GRANTED; } + /** + * Returns true if the caller has the "INTERACT_ACROSS_USERS_FULL" permission. + */ + @VisibleForTesting + boolean injectHasInteractAcrossUsersFullPermission(int callingPid, int callingUid) { + return mContext.checkPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL, + callingPid, callingUid) == PackageManager.PERMISSION_GRANTED; + } + @Override public ParceledListSlice getShortcuts(String callingPackage, long changedSince, String packageName, List shortcutIds, List locusIds, diff --git a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java index df2b3efeb94c9..6c769485f6ada 100644 --- a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java @@ -562,6 +562,11 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase { boolean injectHasAccessShortcutsPermission(int callingPid, int callingUid) { return true; } + + @Override + boolean injectHasInteractAcrossUsersFullPermission(int callingPid, int callingUid) { + return false; + } } protected class LauncherAppsTestable extends LauncherApps {