Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a92699f7 authored by Eric Biggers's avatar Eric Biggers Committed by Android (Google) Code Review
Browse files

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

parents 9754f7a6 5c65b1ee
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -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
+4 −1
Original line number Diff line number Diff line
@@ -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");