Accept UserHandle.USER_ALL during profile preparation
(cherry picked from commit 5bbe26ee01)
Test: adb install foo.apk
Bug: 72453027
Merged-In: I840d70d47a256c8853bbe1b9b023f51bdd5ddf6b
Change-Id: I840d70d47a256c8853bbe1b9b023f51bdd5ddf6b
This commit is contained in:
committed by
Andreas Gampe
parent
b62a9045c2
commit
362b591a1d
@@ -18848,7 +18848,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
// 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.
|
||||
//
|
||||
|
||||
@@ -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].
|
||||
|
||||
Reference in New Issue
Block a user