diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 5f477e3f24d6b..10d50c29f42f6 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -14256,6 +14256,16 @@ public class ActivityManagerService extends IActivityManager.Stub } } + if (Process.isSdkSandboxUid(realCallingUid)) { + SdkSandboxManagerLocal sdkSandboxManagerLocal = LocalManagerRegistry.getManager( + SdkSandboxManagerLocal.class); + if (sdkSandboxManagerLocal == null) { + throw new IllegalStateException("SdkSandboxManagerLocal not found when sending" + + " a broadcast from an SDK sandbox uid."); + } + sdkSandboxManagerLocal.enforceAllowedToSendBroadcast(intent); + } + boolean timeoutExempt = false; if (action != null) { @@ -14266,16 +14276,6 @@ public class ActivityManagerService extends IActivityManager.Stub intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND); } - if (Process.isSdkSandboxUid(realCallingUid)) { - SdkSandboxManagerLocal sdkSandboxManagerLocal = LocalManagerRegistry.getManager( - SdkSandboxManagerLocal.class); - if (sdkSandboxManagerLocal == null) { - throw new IllegalStateException("SdkSandboxManagerLocal not found when sending" - + " a broadcast from an SDK sandbox uid."); - } - sdkSandboxManagerLocal.enforceAllowedToSendBroadcast(intent); - } - switch (action) { case Intent.ACTION_MEDIA_SCANNER_SCAN_FILE: UserManagerInternal umInternal = LocalServices.getService(