diff options
-rwxr-xr-x | src/com/android/providers/media/MediaProvider.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java index 39ed0d8b..2df6c1f4 100755 --- a/src/com/android/providers/media/MediaProvider.java +++ b/src/com/android/providers/media/MediaProvider.java @@ -5691,6 +5691,14 @@ public class MediaProvider extends ContentProvider { } } + private String getCallingPackageOrSelf() { + String callingPackage = getCallingPackage(); + if (callingPackage == null) { + callingPackage = getContext().getOpPackageName(); + } + return callingPackage; + } + private void enforceCallingOrSelfPermissionAndAppOps(String permission, String message) { getContext().enforceCallingOrSelfPermission(permission, message); @@ -5699,7 +5707,7 @@ public class MediaProvider extends ContentProvider { // told them the volume was unmounted. final String opName = AppOpsManager.permissionToOp(permission); if (opName != null) { - final String callingPackage = Preconditions.checkNotNull(getCallingPackage()); + final String callingPackage = getCallingPackageOrSelf(); if (mAppOpsManager.noteProxyOp(opName, callingPackage) != AppOpsManager.MODE_ALLOWED) { throw new SecurityException( message + ": " + callingPackage + " is not allowed to " + permission); |