From f2fc9d459e2d2d1bd6d735e486c5887cdd8a2bde Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 31 Jan 2023 18:10:28 +0000 Subject: [PATCH] Removing receiver enforcement flag. It's time to permanently turn on enforcement for registering receivers Dynamically. This change will remove the flag that controls whether enforcement can be turned off, but this is strictly a no-op since the default value is already "on". BUG: 234659204 Test: no-op Change-Id: I14dd99144abc58afa49855b96ba67d0ab84bc502 --- .../server/am/ActivityManagerConstants.java | 28 ------------------- .../server/am/ActivityManagerService.java | 3 +- 2 files changed, 1 insertion(+), 30 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerConstants.java b/services/core/java/com/android/server/am/ActivityManagerConstants.java index ef7935146ee8d..cdc5d81310990 100644 --- a/services/core/java/com/android/server/am/ActivityManagerConstants.java +++ b/services/core/java/com/android/server/am/ActivityManagerConstants.java @@ -770,10 +770,6 @@ final class ActivityManagerConstants extends ContentObserver { // initialized in the constructor. public int CUR_MAX_EMPTY_PROCESSES; - /** @see mEnforceReceiverExportedFlagRequirement */ - private static final String KEY_ENFORCE_RECEIVER_EXPORTED_FLAG_REQUIREMENT = - "enforce_exported_flag_requirement"; - /** @see #mNoKillCachedProcessesUntilBootCompleted */ private static final String KEY_NO_KILL_CACHED_PROCESSES_UNTIL_BOOT_COMPLETED = "no_kill_cached_processes_until_boot_completed"; @@ -782,9 +778,6 @@ final class ActivityManagerConstants extends ContentObserver { private static final String KEY_NO_KILL_CACHED_PROCESSES_POST_BOOT_COMPLETED_DURATION_MILLIS = "no_kill_cached_processes_post_boot_completed_duration_millis"; - /** @see mEnforceReceiverExportedFlagRequirement */ - private static final boolean DEFAULT_ENFORCE_RECEIVER_EXPORTED_FLAG_REQUIREMENT = true; - /** @see #mNoKillCachedProcessesUntilBootCompleted */ private static final boolean DEFAULT_NO_KILL_CACHED_PROCESSES_UNTIL_BOOT_COMPLETED = true; @@ -792,15 +785,6 @@ final class ActivityManagerConstants extends ContentObserver { private static final long DEFAULT_NO_KILL_CACHED_PROCESSES_POST_BOOT_COMPLETED_DURATION_MILLIS = 600_000; - /** - * If true, enforce the requirement that dynamically registered receivers specify one of - * {@link android.content.Context#RECEIVER_EXPORTED} or - * {@link android.content.Context#RECEIVER_NOT_EXPORTED} if registering for any non-system - * broadcasts. - */ - volatile boolean mEnforceReceiverExportedFlagRequirement = - DEFAULT_ENFORCE_RECEIVER_EXPORTED_FLAG_REQUIREMENT; - /** * If true, do not kill excessive cached processes proactively, until user-0 is unlocked. * @see #mNoKillCachedProcessesPostBootCompletedDurationMillis @@ -1112,9 +1096,6 @@ final class ActivityManagerConstants extends ContentObserver { case KEY_NO_KILL_CACHED_PROCESSES_UNTIL_BOOT_COMPLETED: updateNoKillCachedProcessesUntilBootCompleted(); break; - case KEY_ENFORCE_RECEIVER_EXPORTED_FLAG_REQUIREMENT: - updateEnforceReceiverExportedFlagRequirement(); - break; case KEY_NO_KILL_CACHED_PROCESSES_POST_BOOT_COMPLETED_DURATION_MILLIS: updateNoKillCachedProcessesPostBootCompletedDurationMillis(); break; @@ -1616,13 +1597,6 @@ final class ActivityManagerConstants extends ContentObserver { DEFAULT_DEFER_BOOT_COMPLETED_BROADCAST); } - private void updateEnforceReceiverExportedFlagRequirement() { - mEnforceReceiverExportedFlagRequirement = DeviceConfig.getBoolean( - DeviceConfig.NAMESPACE_ACTIVITY_MANAGER, - KEY_ENFORCE_RECEIVER_EXPORTED_FLAG_REQUIREMENT, - DEFAULT_ENFORCE_RECEIVER_EXPORTED_FLAG_REQUIREMENT); - } - private void updateNoKillCachedProcessesUntilBootCompleted() { mNoKillCachedProcessesUntilBootCompleted = DeviceConfig.getBoolean( DeviceConfig.NAMESPACE_ACTIVITY_MANAGER, @@ -2002,8 +1976,6 @@ final class ActivityManagerConstants extends ContentObserver { pw.print("="); pw.println(mPrioritizeAlarmBroadcasts); pw.print(" "); pw.print(KEY_NO_KILL_CACHED_PROCESSES_UNTIL_BOOT_COMPLETED); pw.print("="); pw.println(mNoKillCachedProcessesUntilBootCompleted); - pw.print(" "); pw.print(KEY_ENFORCE_RECEIVER_EXPORTED_FLAG_REQUIREMENT); - pw.print("="); pw.println(mEnforceReceiverExportedFlagRequirement); pw.print(" "); pw.print(KEY_NO_KILL_CACHED_PROCESSES_POST_BOOT_COMPLETED_DURATION_MILLIS); pw.print("="); pw.println(mNoKillCachedProcessesPostBootCompletedDurationMillis); pw.print(" "); pw.print(KEY_MAX_EMPTY_TIME_MILLIS); diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 10d50c29f42f6..b37b834301da5 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -13586,8 +13586,7 @@ public class ActivityManagerService extends IActivityManager.Stub // broadcasts, or the receiver is null (a sticky broadcast). Sticky broadcasts should // not be used generally, so we will be marking them as exported by default boolean requireExplicitFlagForDynamicReceivers = CompatChanges.isChangeEnabled( - DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED, callingUid) - && mConstants.mEnforceReceiverExportedFlagRequirement; + DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED, callingUid); // STOPSHIP(b/259139792): Allow apps that are currently targeting U and in process of // updating their receivers to be exempt from this requirement until their receivers // are flagged.