diff options
| author | 2019-01-25 16:59:54 -0800 | |
|---|---|---|
| committer | 2019-01-28 14:32:55 -0800 | |
| commit | c86dd1f9afbf1cb0de40e4ee1643b5b64f08c09e (patch) | |
| tree | 01d06e3d47b3ea81400c3104c364a8059859f724 | |
| parent | 525a0d72a31e0203452c3d8bd41d1d577d3f59a3 (diff) | |
Enforce MANAGE_APP_PREDICTIONS on getShareTargets
Bug: 120099033
Test: atest ShortcutManagerTest1
Change-Id: I4e105207558e00d7e802999db0b4d4d6880ca05a
| -rw-r--r-- | services/core/java/com/android/server/pm/ShortcutService.java | 2 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java index 792b34c16551..ff6d7a888950 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java @@ -2154,6 +2154,8 @@ public class ShortcutService extends IShortcutService.Stub { public ParceledListSlice<ShortcutManager.ShareShortcutInfo> getShareTargets(String packageName, IntentFilter filter, @UserIdInt int userId) { verifyCaller(packageName, userId); + enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_APP_PREDICTIONS, + "getShareTargets"); synchronized (mLock) { throwIfUserLockedL(userId); diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java index 3172afbb086f..76beb8f99c18 100644 --- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java +++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java @@ -75,6 +75,7 @@ import android.app.ActivityManager; import android.content.ActivityNotFoundException; import android.content.ComponentName; import android.content.Intent; +import android.content.IntentFilter; import android.content.pm.ApplicationInfo; import android.content.pm.LauncherApps; import android.content.pm.LauncherApps.PinItemRequest; @@ -6274,6 +6275,17 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest { mManager.onApplicationActive(CALLING_PACKAGE_1, USER_0); } + public void testGetShareTargets_permission() { + IntentFilter filter = new IntentFilter(); + + assertExpectException(SecurityException.class, "Missing permission", () -> + mManager.getShareTargets(filter)); + + // Has permission, now it should pass. + mCallerPermissions.add(permission.MANAGE_APP_PREDICTIONS); + mManager.getShareTargets(filter); + } + public void testDumpsys_crossProfile() { prepareCrossProfileDataSet(); dumpsysOnLogcat("test1", /* force= */ true); |