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

Commit 44f0833d authored by Edward Cunningham's avatar Edward Cunningham
Browse files

Make package whitelist the last check in activity starter.

We should check all other conditions when deciding whether a background
activity start is permitted before checking the temporary package whitelist.
This will avoid confusion when examining bugreports where today an activity
start may appear to be permitted solely on the basis of the whitelist, when
in fact this is not the case.

Bug: 132871420
Test: manual
Change-Id: Ia5b6516076c72ae82d9a9c1c80613c4ef63b62cb
parent a324083f
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -1011,12 +1011,6 @@ class ActivityStarter {
        if (mService.isAssociatedCompanionApp(callingUserId, callingUid)) {
            return false;
        }
        // don't abort if the callingPackage is temporarily whitelisted
        if (mService.isPackageNameWhitelistedForBgActivityStarts(callingPackage)) {
            Slog.w(TAG, "Background activity start for " + callingPackage
                    + " temporarily whitelisted. This will not be supported in future Q builds.");
            return false;
        }
        // If we don't have callerApp at this point, no caller was provided to startActivity().
        // That's the case for PendingIntent-based starts, since the creator's process might not be
        // up and alive. If that's the case, we retrieve the WindowProcessController for the send()
@@ -1050,6 +1044,12 @@ class ActivityStarter {
                    + " allowed because SYSTEM_ALERT_WINDOW permission is granted.");
            return false;
        }
        // don't abort if the callingPackage is temporarily whitelisted
        if (mService.isPackageNameWhitelistedForBgActivityStarts(callingPackage)) {
            Slog.w(TAG, "Background activity start for " + callingPackage
                    + " temporarily whitelisted. This will not be supported in future Q builds.");
            return false;
        }
        // anything that has fallen through would currently be aborted
        Slog.w(TAG, "Background activity start [callingPackage: " + callingPackage
                + "; callingUid: " + callingUid