Stop trying to update FDE password from LockSettingsService

Since FDE is no longer supported, updating the FDE password never does
anything.  Stop trying to do so.  Remove updateEncryptionPassword() from
ILockSettings, since its only caller outside of LockSettingsService
itself was in LockPatternUtils, and the previous CL removed that caller.

Bug: 208476087
Change-Id: I46c2a472177836f0c9084e4c3b4ed2e6c0ab61d5
(cherry picked from commit 3762ada110)
Merged-In: I46c2a472177836f0c9084e4c3b4ed2e6c0ab61d5
This commit is contained in:
Eric Biggers
2022-01-26 05:22:38 +00:00
parent 0a9389d296
commit d63d0e12cc
2 changed files with 4 additions and 50 deletions

View File

@@ -95,5 +95,4 @@ interface ILockSettings {
boolean hasSecureLockScreen();
boolean tryUnlockWithCachedUnifiedChallenge(int userId);
void removeCachedUnifiedChallenge(int userId);
void updateEncryptionPassword(int type, in byte[] password);
}

View File

@@ -1761,7 +1761,10 @@ public class LockSettingsService extends ILockSettings.Stub {
}
private void onPostPasswordChanged(LockscreenCredential newCredential, int userHandle) {
updateEncryptionPasswordIfNeeded(newCredential, userHandle);
if (userHandle == UserHandle.USER_SYSTEM && isDeviceEncryptionEnabled() &&
shouldEncryptWithCredentials() && newCredential.isNone()) {
setCredentialRequiredToDecrypt(false);
}
if (newCredential.isPattern()) {
setBoolean(LockPatternUtils.PATTERN_EVER_CHOSEN_KEY, true, userHandle);
}
@@ -1769,26 +1772,6 @@ public class LockSettingsService extends ILockSettings.Stub {
mContext.getSystemService(TrustManager.class).reportEnabledTrustAgentsChanged(userHandle);
}
/**
* Update device encryption password if calling user is USER_SYSTEM and device supports
* encryption.
*/
private void updateEncryptionPasswordIfNeeded(LockscreenCredential credential, int userHandle) {
// Update the device encryption password.
if (userHandle != UserHandle.USER_SYSTEM || !isDeviceEncryptionEnabled()) {
return;
}
if (!shouldEncryptWithCredentials()) {
updateEncryptionPassword(StorageManager.CRYPT_TYPE_DEFAULT, null);
return;
}
if (credential.isNone()) {
// Set the encryption password to default.
setCredentialRequiredToDecrypt(false);
}
updateEncryptionPassword(credential.getStorageCryptType(), credential.getCredential());
}
/**
* Store the hash of the *current* password in the password history list, if device policy
* enforces password history requirement.
@@ -1883,34 +1866,6 @@ public class LockSettingsService extends ILockSettings.Stub {
}
}
/** Update the encryption password if it is enabled **/
@Override
public void updateEncryptionPassword(final int type, final byte[] password) {
if (!hasSecureLockScreen() && password != null && password.length != 0) {
throw new UnsupportedOperationException(
"This operation requires the lock screen feature.");
}
if (!isDeviceEncryptionEnabled()) {
return;
}
final IBinder service = ServiceManager.getService("mount");
if (service == null) {
Slog.e(TAG, "Could not find the mount service to update the encryption password");
return;
}
// TODO(b/120484642): This is a location where we still use a String for vold
String passwordString = password != null ? new String(password) : null;
mHandler.post(() -> {
IStorageManager storageManager = mInjector.getStorageManager();
try {
storageManager.changeEncryptionPassword(type, passwordString);
} catch (RemoteException e) {
Slog.e(TAG, "Error changing encryption password", e);
}
});
}
@VisibleForTesting /** Note: this method is overridden in unit tests */
protected void tieProfileLockToParent(int userId, LockscreenCredential password) {
if (DEBUG) Slog.v(TAG, "tieProfileLockToParent for user: " + userId);