From e61cf5125e83b119701228e742f7b2cb3a433cb6 Mon Sep 17 00:00:00 2001 From: Kweku Adams Date: Wed, 24 Feb 2021 13:05:06 -0800 Subject: [PATCH] Wait for unlock to start jobs. We don't tell apps that a user is unlocked until the user is fully unlocked (not just unlocking) so some apps may think that storage is still encrypted even when it's not (during user unlocking). Wait until the user is fully unlocked to run any jobs for a user to avoid potential problems. Bug: 162076852 Test: atest frameworks/base/services/tests/servicestests/src/com/android/server/job Test: atest frameworks/base/services/tests/mockingservicestests/src/com/android/server/job Test: atest CtsJobSchedulerTestCases Change-Id: I4c7e2e2e4f86162c59685295417e02eb554c1cb0 --- .../com/android/server/job/JobSchedulerService.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) 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 ac6eb3229a25..2401e44570e6 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java @@ -881,20 +881,16 @@ public class JobSchedulerService extends com.android.server.SystemService } @Override - public void onUserStarting(@NonNull TargetUser user) { + public void onUserUnlocked(@NonNull TargetUser user) { synchronized (mLock) { + // Note that the user has started after its unlocked instead of when the user + // actually starts because the storage won't be decrypted until unlock. mStartedUsers = ArrayUtils.appendInt(mStartedUsers, user.getUserIdentifier()); } // Let's kick any outstanding jobs for this user. mHandler.obtainMessage(MSG_CHECK_JOB).sendToTarget(); } - @Override - public void onUserUnlocking(@NonNull TargetUser user) { - // Let's kick any outstanding jobs for this user. - mHandler.obtainMessage(MSG_CHECK_JOB).sendToTarget(); - } - @Override public void onUserStopping(@NonNull TargetUser user) { synchronized (mLock) { -- GitLab