Merge "Only grant visibility to result reciever" into rvc-dev am: 3759b4ce9d am: 0a13271a77 am: 6a760c7610

Change-Id: I060843a3b8c41577b6a6b576e17d1fe00a74ad40
This commit is contained in:
Automerger Merge Worker
2020-03-09 20:48:54 +00:00

View File

@@ -1570,10 +1570,16 @@ class ActivityStarter {
mService.mUgmInternal.grantUriPermissionFromIntent(mCallingUid, mStartActivity.packageName, mService.mUgmInternal.grantUriPermissionFromIntent(mCallingUid, mStartActivity.packageName,
mIntent, mStartActivity.getUriPermissionsLocked(), mStartActivity.mUserId); mIntent, mStartActivity.getUriPermissionsLocked(), mStartActivity.mUserId);
mService.getPackageManagerInternalLocked().grantImplicitAccess( if (mStartActivity.resultTo != null && mStartActivity.resultTo.info != null) {
mStartActivity.mUserId, mIntent, // we need to resolve resultTo to a uid as grantImplicitAccess deals explicitly in UIDs
UserHandle.getAppId(mStartActivity.info.applicationInfo.uid), mCallingUid, final PackageManagerInternal pmInternal =
true /*direct*/); mService.getPackageManagerInternalLocked();
final int resultToUid = pmInternal.getPackageUidInternal(
mStartActivity.resultTo.info.packageName, 0, mStartActivity.mUserId);
pmInternal.grantImplicitAccess(mStartActivity.mUserId, mIntent,
UserHandle.getAppId(mStartActivity.info.applicationInfo.uid) /*recipient*/,
resultToUid /*visible*/, true /*direct*/);
}
if (newTask) { if (newTask) {
EventLogTags.writeWmCreateTask(mStartActivity.mUserId, EventLogTags.writeWmCreateTask(mStartActivity.mUserId,
mStartActivity.getTask().mTaskId); mStartActivity.getTask().mTaskId);