DO NOT MERGE. Persistable Uri grants still require permissions.

am: 05519b7e3d

Change-Id: I6d42f089fec6c268b35885d3169644853ab734c5
This commit is contained in:
Jeff Sharkey
2018-08-08 17:23:00 -07:00
committed by android-build-merger

View File

@@ -8737,10 +8737,17 @@ public class ActivityManagerService extends IActivityManager.Stub
} }
} }
// If we're extending a persistable grant, then we always need to create // Figure out the value returned when access is allowed
// the grant data structure so that take/release APIs work final int allowedResult;
if ((modeFlags & Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION) != 0) { if ((modeFlags & Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION) != 0) {
return targetUid; // If we're extending a persistable grant, then we need to return
// "targetUid" so that we always create a grant data structure to
// support take/release APIs
allowedResult = targetUid;
} else {
// Otherwise, we can return "-1" to indicate that no grant data
// structures need to be created
allowedResult = -1;
} }
if (targetUid >= 0) { if (targetUid >= 0) {
@@ -8749,7 +8756,7 @@ public class ActivityManagerService extends IActivityManager.Stub
// No need to grant the target this permission. // No need to grant the target this permission.
if (DEBUG_URI_PERMISSION) Slog.v(TAG_URI_PERMISSION, if (DEBUG_URI_PERMISSION) Slog.v(TAG_URI_PERMISSION,
"Target " + targetPkg + " already has full permission to " + grantUri); "Target " + targetPkg + " already has full permission to " + grantUri);
return -1; return allowedResult;
} }
} else { } else {
// First... there is no target package, so can anyone access it? // First... there is no target package, so can anyone access it?
@@ -8765,7 +8772,7 @@ public class ActivityManagerService extends IActivityManager.Stub
} }
} }
if (allowed) { if (allowed) {
return -1; return allowedResult;
} }
} }