Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d976db8 authored by Chad Brubaker's avatar Chad Brubaker Committed by Android (Google) Code Review
Browse files

Merge "Fall back to checking packages if one is not provided" into pi-dev

parents 74b68635 0de6a7f5
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -20722,7 +20722,7 @@ public class ActivityManagerService extends IActivityManager.Stub
    // BROADCASTS
    // =========================================================
    private boolean isInstantApp(ProcessRecord record, String callerPackage, int uid) {
    private boolean isInstantApp(ProcessRecord record, @Nullable String callerPackage, int uid) {
        if (UserHandle.getAppId(uid) < FIRST_APPLICATION_UID) {
            return false;
        }
@@ -20731,13 +20731,17 @@ public class ActivityManagerService extends IActivityManager.Stub
            return record.info.isInstantApp();
        }
        // Otherwise check with PackageManager.
        IPackageManager pm = AppGlobals.getPackageManager();
        try {
            if (callerPackage == null) {
            Slog.e(TAG, "isInstantApp with an application's uid, no record, and no package name");
            throw new IllegalArgumentException("Calling application did not provide package name");
                final String[] packageNames = pm.getPackagesForUid(uid);
                if (packageNames == null || packageNames.length == 0) {
                    throw new IllegalArgumentException("Unable to determine caller package name");
                }
                // Instant Apps can't use shared uids, so its safe to only check the first package.
                callerPackage = packageNames[0];
            }
            mAppOpsService.checkPackage(uid, callerPackage);
        try {
            IPackageManager pm = AppGlobals.getPackageManager();
            return pm.isInstantApp(callerPackage, UserHandle.getUserId(uid));
        } catch (RemoteException e) {
            Slog.e(TAG, "Error looking up if " + callerPackage + " is an instant app.", e);