diff options
| author | 2018-01-24 23:48:18 +0000 | |
|---|---|---|
| committer | 2018-01-24 23:48:18 +0000 | |
| commit | 3c5b60a7fb004d6a332d0dbefdce2d67d88fd50f (patch) | |
| tree | b2902f674db18c174c4f29d44178c48267ee5c19 | |
| parent | 2ffeef2a35948ff98c43bbfb1a9282b7a4c03689 (diff) | |
| parent | 5bbe26ee01bc9785487fe5e748e624b6fc5bd3a4 (diff) | |
Merge "Accept UserHandle.USER_ALL during profile preparation"
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 2 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/dex/ArtManagerService.java | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index a73ad8dc88d0..299c59a5d093 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -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. // diff --git a/services/core/java/com/android/server/pm/dex/ArtManagerService.java b/services/core/java/com/android/server/pm/dex/ArtManagerService.java index 92d159b8ec04..81786890a436 100644 --- a/services/core/java/com/android/server/pm/dex/ArtManagerService.java +++ b/services/core/java/com/android/server/pm/dex/ArtManagerService.java @@ -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--) { @@ -267,6 +275,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]. */ |