Merge "Don't prepare CE storage on user creation"

This commit is contained in:
Eric Biggers
2022-10-26 02:07:45 +00:00
committed by Android (Google) Code Review
2 changed files with 10 additions and 6 deletions

View File

@@ -4185,15 +4185,16 @@ public final class Settings implements Watchable, Snappable {
// such as APEX
continue;
}
// Need to create a data directory for all apps installed for this user.
// Accumulate all required args and call the installer after mPackages lock
// has been released
// We need to create the DE data directory for all apps installed for this user.
// (CE storage is not ready yet; the CE data directories will be created later,
// when the user is "unlocked".) Accumulate all required args, and call the
// installer after the mPackages lock has been released.
final String seInfo = AndroidPackageUtils.getSeInfo(ps.getPkg(), ps);
final boolean usesSdk = !ps.getPkg().getUsesSdkLibraries().isEmpty();
final CreateAppDataArgs args = Installer.buildCreateAppDataArgs(
ps.getVolumeUuid(), ps.getPackageName(), userHandle,
StorageManager.FLAG_STORAGE_CE | StorageManager.FLAG_STORAGE_DE,
ps.getAppId(), seInfo, ps.getPkg().getTargetSdkVersion(), usesSdk);
StorageManager.FLAG_STORAGE_DE, ps.getAppId(), seInfo,
ps.getPkg().getTargetSdkVersion(), usesSdk);
batch.createAppData(args);
} else {
// Make sure the app is excluded from storage mapping for this user

View File

@@ -4666,9 +4666,12 @@ public class UserManagerService extends IUserManager.Stub {
storage.createUserKey(userId, userInfo.serialNumber, userInfo.isEphemeral());
t.traceEnd();
// Only prepare DE storage here. CE storage will be prepared later, when the user is
// unlocked. We do this to ensure that CE storage isn't prepared before the CE key is
// saved to disk. This also matches what is done for user 0.
t.traceBegin("prepareUserData");
mUserDataPreparer.prepareUserData(userId, userInfo.serialNumber,
StorageManager.FLAG_STORAGE_DE | StorageManager.FLAG_STORAGE_CE);
StorageManager.FLAG_STORAGE_DE);
t.traceEnd();
t.traceBegin("LSS.createNewUser");