[automerge] Backport missing permission check for querying main activity intent 2p: b319280964

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20218918

Bug: 229256049
Change-Id: Ib5c28885990fbab5dd632454ec336a52651d5e28
Merged-In: Ib233ad754a6c6e3c4e0d0e10ed788ab8e055cccc
This commit is contained in:
Presubmit Automerger Backend
2022-10-18 04:31:08 +00:00
3 changed files with 7 additions and 5 deletions

View File

@@ -56,8 +56,8 @@ interface ILauncherApps {
void startActivityAsUser(in IApplicationThread caller, String callingPackage,
String callingFeatureId, in ComponentName component, in Rect sourceBounds,
in Bundle opts, in UserHandle user);
PendingIntent getActivityLaunchIntent(in ComponentName component, in Bundle opts,
in UserHandle user);
PendingIntent getActivityLaunchIntent(String callingPackage, in ComponentName component,
in Bundle opts, in UserHandle user);
void showAppDetailsAsUser(in IApplicationThread caller, String callingPackage,
String callingFeatureId, in ComponentName component, in Rect sourceBounds,
in Bundle opts, in UserHandle user);

View File

@@ -752,7 +752,8 @@ public class LauncherApps {
}
try {
// due to b/209607104, startActivityOptions will be ignored
return mService.getActivityLaunchIntent(component, null /* opts */, user);
return mService.getActivityLaunchIntent(mContext.getPackageName(), component,
null /* opts */, user);
} catch (RemoteException re) {
throw re.rethrowFromSystemServer();
}

View File

@@ -1098,8 +1098,9 @@ public class LauncherAppsService extends SystemService {
}
@Override
public PendingIntent getActivityLaunchIntent(ComponentName component, Bundle opts,
UserHandle user) {
public PendingIntent getActivityLaunchIntent(String callingPackage, ComponentName component,
Bundle opts, UserHandle user) {
ensureShortcutPermission(callingPackage);
if (!canAccessProfile(user.getIdentifier(), "Cannot start activity")) {
throw new ActivityNotFoundException("Activity could not be found");
}