diff --git a/core/java/android/content/pm/parsing/AndroidPackage.java b/core/java/android/content/pm/parsing/AndroidPackage.java index 35df47431a913..0562dffc551ec 100644 --- a/core/java/android/content/pm/parsing/AndroidPackage.java +++ b/core/java/android/content/pm/parsing/AndroidPackage.java @@ -403,6 +403,8 @@ public interface AndroidPackage extends Parcelable { boolean isEnabled(); + boolean isCrossProfile(); + boolean isEncryptionAware(); boolean isExternal(); diff --git a/core/java/android/content/pm/parsing/ApkParseUtils.java b/core/java/android/content/pm/parsing/ApkParseUtils.java index 773231682fe4b..3f22967298913 100644 --- a/core/java/android/content/pm/parsing/ApkParseUtils.java +++ b/core/java/android/content/pm/parsing/ApkParseUtils.java @@ -2070,6 +2070,9 @@ public class ApkParseUtils { sa.getBoolean(R.styleable.AndroidManifestApplication_enabled, true)); + parsingPackage.setCrossProfile( + sa.getBoolean(R.styleable.AndroidManifestApplication_crossProfile, false)); + parsingPackage.setIsGame(sa.getBoolean( R.styleable.AndroidManifestApplication_isGame, false)); diff --git a/core/java/android/content/pm/parsing/PackageImpl.java b/core/java/android/content/pm/parsing/PackageImpl.java index 0e736d522c106..18dee23dc6909 100644 --- a/core/java/android/content/pm/parsing/PackageImpl.java +++ b/core/java/android/content/pm/parsing/PackageImpl.java @@ -240,6 +240,7 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android private int descriptionRes; private String deviceProtectedDataDir; private boolean enabled; + private boolean crossProfile; private int flags; private int fullBackupContent; private boolean hiddenUntilInstalled; @@ -1635,6 +1636,12 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android return this; } + @Override + public PackageImpl setCrossProfile(boolean crossProfile) { + this.crossProfile = crossProfile; + return this; + } + @Override public PackageImpl setUiOptions(int uiOptions) { this.uiOptions = uiOptions; @@ -2834,6 +2841,11 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android return enabled; } + @Override + public boolean isCrossProfile() { + return crossProfile; + } + @Override public String getManageSpaceActivityName() { return manageSpaceActivityName; @@ -3042,6 +3054,7 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android dest.writeInt(this.descriptionRes); dest.writeString(this.deviceProtectedDataDir); dest.writeBoolean(this.enabled); + dest.writeBoolean(this.crossProfile); dest.writeInt(this.flags); dest.writeInt(this.fullBackupContent); dest.writeBoolean(this.hiddenUntilInstalled); @@ -3194,6 +3207,7 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android this.descriptionRes = in.readInt(); this.deviceProtectedDataDir = in.readString(); this.enabled = in.readBoolean(); + this.crossProfile = in.readBoolean(); this.flags = in.readInt(); this.fullBackupContent = in.readInt(); this.hiddenUntilInstalled = in.readBoolean(); diff --git a/core/java/android/content/pm/parsing/ParsingPackage.java b/core/java/android/content/pm/parsing/ParsingPackage.java index aff1b2e05eaf6..47dac5584c894 100644 --- a/core/java/android/content/pm/parsing/ParsingPackage.java +++ b/core/java/android/content/pm/parsing/ParsingPackage.java @@ -229,6 +229,8 @@ public interface ParsingPackage extends AndroidPackage { ParsingPackage setEnabled(boolean enabled); + ParsingPackage setCrossProfile(boolean crossProfile); + ParsingPackage setFullBackupContent(int fullBackupContent); ParsingPackage setHasDomainUrls(boolean hasDomainUrls); diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml index 6350bf6e5352f..85f7d617352e0 100644 --- a/core/res/res/values/attrs_manifest.xml +++ b/core/res/res/values/attrs_manifest.xml @@ -1756,6 +1756,12 @@ The default value is {@code false}. --> + + +