Sync tieProfileLockIfNecessary() with internal main am: ada6ce9436
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2871508
Change-Id: I09431365f49d72fad8d0b755de3026de5f6380df
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java
index c08b6d2..42c2548 100644
--- a/services/core/java/com/android/server/locksettings/LockSettingsService.java
+++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java
@@ -432,11 +432,14 @@
if (mStorage.hasChildProfileLock(profileUserId)) {
return;
}
+ final UserInfo parent = mUserManager.getProfileParent(profileUserId);
+ if (parent == null) {
+ return;
+ }
// If parent does not have a screen lock, simply clear credential from the profile,
// to maintain the invariant that unified profile should always have the same secure state
// as its parent.
- final int parentId = mUserManager.getProfileParent(profileUserId).id;
- if (!isUserSecure(parentId) && !profileUserPassword.isNone()) {
+ if (!isUserSecure(parent.id) && !profileUserPassword.isNone()) {
Slogf.i(TAG, "Clearing password for profile user %d to match parent", profileUserId);
setLockCredentialInternal(LockscreenCredential.createNone(), profileUserPassword,
profileUserId, /* isLockTiedToParent= */ true);
@@ -447,7 +450,7 @@
// This can only happen during an upgrade path where SID is yet to be
// generated when the user unlocks for the first time.
try {
- parentSid = getGateKeeperService().getSecureUserId(parentId);
+ parentSid = getGateKeeperService().getSecureUserId(parent.id);
if (parentSid == 0) {
return;
}
@@ -458,7 +461,7 @@
try (LockscreenCredential unifiedProfilePassword = generateRandomProfilePassword()) {
setLockCredentialInternal(unifiedProfilePassword, profileUserPassword, profileUserId,
/* isLockTiedToParent= */ true);
- tieProfileLockToParent(profileUserId, parentId, unifiedProfilePassword);
+ tieProfileLockToParent(profileUserId, parent.id, unifiedProfilePassword);
mManagedProfilePasswordCache.storePassword(profileUserId, unifiedProfilePassword,
parentSid);
}