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

Commit 5f51d453 authored by Chad Brubaker's avatar Chad Brubaker Committed by android-build-merger
Browse files

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

am: 9d976db8

Change-Id: I65a63b959368549f58be7318a26e8dfa310120ff
parents ce408cbc 9d976db8
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -20601,7 +20601,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;
        }
@@ -20610,13 +20610,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);