From d8e0b093e49c96ca4889024b0d4fe3d7c7c1c847 Mon Sep 17 00:00:00 2001 From: Michael Groover Date: Tue, 20 Dec 2022 17:28:00 -0600 Subject: [PATCH] Grant app visibility if launching app opts in to sharing identity Android U introduced new APIs to allow a launching app to opt-in to sharing its identity with a launched activity; this allows the launched activity to perform authorization checks against the launching app. This commit grants app visibility to allow the launched activity to access the details and signing identity of the launching app. Bug: 262605364 Test: atest ShareIdentityTest Change-Id: I2b4b2acbd127b01f231c4852704ba69e31c4aaed --- .../core/java/com/android/server/wm/ActivityStarter.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index 6c49f47e68803..b3590218478d4 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -1661,6 +1661,12 @@ class ActivityStarter { pmInternal.grantImplicitAccess(mStartActivity.mUserId, mIntent, UserHandle.getAppId(mStartActivity.info.applicationInfo.uid) /*recipient*/, resultToUid /*visible*/, true /*direct*/); + } else if (mStartActivity.mShareIdentity) { + final PackageManagerInternal pmInternal = + mService.getPackageManagerInternalLocked(); + pmInternal.grantImplicitAccess(mStartActivity.mUserId, mIntent, + UserHandle.getAppId(mStartActivity.info.applicationInfo.uid) /*recipient*/, + r.launchedFromUid /*visible*/, true /*direct*/); } final Task startedTask = mStartActivity.getTask(); if (newTask) {