Backport ChooserTarget package source check from N am: 82b9565bd1
am: 6d5f80d13b
* commit '6d5f80d13b06d439db08fcd5d25490edb322f923':
Backport ChooserTarget package source check from N
Change-Id: Iec7902498e2cfe53ce16dc9faf2d91340f416799
This commit is contained in:
@@ -656,7 +656,19 @@ public class ChooserActivity extends ResolverActivity {
|
||||
}
|
||||
intent.setComponent(mChooserTarget.getComponentName());
|
||||
intent.putExtras(mChooserTarget.getIntentExtras());
|
||||
activity.startActivityAsCaller(intent, options, true, userId);
|
||||
|
||||
// Important: we will ignore the target security checks in ActivityManager
|
||||
// if and only if the ChooserTarget's target package is the same package
|
||||
// where we got the ChooserTargetService that provided it. This lets a
|
||||
// ChooserTargetService provide a non-exported or permission-guarded target
|
||||
// to the chooser for the user to pick.
|
||||
//
|
||||
// If mSourceInfo is null, we got this ChooserTarget from the caller or elsewhere
|
||||
// so we'll obey the caller's normal security checks.
|
||||
final boolean ignoreTargetSecurity = mSourceInfo != null
|
||||
&& mSourceInfo.getResolvedComponentName().getPackageName()
|
||||
.equals(mChooserTarget.getComponentName().getPackageName());
|
||||
activity.startActivityAsCaller(intent, options, ignoreTargetSecurity, userId);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user