From 93defea5ac73fddb66d65e13ad7100c5fed17ea6 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Tue, 20 Feb 2018 15:57:17 -0800 Subject: [PATCH] Disambiguate apps that share uid for job/bucket purposes Specifically, we no longer update our cached standby state bookkeeping for *all* apps under that uid when a standby policy change notification comes in. We weren't properly handling shared uids; and now we are. Change-Id: I4bda6233ebeff259cc63bdb8a4febbc83f2e1043 Fixes: 73663980 Test: atest CtsJobSchedulerTestCases --- .../java/com/android/server/job/JobSchedulerService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/job/JobSchedulerService.java b/services/core/java/com/android/server/job/JobSchedulerService.java index 05c7f1984616d..52f591741c834 100644 --- a/services/core/java/com/android/server/job/JobSchedulerService.java +++ b/services/core/java/com/android/server/job/JobSchedulerService.java @@ -2261,7 +2261,12 @@ public final class JobSchedulerService extends com.android.server.SystemService Slog.i(TAG, "Moving uid " + uid + " to bucketIndex " + bucketIndex); } synchronized (mLock) { - mJobs.forEachJobForSourceUid(uid, job -> job.setStandbyBucket(bucketIndex)); + mJobs.forEachJobForSourceUid(uid, job -> { + // double-check uid vs package name to disambiguate shared uids + if (packageName.equals(job.getSourcePackageName())) { + job.setStandbyBucket(bucketIndex); + } + }); onControllerStateChanged(); } });