Merge "Use PackageInfoUtils with null PackageSetting to set server-only flags" into rvc-dev am: eedf74437f

Change-Id: Idb40ee597c4d1bb43547efd0e5ac15840c4888fa
This commit is contained in:
Automerger Merge Worker
2020-02-29 00:26:39 +00:00

View File

@@ -213,7 +213,6 @@ import android.content.pm.VersionedPackage;
import android.content.pm.dex.ArtManager; import android.content.pm.dex.ArtManager;
import android.content.pm.dex.DexMetadataHelper; import android.content.pm.dex.DexMetadataHelper;
import android.content.pm.dex.IArtManager; import android.content.pm.dex.IArtManager;
import android.content.pm.parsing.PackageInfoWithoutStateUtils;
import android.content.pm.parsing.ParsingPackageUtils; import android.content.pm.parsing.ParsingPackageUtils;
import android.content.pm.parsing.component.ParsedActivity; import android.content.pm.parsing.component.ParsedActivity;
import android.content.pm.parsing.component.ParsedInstrumentation; import android.content.pm.parsing.component.ParsedInstrumentation;
@@ -10986,17 +10985,22 @@ public class PackageManagerService extends IPackageManager.Stub
if (createNewPackage) { if (createNewPackage) {
final boolean instantApp = (scanFlags & SCAN_AS_INSTANT_APP) != 0; final boolean instantApp = (scanFlags & SCAN_AS_INSTANT_APP) != 0;
final boolean virtualPreload = (scanFlags & SCAN_AS_VIRTUAL_PRELOAD) != 0; final boolean virtualPreload = (scanFlags & SCAN_AS_VIRTUAL_PRELOAD) != 0;
// Flags contain system values stored in the server variant of AndroidPackage,
// and so the server-side PackageInfoUtils is still called, even without a
// PackageSetting to pass in.
int pkgFlags = PackageInfoUtils.appInfoFlags(parsedPackage, null);
int pkgPrivateFlags = PackageInfoUtils.appInfoPrivateFlags(parsedPackage, null);
// REMOVE SharedUserSetting from method; update in a separate call // REMOVE SharedUserSetting from method; update in a separate call
pkgSetting = Settings.createNewSetting(parsedPackage.getPackageName(), pkgSetting = Settings.createNewSetting(parsedPackage.getPackageName(),
originalPkgSetting, disabledPkgSetting, realPkgName, sharedUserSetting, originalPkgSetting, disabledPkgSetting, realPkgName, sharedUserSetting,
destCodeFile, destResourceFile, parsedPackage.getNativeLibraryRootDir(), destCodeFile, destResourceFile, parsedPackage.getNativeLibraryRootDir(),
AndroidPackageUtils.getRawPrimaryCpuAbi(parsedPackage), AndroidPackageUtils.getRawPrimaryCpuAbi(parsedPackage),
AndroidPackageUtils.getRawSecondaryCpuAbi(parsedPackage), AndroidPackageUtils.getRawSecondaryCpuAbi(parsedPackage),
parsedPackage.getVersionCode(), parsedPackage.getVersionCode(), pkgFlags, pkgPrivateFlags, user,
PackageInfoWithoutStateUtils.appInfoFlags(parsedPackage), true /*allowInstall*/, instantApp, virtualPreload,
PackageInfoWithoutStateUtils.appInfoPrivateFlags(parsedPackage), UserManagerService.getInstance(), usesStaticLibraries,
user, true /*allowInstall*/, instantApp,
virtualPreload, UserManagerService.getInstance(), usesStaticLibraries,
parsedPackage.getUsesStaticLibrariesVersions(), parsedPackage.getMimeGroups()); parsedPackage.getUsesStaticLibrariesVersions(), parsedPackage.getMimeGroups());
} else { } else {
// make a deep copy to avoid modifying any existing system state. // make a deep copy to avoid modifying any existing system state.