Merge "Backport missing permission check for querying main activity intent" into sc-dev

This commit is contained in:
Winson Chung
2022-10-19 22:20:07 +00:00
committed by Android (Google) Code Review
3 changed files with 7 additions and 5 deletions

View File

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

View File

@@ -752,7 +752,8 @@ public class LauncherApps {
} }
try { try {
// due to b/209607104, startActivityOptions will be ignored // 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) { } catch (RemoteException re) {
throw re.rethrowFromSystemServer(); throw re.rethrowFromSystemServer();
} }

View File

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