Add ParsedPackage.setApex
A prerequisite to migrate from ApexPackageInfo. This allows PMS to know whether a package is APEX or not. Bug: 225756739 Test: atest AndroidPackageTest Change-Id: I0269bdbd3a7a1a5b6a4076ddbeab41fa9763ae92
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
@@ -626,6 +627,11 @@ public class PackageImpl extends ParsingPackageImpl implements ParsedPackage, An
|
||||
return getBoolean(Booleans.FACTORY_TEST);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isApex() {
|
||||
return getBoolean(Booleans.APEX);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSystemExt() {
|
||||
return getBoolean(Booleans.SYSTEM_EXT);
|
||||
@@ -693,6 +699,12 @@ public class PackageImpl extends ParsingPackageImpl implements ParsedPackage, An
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PackageImpl setApex(boolean isApex) {
|
||||
setBoolean(Booleans.APEX, isApex);
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PackageImpl setSystemExt(boolean value) {
|
||||
setBoolean(Booleans.SYSTEM_EXT, value);
|
||||
|
||||
@@ -66,6 +66,8 @@ public interface ParsedPackage extends AndroidPackage {
|
||||
|
||||
ParsedPackage setFactoryTest(boolean factoryTest);
|
||||
|
||||
ParsedPackage setApex(boolean isApex);
|
||||
|
||||
ParsedPackage markNotActivitiesAsNotExportedIfSingleUser();
|
||||
|
||||
ParsedPackage setOdm(boolean odm);
|
||||
|
||||
@@ -331,6 +331,8 @@ public interface AndroidPackageApi {
|
||||
|
||||
boolean isFactoryTest();
|
||||
|
||||
boolean isApex();
|
||||
|
||||
boolean isNativeLibraryRootRequiresIsa();
|
||||
|
||||
boolean isOdm();
|
||||
|
||||
@@ -200,6 +200,7 @@ class AndroidPackageTest : ParcelableComponentTest(AndroidPackage::class, Packag
|
||||
AndroidPackage::isExternalStorage,
|
||||
AndroidPackage::isExtractNativeLibs,
|
||||
AndroidPackage::isFactoryTest,
|
||||
AndroidPackage::isApex,
|
||||
AndroidPackage::isForceQueryable,
|
||||
AndroidPackage::isFullBackupOnly,
|
||||
AndroidPackage::isGame,
|
||||
|
||||
Reference in New Issue
Block a user