Merge "Allow non-empty namespaces in system uid to cancel all jobs" into udc-dev
diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
index a2e9a08..ea14640 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
@@ -1812,7 +1812,9 @@
     private boolean cancelJobsForUid(int uid, boolean includeSourceApp,
             boolean namespaceOnly, @Nullable String namespace,
             @JobParameters.StopReason int reason, int internalReasonCode, String debugReason) {
-        if (uid == Process.SYSTEM_UID) {
+        // Non-null system namespace means the cancelling is limited to the namespace
+        // and won't cause issues for the system at large.
+        if (uid == Process.SYSTEM_UID && (!namespaceOnly || namespace == null)) {
             Slog.wtfStack(TAG, "Can't cancel all jobs for system uid");
             return false;
         }