summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/pm/ScanPackageUtils.java3
-rw-r--r--services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java1
-rw-r--r--services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java12
-rw-r--r--services/core/java/com/android/server/pm/parsing/pkg/ParsedPackage.java2
-rw-r--r--services/core/java/com/android/server/pm/pkg/AndroidPackageApi.java2
-rw-r--r--services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/parsing/parcelling/AndroidPackageTest.kt1
6 files changed, 21 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/ScanPackageUtils.java b/services/core/java/com/android/server/pm/ScanPackageUtils.java
index 0dc188b75d5e..fe160e3fee22 100644
--- a/services/core/java/com/android/server/pm/ScanPackageUtils.java
+++ b/services/core/java/com/android/server/pm/ScanPackageUtils.java
@@ -24,6 +24,7 @@ import static android.os.Trace.TRACE_TAG_PACKAGE_MANAGER;
import static com.android.server.pm.PackageManagerService.DEBUG_ABI_SELECTION;
import static com.android.server.pm.PackageManagerService.DEBUG_PACKAGE_SCANNING;
import static com.android.server.pm.PackageManagerService.PLATFORM_PACKAGE_NAME;
+import static com.android.server.pm.PackageManagerService.SCAN_AS_APEX;
import static com.android.server.pm.PackageManagerService.SCAN_AS_FULL_APP;
import static com.android.server.pm.PackageManagerService.SCAN_AS_INSTANT_APP;
import static com.android.server.pm.PackageManagerService.SCAN_AS_ODM;
@@ -853,6 +854,8 @@ final class ScanPackageUtils {
.markNotActivitiesAsNotExportedIfSingleUser();
}
+ parsedPackage.setApex((scanFlags & SCAN_AS_APEX) != 0);
+
parsedPackage.setPrivileged((scanFlags & SCAN_AS_PRIVILEGED) != 0)
.setOem((scanFlags & SCAN_AS_OEM) != 0)
.setVendor((scanFlags & SCAN_AS_VENDOR) != 0)
diff --git a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
index 8d1bcfcb3938..4f0f2a85381c 100644
--- a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
+++ b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
@@ -121,6 +121,7 @@ public class PackageInfoUtils {
info.isStub = pkg.isStub();
info.coreApp = pkg.isCoreApp();
+ info.isApex = pkg.isApex();
if (pkgSetting != null && !pkgSetting.hasSharedUser()) {
// It is possible that this shared UID app has left
diff --git a/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java b/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java
index 193e1a22d787..b91f15a4d037 100644
--- a/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java
+++ b/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java
@@ -161,6 +161,7 @@ public class PackageImpl extends ParsingPackageImpl implements ParsedPackage, An
private static final int SIGNED_WITH_PLATFORM_KEY = 1 << 9;
private static final int NATIVE_LIBRARY_ROOT_REQUIRES_ISA = 1 << 10;
private static final int STUB = 1 << 11;
+ private static final int APEX = 1 << 12;
}
private ParsedPackage setBoolean(@Booleans.Flags int flag, boolean value) {
@@ -627,6 +628,11 @@ public class PackageImpl extends ParsingPackageImpl implements ParsedPackage, An
}
@Override
+ public boolean isApex() {
+ return getBoolean(Booleans.APEX);
+ }
+
+ @Override
public boolean isSystemExt() {
return getBoolean(Booleans.SYSTEM_EXT);
}
@@ -694,6 +700,12 @@ public class PackageImpl extends ParsingPackageImpl implements ParsedPackage, An
}
@Override
+ public PackageImpl setApex(boolean isApex) {
+ setBoolean(Booleans.APEX, isApex);
+ return this;
+ }
+
+ @Override
public PackageImpl setSystemExt(boolean value) {
setBoolean(Booleans.SYSTEM_EXT, value);
return this;
diff --git a/services/core/java/com/android/server/pm/parsing/pkg/ParsedPackage.java b/services/core/java/com/android/server/pm/parsing/pkg/ParsedPackage.java
index bb08f09d5ab8..38d87e2eef3c 100644
--- a/services/core/java/com/android/server/pm/parsing/pkg/ParsedPackage.java
+++ b/services/core/java/com/android/server/pm/parsing/pkg/ParsedPackage.java
@@ -66,6 +66,8 @@ public interface ParsedPackage extends AndroidPackage {
ParsedPackage setFactoryTest(boolean factoryTest);
+ ParsedPackage setApex(boolean isApex);
+
ParsedPackage markNotActivitiesAsNotExportedIfSingleUser();
ParsedPackage setOdm(boolean odm);
diff --git a/services/core/java/com/android/server/pm/pkg/AndroidPackageApi.java b/services/core/java/com/android/server/pm/pkg/AndroidPackageApi.java
index a0bb8dc48ecf..a529abbfadf5 100644
--- a/services/core/java/com/android/server/pm/pkg/AndroidPackageApi.java
+++ b/services/core/java/com/android/server/pm/pkg/AndroidPackageApi.java
@@ -331,6 +331,8 @@ public interface AndroidPackageApi {
boolean isFactoryTest();
+ boolean isApex();
+
boolean isNativeLibraryRootRequiresIsa();
boolean isOdm();
diff --git a/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/parsing/parcelling/AndroidPackageTest.kt b/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/parsing/parcelling/AndroidPackageTest.kt
index 7a9c41256d61..728fc6c8e536 100644
--- a/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/parsing/parcelling/AndroidPackageTest.kt
+++ b/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/parsing/parcelling/AndroidPackageTest.kt
@@ -200,6 +200,7 @@ class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, Packag
AndroidPackage::isExternalStorage,
AndroidPackage::isExtractNativeLibs,
AndroidPackage::isFactoryTest,
+ AndroidPackage::isApex,
AndroidPackage::isForceQueryable,
AndroidPackage::isFullBackupOnly,
AndroidPackage::isGame,