Loading services/core/java/com/android/server/notification/NotificationManagerService.java +5 −16 Original line number Diff line number Diff line Loading @@ -123,7 +123,6 @@ import static android.service.notification.Adjustment.KEY_UNCLASSIFY; import static android.service.notification.Adjustment.TYPE_CONTENT_RECOMMENDATION; import static android.service.notification.Adjustment.TYPE_NEWS; import static android.service.notification.Adjustment.TYPE_PROMOTION; import static android.service.notification.Adjustment.TYPE_SOCIAL_MEDIA; import static android.service.notification.Flags.FLAG_NOTIFICATION_CONVERSATION_CHANNEL_MANAGEMENT; import static android.service.notification.Flags.callstyleCallbackApi; import static android.service.notification.Flags.notificationBitmapOffloading; Loading Loading @@ -367,7 +366,6 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.compat.IPlatformCompat; import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags; import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags.NotificationFlags; import com.android.internal.logging.InstanceId; import com.android.internal.logging.InstanceIdSequence; import com.android.internal.logging.MetricsLogger; Loading Loading @@ -6844,21 +6842,12 @@ public class NotificationManagerService extends SystemService { } catch (NameNotFoundException e) { return false; } if (managedServicesConcurrentMultiuser()) { return mConditionProviders.isPackageOrComponentAllowed(pkg, userId) || (!Flags.skipPolicyAccessNlsCheck() && mListeners.isComponentEnabledForPackage(pkg, userId)) || (mDpm != null && (mDpm.isActiveProfileOwner(uid) || mDpm.isActiveDeviceOwner(uid))); } else { // TODO(b/169395065) Figure out if this flow makes sense in Device Owner mode. return mConditionProviders.isPackageOrComponentAllowed(pkg, userId) || (!Flags.skipPolicyAccessNlsCheck() && mListeners.isComponentEnabledForPackage(pkg)) || (mDpm != null && (mDpm.isActiveProfileOwner(uid) || mDpm.isActiveDeviceOwner(uid))); } } @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { Loading services/core/java/com/android/server/notification/flags.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -204,16 +204,6 @@ flag { } } flag { name: "skip_policy_access_nls_check" namespace: "systemui" description: "When querying whether a caller has Notification Policy Access, don't explicitly look in the NLSes list. All NLSes are also ConditionProviders so this is unnecessary." bug: "390441924" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "random_conversation_ids" namespace: "systemui" Loading services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java +11 −93 Original line number Diff line number Diff line Loading @@ -152,7 +152,6 @@ import static com.android.server.am.PendingIntentRecord.FLAG_BROADCAST_SENDER; import static com.android.server.am.PendingIntentRecord.FLAG_SERVICE_SENDER; import static com.android.server.notification.Flags.FLAG_LOG_CACHED_POSTS; import static com.android.server.notification.Flags.FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER; import static com.android.server.notification.Flags.FLAG_SKIP_POLICY_ACCESS_NLS_CHECK; import static com.android.server.notification.GroupHelper.AUTOGROUP_KEY; import static com.android.server.notification.NotificationManagerService.BITMAP_DURATION; import static com.android.server.notification.NotificationManagerService.DEFAULT_MAX_NOTIFICATION_ENQUEUE_RATE; Loading Loading @@ -369,13 +368,13 @@ import com.android.server.utils.quota.MultiRateLimiter; import com.android.server.wm.ActivityTaskManagerInternal; import com.android.server.wm.WindowManagerInternal; import libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges; import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges; import com.google.android.collect.Lists; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges; import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges; import org.junit.After; import org.junit.Assert; import org.junit.Before; Loading @@ -392,6 +391,9 @@ import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import platform.test.runner.parameterized.ParameterizedAndroidJunit4; import platform.test.runner.parameterized.Parameters; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; Loading @@ -407,9 +409,6 @@ import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.function.Consumer; import platform.test.runner.parameterized.ParameterizedAndroidJunit4; import platform.test.runner.parameterized.Parameters; @SmallTest @RunWith(ParameterizedAndroidJunit4.class) @RunWithLooper Loading Loading @@ -17388,46 +17387,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { verify(mDevicePolicyManager, never()).isActiveDeviceOwner(anyInt()); } @Test @DisableFlags({FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER, FLAG_SKIP_POLICY_ACCESS_NLS_CHECK}) public void isNotificationPolicyAccessGranted_isNls() throws Exception { final String packageName = "target"; final int uid = 123; final var checker = mService.permissionChecker; when(mPackageManagerClient.getPackageUidAsUser(eq(packageName), anyInt())).thenReturn(uid); when(mListeners.isComponentEnabledForPackage(packageName)).thenReturn(true); assertThat(mBinderService.isNotificationPolicyAccessGranted(packageName)).isTrue(); verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners, Flags.skipPolicyAccessNlsCheck() ? never() : times(1)) .isComponentEnabledForPackage(packageName); verify(mDevicePolicyManager, never()).isActiveDeviceOwner(anyInt()); } @Test @EnableFlags(FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER) @DisableFlags(FLAG_SKIP_POLICY_ACCESS_NLS_CHECK) public void isNotificationPolicyAccessGranted_isNls_concurrent_multiUser() throws Exception { final String packageName = "target"; final int uid = 123; final var checker = mService.permissionChecker; when(mPackageManagerClient.getPackageUidAsUser(eq(packageName), anyInt())).thenReturn(uid); when(mListeners.isComponentEnabledForPackage(packageName, mUserId)).thenReturn(true); assertThat(mBinderService.isNotificationPolicyAccessGranted(packageName)).isTrue(); verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners, Flags.skipPolicyAccessNlsCheck() ? never() : times(1)) .isComponentEnabledForPackage(packageName, mUserId); verify(mDevicePolicyManager, never()).isActiveDeviceOwner(anyInt()); } @Test @DisableFlags(FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER) public void isNotificationPolicyAccessGranted_isDeviceOwner() throws Exception { Loading @@ -17442,8 +17401,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners, Flags.skipPolicyAccessNlsCheck() ? never() : times(1)) .isComponentEnabledForPackage(packageName); verify(mListeners, never()).isComponentEnabledForPackage(packageName); verify(mDevicePolicyManager).isActiveDeviceOwner(uid); } Loading @@ -17462,8 +17420,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners, Flags.skipPolicyAccessNlsCheck() ? never() : times(1)) .isComponentEnabledForPackage(packageName, mUserId); verify(mListeners, never()).isComponentEnabledForPackage(packageName, mUserId); verify(mDevicePolicyManager).isActiveDeviceOwner(uid); } Loading @@ -17485,8 +17442,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners, Flags.skipPolicyAccessNlsCheck() ? never() : times(1)) .isComponentEnabledForPackage(packageName); verify(mListeners, never()).isComponentEnabledForPackage(packageName); verify(mDevicePolicyManager).isActiveDeviceOwner(uid); verify(mDevicePolicyManager, never()).isActiveDeviceOwner(callingUid); } Loading @@ -17510,15 +17466,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners, Flags.skipPolicyAccessNlsCheck() ? never() : times(1)) .isComponentEnabledForPackage(packageName, mUserId); verify(mListeners, never()).isComponentEnabledForPackage(packageName, mUserId); verify(mDevicePolicyManager).isActiveDeviceOwner(uid); verify(mDevicePolicyManager, never()).isActiveDeviceOwner(callingUid); } @Test @DisableFlags(FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER) @EnableFlags(FLAG_SKIP_POLICY_ACCESS_NLS_CHECK) public void isNotificationPolicyAccessGranted_notGranted() throws Exception { final String packageName = "target"; final int uid = 123; Loading @@ -17536,7 +17490,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { } @Test @EnableFlags({FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER, FLAG_SKIP_POLICY_ACCESS_NLS_CHECK}) @EnableFlags({FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER}) public void isNotificationPolicyAccessGranted_notGranted_concurrent_multiUser() throws Exception { final String packageName = "target"; Loading @@ -17554,42 +17508,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { verify(mDevicePolicyManager).isActiveDeviceOwner(uid); } @Test @DisableFlags({FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER, FLAG_SKIP_POLICY_ACCESS_NLS_CHECK}) public void isNotificationPolicyAccessGranted_notGranted_badNlsCheck() throws Exception { final String packageName = "target"; final int uid = 123; final var checker = mService.permissionChecker; when(mPackageManagerClient.getPackageUidAsUser(eq(packageName), anyInt())).thenReturn(uid); assertThat(mBinderService.isNotificationPolicyAccessGranted(packageName)).isFalse(); verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners).isComponentEnabledForPackage(packageName); verify(mDevicePolicyManager).isActiveDeviceOwner(uid); } @Test @EnableFlags(FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER) @DisableFlags(FLAG_SKIP_POLICY_ACCESS_NLS_CHECK) public void isNotificationPolicyAccessGranted_notGranted_concurrent_multiUser_badNlsCheck() throws Exception { final String packageName = "target"; final int uid = 123; final var checker = mService.permissionChecker; when(mPackageManagerClient.getPackageUidAsUser(eq(packageName), anyInt())).thenReturn(uid); assertThat(mBinderService.isNotificationPolicyAccessGranted(packageName)).isFalse(); verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners).isComponentEnabledForPackage(packageName, mUserId); verify(mDevicePolicyManager).isActiveDeviceOwner(uid); } @Test public void testResetDefaultDnd() { TestableNotificationManagerService service = spy(mService); Loading
services/core/java/com/android/server/notification/NotificationManagerService.java +5 −16 Original line number Diff line number Diff line Loading @@ -123,7 +123,6 @@ import static android.service.notification.Adjustment.KEY_UNCLASSIFY; import static android.service.notification.Adjustment.TYPE_CONTENT_RECOMMENDATION; import static android.service.notification.Adjustment.TYPE_NEWS; import static android.service.notification.Adjustment.TYPE_PROMOTION; import static android.service.notification.Adjustment.TYPE_SOCIAL_MEDIA; import static android.service.notification.Flags.FLAG_NOTIFICATION_CONVERSATION_CHANNEL_MANAGEMENT; import static android.service.notification.Flags.callstyleCallbackApi; import static android.service.notification.Flags.notificationBitmapOffloading; Loading Loading @@ -367,7 +366,6 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.compat.IPlatformCompat; import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags; import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags.NotificationFlags; import com.android.internal.logging.InstanceId; import com.android.internal.logging.InstanceIdSequence; import com.android.internal.logging.MetricsLogger; Loading Loading @@ -6844,21 +6842,12 @@ public class NotificationManagerService extends SystemService { } catch (NameNotFoundException e) { return false; } if (managedServicesConcurrentMultiuser()) { return mConditionProviders.isPackageOrComponentAllowed(pkg, userId) || (!Flags.skipPolicyAccessNlsCheck() && mListeners.isComponentEnabledForPackage(pkg, userId)) || (mDpm != null && (mDpm.isActiveProfileOwner(uid) || mDpm.isActiveDeviceOwner(uid))); } else { // TODO(b/169395065) Figure out if this flow makes sense in Device Owner mode. return mConditionProviders.isPackageOrComponentAllowed(pkg, userId) || (!Flags.skipPolicyAccessNlsCheck() && mListeners.isComponentEnabledForPackage(pkg)) || (mDpm != null && (mDpm.isActiveProfileOwner(uid) || mDpm.isActiveDeviceOwner(uid))); } } @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { Loading
services/core/java/com/android/server/notification/flags.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -204,16 +204,6 @@ flag { } } flag { name: "skip_policy_access_nls_check" namespace: "systemui" description: "When querying whether a caller has Notification Policy Access, don't explicitly look in the NLSes list. All NLSes are also ConditionProviders so this is unnecessary." bug: "390441924" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "random_conversation_ids" namespace: "systemui" Loading
services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java +11 −93 Original line number Diff line number Diff line Loading @@ -152,7 +152,6 @@ import static com.android.server.am.PendingIntentRecord.FLAG_BROADCAST_SENDER; import static com.android.server.am.PendingIntentRecord.FLAG_SERVICE_SENDER; import static com.android.server.notification.Flags.FLAG_LOG_CACHED_POSTS; import static com.android.server.notification.Flags.FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER; import static com.android.server.notification.Flags.FLAG_SKIP_POLICY_ACCESS_NLS_CHECK; import static com.android.server.notification.GroupHelper.AUTOGROUP_KEY; import static com.android.server.notification.NotificationManagerService.BITMAP_DURATION; import static com.android.server.notification.NotificationManagerService.DEFAULT_MAX_NOTIFICATION_ENQUEUE_RATE; Loading Loading @@ -369,13 +368,13 @@ import com.android.server.utils.quota.MultiRateLimiter; import com.android.server.wm.ActivityTaskManagerInternal; import com.android.server.wm.WindowManagerInternal; import libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges; import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges; import com.google.android.collect.Lists; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges; import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges; import org.junit.After; import org.junit.Assert; import org.junit.Before; Loading @@ -392,6 +391,9 @@ import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import platform.test.runner.parameterized.ParameterizedAndroidJunit4; import platform.test.runner.parameterized.Parameters; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; Loading @@ -407,9 +409,6 @@ import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.function.Consumer; import platform.test.runner.parameterized.ParameterizedAndroidJunit4; import platform.test.runner.parameterized.Parameters; @SmallTest @RunWith(ParameterizedAndroidJunit4.class) @RunWithLooper Loading Loading @@ -17388,46 +17387,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { verify(mDevicePolicyManager, never()).isActiveDeviceOwner(anyInt()); } @Test @DisableFlags({FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER, FLAG_SKIP_POLICY_ACCESS_NLS_CHECK}) public void isNotificationPolicyAccessGranted_isNls() throws Exception { final String packageName = "target"; final int uid = 123; final var checker = mService.permissionChecker; when(mPackageManagerClient.getPackageUidAsUser(eq(packageName), anyInt())).thenReturn(uid); when(mListeners.isComponentEnabledForPackage(packageName)).thenReturn(true); assertThat(mBinderService.isNotificationPolicyAccessGranted(packageName)).isTrue(); verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners, Flags.skipPolicyAccessNlsCheck() ? never() : times(1)) .isComponentEnabledForPackage(packageName); verify(mDevicePolicyManager, never()).isActiveDeviceOwner(anyInt()); } @Test @EnableFlags(FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER) @DisableFlags(FLAG_SKIP_POLICY_ACCESS_NLS_CHECK) public void isNotificationPolicyAccessGranted_isNls_concurrent_multiUser() throws Exception { final String packageName = "target"; final int uid = 123; final var checker = mService.permissionChecker; when(mPackageManagerClient.getPackageUidAsUser(eq(packageName), anyInt())).thenReturn(uid); when(mListeners.isComponentEnabledForPackage(packageName, mUserId)).thenReturn(true); assertThat(mBinderService.isNotificationPolicyAccessGranted(packageName)).isTrue(); verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners, Flags.skipPolicyAccessNlsCheck() ? never() : times(1)) .isComponentEnabledForPackage(packageName, mUserId); verify(mDevicePolicyManager, never()).isActiveDeviceOwner(anyInt()); } @Test @DisableFlags(FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER) public void isNotificationPolicyAccessGranted_isDeviceOwner() throws Exception { Loading @@ -17442,8 +17401,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners, Flags.skipPolicyAccessNlsCheck() ? never() : times(1)) .isComponentEnabledForPackage(packageName); verify(mListeners, never()).isComponentEnabledForPackage(packageName); verify(mDevicePolicyManager).isActiveDeviceOwner(uid); } Loading @@ -17462,8 +17420,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners, Flags.skipPolicyAccessNlsCheck() ? never() : times(1)) .isComponentEnabledForPackage(packageName, mUserId); verify(mListeners, never()).isComponentEnabledForPackage(packageName, mUserId); verify(mDevicePolicyManager).isActiveDeviceOwner(uid); } Loading @@ -17485,8 +17442,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners, Flags.skipPolicyAccessNlsCheck() ? never() : times(1)) .isComponentEnabledForPackage(packageName); verify(mListeners, never()).isComponentEnabledForPackage(packageName); verify(mDevicePolicyManager).isActiveDeviceOwner(uid); verify(mDevicePolicyManager, never()).isActiveDeviceOwner(callingUid); } Loading @@ -17510,15 +17466,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners, Flags.skipPolicyAccessNlsCheck() ? never() : times(1)) .isComponentEnabledForPackage(packageName, mUserId); verify(mListeners, never()).isComponentEnabledForPackage(packageName, mUserId); verify(mDevicePolicyManager).isActiveDeviceOwner(uid); verify(mDevicePolicyManager, never()).isActiveDeviceOwner(callingUid); } @Test @DisableFlags(FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER) @EnableFlags(FLAG_SKIP_POLICY_ACCESS_NLS_CHECK) public void isNotificationPolicyAccessGranted_notGranted() throws Exception { final String packageName = "target"; final int uid = 123; Loading @@ -17536,7 +17490,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { } @Test @EnableFlags({FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER, FLAG_SKIP_POLICY_ACCESS_NLS_CHECK}) @EnableFlags({FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER}) public void isNotificationPolicyAccessGranted_notGranted_concurrent_multiUser() throws Exception { final String packageName = "target"; Loading @@ -17554,42 +17508,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { verify(mDevicePolicyManager).isActiveDeviceOwner(uid); } @Test @DisableFlags({FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER, FLAG_SKIP_POLICY_ACCESS_NLS_CHECK}) public void isNotificationPolicyAccessGranted_notGranted_badNlsCheck() throws Exception { final String packageName = "target"; final int uid = 123; final var checker = mService.permissionChecker; when(mPackageManagerClient.getPackageUidAsUser(eq(packageName), anyInt())).thenReturn(uid); assertThat(mBinderService.isNotificationPolicyAccessGranted(packageName)).isFalse(); verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners).isComponentEnabledForPackage(packageName); verify(mDevicePolicyManager).isActiveDeviceOwner(uid); } @Test @EnableFlags(FLAG_MANAGED_SERVICES_CONCURRENT_MULTIUSER) @DisableFlags(FLAG_SKIP_POLICY_ACCESS_NLS_CHECK) public void isNotificationPolicyAccessGranted_notGranted_concurrent_multiUser_badNlsCheck() throws Exception { final String packageName = "target"; final int uid = 123; final var checker = mService.permissionChecker; when(mPackageManagerClient.getPackageUidAsUser(eq(packageName), anyInt())).thenReturn(uid); assertThat(mBinderService.isNotificationPolicyAccessGranted(packageName)).isFalse(); verify(mPackageManagerClient).getPackageUidAsUser(eq(packageName), eq(mUserId)); verify(checker).check(android.Manifest.permission.MANAGE_NOTIFICATIONS, uid, -1, true); verify(mConditionProviders).isPackageOrComponentAllowed(eq(packageName), eq(mUserId)); verify(mListeners).isComponentEnabledForPackage(packageName, mUserId); verify(mDevicePolicyManager).isActiveDeviceOwner(uid); } @Test public void testResetDefaultDnd() { TestableNotificationManagerService service = spy(mService);