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

Commit 5bbe26ee authored by Calin Juravle's avatar Calin Juravle
Browse files

Accept UserHandle.USER_ALL during profile preparation

Test: adb install foo.apk
Bug: 72453027
Change-Id: I840d70d47a256c8853bbe1b9b023f51bdd5ddf6b
parent e891dbaa
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -17022,7 +17022,7 @@ Slog.e("TODD",
        // Prepare the application profiles for the new code paths.
        // This needs to be done before invoking dexopt so that any install-time profile
        // can be used for optimizations.
        mArtManagerService.prepareAppProfiles(pkg, args.user.getIdentifier());
        mArtManagerService.prepareAppProfiles(pkg, resolveUserIds(args.user.getIdentifier()));
        // Check whether we need to dexopt the app.
        //
+17 −0
Original line number Diff line number Diff line
@@ -245,6 +245,14 @@ public class ArtManagerService extends android.content.pm.dex.IArtManager.Stub {
     */
    public void prepareAppProfiles(PackageParser.Package pkg, @UserIdInt int user) {
        final int appId = UserHandle.getAppId(pkg.applicationInfo.uid);
        if (user < 0) {
            Slog.wtf(TAG, "Invalid user id: " + user);
            return;
        }
        if (appId < 0) {
            Slog.wtf(TAG, "Invalid app id: " + appId);
            return;
        }
        try {
            ArrayMap<String, String> codePathsProfileNames = getPackageProfileNames(pkg);
            for (int i = codePathsProfileNames.size() - 1; i >= 0; i--) {
@@ -266,6 +274,15 @@ public class ArtManagerService extends android.content.pm.dex.IArtManager.Stub {
        }
    }

    /**
     * Prepares the app profiles for a set of users. {@see ArtManagerService#prepareAppProfiles}.
     */
    public void prepareAppProfiles(PackageParser.Package pkg, int[] user) {
        for (int i = 0; i < user.length; i++) {
            prepareAppProfiles(pkg, user[i]);
        }
    }

    /**
     * Build the profiles names for all the package code paths (excluding resource only paths).
     * Return the map [code path -> profile name].