summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mehdi Alizadeh <mett@google.com> 2019-01-25 16:59:54 -0800
committer Mehdi Alizadeh <mett@google.com> 2019-01-28 14:32:55 -0800
commitc86dd1f9afbf1cb0de40e4ee1643b5b64f08c09e (patch)
tree01d06e3d47b3ea81400c3104c364a8059859f724
parent525a0d72a31e0203452c3d8bd41d1d577d3f59a3 (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.java2
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java12
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);