From a6f4d58b9094e842b5fd41439db823b66b841393 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Thu, 7 Aug 2014 17:58:39 -0700 Subject: [PATCH] Allow singleton providers to accept connections from other users This is required for singleton providers like sms log. Change-Id: Icb18a764c27dc1b43f8b8bcc24c21c91274995fd --- core/java/android/content/ContentProvider.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/java/android/content/ContentProvider.java b/core/java/android/content/ContentProvider.java index 5b722e27f1237..fde8b2e0c9d90 100644 --- a/core/java/android/content/ContentProvider.java +++ b/core/java/android/content/ContentProvider.java @@ -107,6 +107,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 { private PathPermission[] mPathPermissions; private boolean mExported; private boolean mNoPerms; + private boolean mSingleUser; private final ThreadLocal mCallingPackage = new ThreadLocal(); @@ -460,6 +461,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 { boolean checkUser(int pid, int uid, Context context) { return UserHandle.getUserId(uid) == context.getUserId() + || mSingleUser || context.checkPermission(INTERACT_ACROSS_USERS, pid, uid) == PERMISSION_GRANTED; } @@ -1674,6 +1676,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 { setWritePermission(info.writePermission); setPathPermissions(info.pathPermissions); mExported = info.exported; + mSingleUser = (info.flags & ProviderInfo.FLAG_SINGLE_USER) != 0; setAuthorities(info.authority); } ContentProvider.this.onCreate();