summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/com/android/providers/media/MediaProvider.java10
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);