Merge "Unlock work profile storage even work mode is off" into nyc-dev am: f420c413b9 am: efc3838caa

am: 316abe21bd

* commit '316abe21bd2cd53879af969d48c17ff1fbe45bd5':
  Unlock work profile storage even work mode is off

Change-Id: I2c5bf82aef3e130781acf0a25991822c1bb72d9f
This commit is contained in:
Ricky Wai
2016-05-25 13:27:28 +00:00
committed by android-build-merger
2 changed files with 11 additions and 20 deletions

View File

@@ -747,12 +747,6 @@ public class LockSettingsService extends ILockSettings.Stub {
}
};
// Turn off quite mode if it's enabled, only managed profile can return true for now, it
// will return false if it is not a managed profile.
if (mUserManager.isQuietModeEnabled(new UserHandle(userId))) {
mUserManager.setQuietModeEnabled(userId, false);
}
try {
ActivityManagerNative.getDefault().unlockUser(userId, token, secret, listener);
} catch (RemoteException e) {
@@ -771,7 +765,6 @@ public class LockSettingsService extends ILockSettings.Stub {
// Unlock managed profile with unified lock
if (pi.isManagedProfile()
&& !mLockPatternUtils.isSeparateProfileChallengeEnabled(pi.id)
&& !pi.isQuietModeEnabled()
&& mStorage.hasChildProfileLock(pi.id)) {
unlockChildProfile(pi.id);
}

View File

@@ -939,6 +939,17 @@ final class UserController {
boolean unlockUserCleared(final int userId, byte[] token, byte[] secret,
IProgressListener listener) {
synchronized (mService) {
// TODO Move this block outside of synchronized if it causes lock contention
if (!StorageManager.isUserKeyUnlocked(userId)) {
final UserInfo userInfo = getUserInfo(userId);
final IMountService mountService = getMountService();
try {
// We always want to unlock user storage, even user is not started yet
mountService.unlockUserKey(userId, userInfo.serialNumber, token, secret);
} catch (RemoteException | RuntimeException e) {
Slog.w(TAG, "Failed to unlock: " + e.getMessage());
}
}
// Bail if user isn't actually running, otherwise register the given
// listener to watch for unlock progress
final UserState uss = mStartedUsers.get(userId);
@@ -949,19 +960,6 @@ final class UserController {
uss.mUnlockProgress.addListener(listener);
}
// TODO Move this block outside of synchronized if it causes lock contention
if (!StorageManager.isUserKeyUnlocked(userId)) {
final UserInfo userInfo = getUserInfo(userId);
final IMountService mountService = getMountService();
try {
mountService.unlockUserKey(userId, userInfo.serialNumber, token, secret);
} catch (RemoteException | RuntimeException e) {
Slog.w(TAG, "Failed to unlock: " + e.getMessage());
notifyFinished(userId, listener);
return false;
}
}
finishUserUnlocking(uss);
// We just unlocked a user, so let's now attempt to unlock any