diff options
Diffstat (limited to 'com/android/server/media/MediaSessionService.java')
-rw-r--r-- | com/android/server/media/MediaSessionService.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/com/android/server/media/MediaSessionService.java b/com/android/server/media/MediaSessionService.java index 6413ba98..a3c6c80c 100644 --- a/com/android/server/media/MediaSessionService.java +++ b/com/android/server/media/MediaSessionService.java @@ -1515,6 +1515,24 @@ public class MediaSessionService extends SystemService implements Monitor { final int uid = Binder.getCallingUid(); final long token = Binder.clearCallingIdentity(); try { + int controllerUserId = UserHandle.getUserId(controllerUid); + int controllerUidFromPackageName; + try { + controllerUidFromPackageName = getContext().getPackageManager() + .getPackageUidAsUser(controllerPackageName, controllerUserId); + } catch (NameNotFoundException e) { + if (DEBUG) { + Log.d(TAG, "Package " + controllerPackageName + " doesn't exist"); + } + return false; + } + if (controllerUidFromPackageName != controllerUid) { + if (DEBUG) { + Log.d(TAG, "Package name " + controllerPackageName + + " doesn't match with the uid " + controllerUid); + } + return false; + } return hasMediaControlPermission(UserHandle.getUserId(uid), controllerPackageName, controllerPid, controllerUid); } finally { |