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

Commit 0e1a40cc authored by Jacob Hobbie's avatar Jacob Hobbie
Browse files

Updating to use correct compatibility check.

ActivityManagerService was calling Compatibility.isChangeEnabled instead
of CompatChanges.isChangeEnabled which was messing up enforcement. This
new check should allow properly checking the targetSDK.

Test: tested with a test app targeting 26 (mpgroover)
Bug: 161145287
Change-Id: I7eefe4286d24adde73af70f081ede2dddde6aa59
parent 4134ebd2
Loading
Loading
Loading
Loading
+9 −8
Original line number Original line Diff line number Diff line
@@ -188,6 +188,7 @@ import android.app.SyncNotedAppOp;
import android.app.WaitResult;
import android.app.WaitResult;
import android.app.backup.BackupManager.OperationType;
import android.app.backup.BackupManager.OperationType;
import android.app.backup.IBackupManager;
import android.app.backup.IBackupManager;
import android.app.compat.CompatChanges;
import android.app.job.JobParameters;
import android.app.job.JobParameters;
import android.app.usage.UsageEvents;
import android.app.usage.UsageEvents;
import android.app.usage.UsageEvents.Event;
import android.app.usage.UsageEvents.Event;
@@ -195,7 +196,6 @@ import android.app.usage.UsageStatsManager;
import android.app.usage.UsageStatsManagerInternal;
import android.app.usage.UsageStatsManagerInternal;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetManagerInternal;
import android.appwidget.AppWidgetManagerInternal;
import android.compat.Compatibility;
import android.compat.annotation.ChangeId;
import android.compat.annotation.ChangeId;
import android.compat.annotation.EnabledSince;
import android.compat.annotation.EnabledSince;
import android.content.AttributionSource;
import android.content.AttributionSource;
@@ -12512,11 +12512,6 @@ public class ActivityManagerService extends IActivityManager.Stub
        ProcessRecord callerApp = null;
        ProcessRecord callerApp = null;
        final boolean visibleToInstantApps
        final boolean visibleToInstantApps
                = (flags & Context.RECEIVER_VISIBLE_TO_INSTANT_APPS) != 0;
                = (flags & Context.RECEIVER_VISIBLE_TO_INSTANT_APPS) != 0;
        // Dynamic receivers are exported by default for versions prior to T
        final boolean exported =
                ((flags & Context.RECEIVER_EXPORTED) != 0
                        || (!Compatibility.isChangeEnabled(
                                DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED)));
        int callingUid;
        int callingUid;
        int callingPid;
        int callingPid;
@@ -12589,8 +12584,8 @@ public class ActivityManagerService extends IActivityManager.Stub
            // If the caller is registering for a sticky broadcast with a null receiver, we won't
            // If the caller is registering for a sticky broadcast with a null receiver, we won't
            // require a flag
            // require a flag
            if (!onlyProtectedBroadcasts && receiver != null && (
            if (!onlyProtectedBroadcasts && receiver != null && (
                    Compatibility.isChangeEnabled(
                    CompatChanges.isChangeEnabled(
                            DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED)
                            DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED, callingUid)
                            && (flags & (Context.RECEIVER_EXPORTED | Context.RECEIVER_NOT_EXPORTED))
                            && (flags & (Context.RECEIVER_EXPORTED | Context.RECEIVER_NOT_EXPORTED))
                            == 0)) {
                            == 0)) {
                Slog.e(TAG,
                Slog.e(TAG,
@@ -12605,6 +12600,12 @@ public class ActivityManagerService extends IActivityManager.Stub
            }
            }
        }
        }
        // Dynamic receivers are exported by default for versions prior to T
        final boolean exported =
                ((flags & Context.RECEIVER_EXPORTED) != 0
                        || (!CompatChanges.isChangeEnabled(
                        DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED, callingUid)));
        ArrayList<Intent> allSticky = null;
        ArrayList<Intent> allSticky = null;
        if (stickyIntents != null) {
        if (stickyIntents != null) {
            final ContentResolver resolver = mContext.getContentResolver();
            final ContentResolver resolver = mContext.getContentResolver();