diff --git a/services/core/java/com/android/server/pm/PackageSetting.java b/services/core/java/com/android/server/pm/PackageSetting.java index 2bd1a26f1e286..a83a8476b8db5 100644 --- a/services/core/java/com/android/server/pm/PackageSetting.java +++ b/services/core/java/com/android/server/pm/PackageSetting.java @@ -321,6 +321,8 @@ public class PackageSetting extends PackageSettingBase { Set mimeGroupNames = other.mimeGroups != null ? other.mimeGroups.keySet() : null; updateMimeGroups(mimeGroupNames); + + getPkgState().updateFrom(other.getPkgState()); } @NonNull diff --git a/services/core/java/com/android/server/pm/pkg/PackageStateUnserialized.java b/services/core/java/com/android/server/pm/pkg/PackageStateUnserialized.java index e27bf48b6b61f..edb6d65bd96f2 100644 --- a/services/core/java/com/android/server/pm/pkg/PackageStateUnserialized.java +++ b/services/core/java/com/android/server/pm/pkg/PackageStateUnserialized.java @@ -27,6 +27,7 @@ import android.content.pm.SharedLibraryInfo; import com.android.internal.util.DataClass; import com.android.server.pm.PackageSetting; +import java.util.ArrayList; import java.util.List; /** @@ -88,6 +89,22 @@ public class PackageStateUnserialized { return latestUse; } + public void updateFrom(PackageStateUnserialized other) { + this.hiddenUntilInstalled = other.hiddenUntilInstalled; + + if (!other.usesLibraryInfos.isEmpty()) { + this.usesLibraryInfos = new ArrayList<>(other.usesLibraryInfos); + } + + if (!other.usesLibraryFiles.isEmpty()) { + this.usesLibraryFiles = new ArrayList<>(other.usesLibraryFiles); + } + + this.updatedSystemApp = other.updatedSystemApp; + this.lastPackageUsageTimeInMills = other.lastPackageUsageTimeInMills; + this.overrideSeInfo = other.overrideSeInfo; + } + // Code below generated by codegen v1.0.14.