diff --git a/core/java/android/content/pm/parsing/AndroidPackage.java b/core/java/android/content/pm/parsing/AndroidPackage.java
index 515185eaaf57a..e77025d84e483 100644
--- a/core/java/android/content/pm/parsing/AndroidPackage.java
+++ b/core/java/android/content/pm/parsing/AndroidPackage.java
@@ -398,6 +398,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 edbf73a0c0da7..24ff8913f427a 100644
--- a/core/java/android/content/pm/parsing/ApkParseUtils.java
+++ b/core/java/android/content/pm/parsing/ApkParseUtils.java
@@ -2053,6 +2053,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 377279e750c6a..df1457120e546 100644
--- a/core/java/android/content/pm/parsing/PackageImpl.java
+++ b/core/java/android/content/pm/parsing/PackageImpl.java
@@ -235,6 +235,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;
@@ -1623,6 +1624,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;
@@ -2817,6 +2824,11 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android
return enabled;
}
+ @Override
+ public boolean isCrossProfile() {
+ return crossProfile;
+ }
+
@Override
public String getManageSpaceActivityName() {
return manageSpaceActivityName;
@@ -3024,6 +3036,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);
@@ -3174,6 +3187,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 43c1f6e335b02..ad07acdec260d 100644
--- a/core/java/android/content/pm/parsing/ParsingPackage.java
+++ b/core/java/android/content/pm/parsing/ParsingPackage.java
@@ -227,6 +227,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 166cde0d7005f..217314432ef24 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -1753,6 +1753,12 @@
The default value is {@code false}. -->
+
+
+