Loading core/java/android/content/pm/PackageInfo.java +8 −0 Original line number Diff line number Diff line Loading @@ -448,6 +448,12 @@ public class PackageInfo implements Parcelable { */ public boolean isApex; /** * Whether this is an active APEX package. * @hide */ public boolean isActiveApex; public PackageInfo() { } Loading Loading @@ -534,6 +540,7 @@ public class PackageInfo implements Parcelable { dest.writeInt(0); } dest.writeBoolean(isApex); dest.writeBoolean(isActiveApex); dest.restoreAllowSquashing(prevAllowSquashing); } Loading Loading @@ -598,5 +605,6 @@ public class PackageInfo implements Parcelable { signingInfo = SigningInfo.CREATOR.createFromParcel(source); } isApex = source.readBoolean(); isActiveApex = source.readBoolean(); } } services/core/java/com/android/server/pm/ApexManager.java +2 −2 Original line number Diff line number Diff line Loading @@ -506,7 +506,7 @@ public abstract class ApexManager { * @return {@code true} if this package is active, {@code false} otherwise. */ private static boolean isActive(PackageInfo packageInfo) { return (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED) != 0; return packageInfo.isActiveApex; } /** Loading Loading @@ -1153,7 +1153,7 @@ public abstract class ApexManager { // Installation was successful, time to update mAllPackagesCache synchronized (mLock) { if (isFactory(existingApexPkg)) { existingApexPkg.applicationInfo.flags &= ~ApplicationInfo.FLAG_INSTALLED; existingApexPkg.isActiveApex = false; mAllPackagesCache.add(finalApexPkg); } else { for (int i = 0, size = mAllPackagesCache.size(); i < size; i++) { Loading services/core/java/com/android/server/pm/ComputerEngine.java +0 −3 Original line number Diff line number Diff line Loading @@ -1835,9 +1835,6 @@ public class ComputerEngine implements Computer { list.addAll(mApexManager.getFactoryPackages()); } else { list.addAll(mApexManager.getActivePackages()); if (listUninstalled) { list.addAll(mApexManager.getInactivePackages()); } } } return new ParceledListSlice<>(list); Loading services/core/java/com/android/server/pm/pkg/parsing/PackageInfoWithoutStateUtils.java +2 −5 Original line number Diff line number Diff line Loading @@ -322,17 +322,14 @@ public class PackageInfoWithoutStateUtils { pi.applicationInfo.sourceDir = apexFile.getPath(); pi.applicationInfo.publicSourceDir = apexFile.getPath(); pi.applicationInfo.flags |= ApplicationInfo.FLAG_SYSTEM; pi.applicationInfo.flags |= ApplicationInfo.FLAG_INSTALLED; if (apexInfo.isFactory) { pi.applicationInfo.flags &= ~ApplicationInfo.FLAG_UPDATED_SYSTEM_APP; } else { pi.applicationInfo.flags |= ApplicationInfo.FLAG_UPDATED_SYSTEM_APP; } if (apexInfo.isActive) { pi.applicationInfo.flags |= ApplicationInfo.FLAG_INSTALLED; } else { pi.applicationInfo.flags &= ~ApplicationInfo.FLAG_INSTALLED; } pi.isApex = true; pi.isActiveApex = apexInfo.isActive; } final SigningDetails signingDetails = pkg.getSigningDetails(); Loading services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java +4 −2 Original line number Diff line number Diff line Loading @@ -397,7 +397,8 @@ public class ApexManagerTest { assertThat(factoryInfo.applicationInfo.longVersionCode).isEqualTo(1); assertThat(factoryInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) .isEqualTo(ApplicationInfo.FLAG_SYSTEM); assertThat(factoryInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED).isEqualTo(0); assertThat(factoryInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED) .isEqualTo(ApplicationInfo.FLAG_INSTALLED); } @Test Loading Loading @@ -436,7 +437,8 @@ public class ApexManagerTest { assertThat(factoryInfo.applicationInfo.longVersionCode).isEqualTo(1); assertThat(factoryInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) .isEqualTo(ApplicationInfo.FLAG_SYSTEM); assertThat(factoryInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED).isEqualTo(0); assertThat(factoryInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED) .isEqualTo(ApplicationInfo.FLAG_INSTALLED); } @Test Loading Loading
core/java/android/content/pm/PackageInfo.java +8 −0 Original line number Diff line number Diff line Loading @@ -448,6 +448,12 @@ public class PackageInfo implements Parcelable { */ public boolean isApex; /** * Whether this is an active APEX package. * @hide */ public boolean isActiveApex; public PackageInfo() { } Loading Loading @@ -534,6 +540,7 @@ public class PackageInfo implements Parcelable { dest.writeInt(0); } dest.writeBoolean(isApex); dest.writeBoolean(isActiveApex); dest.restoreAllowSquashing(prevAllowSquashing); } Loading Loading @@ -598,5 +605,6 @@ public class PackageInfo implements Parcelable { signingInfo = SigningInfo.CREATOR.createFromParcel(source); } isApex = source.readBoolean(); isActiveApex = source.readBoolean(); } }
services/core/java/com/android/server/pm/ApexManager.java +2 −2 Original line number Diff line number Diff line Loading @@ -506,7 +506,7 @@ public abstract class ApexManager { * @return {@code true} if this package is active, {@code false} otherwise. */ private static boolean isActive(PackageInfo packageInfo) { return (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED) != 0; return packageInfo.isActiveApex; } /** Loading Loading @@ -1153,7 +1153,7 @@ public abstract class ApexManager { // Installation was successful, time to update mAllPackagesCache synchronized (mLock) { if (isFactory(existingApexPkg)) { existingApexPkg.applicationInfo.flags &= ~ApplicationInfo.FLAG_INSTALLED; existingApexPkg.isActiveApex = false; mAllPackagesCache.add(finalApexPkg); } else { for (int i = 0, size = mAllPackagesCache.size(); i < size; i++) { Loading
services/core/java/com/android/server/pm/ComputerEngine.java +0 −3 Original line number Diff line number Diff line Loading @@ -1835,9 +1835,6 @@ public class ComputerEngine implements Computer { list.addAll(mApexManager.getFactoryPackages()); } else { list.addAll(mApexManager.getActivePackages()); if (listUninstalled) { list.addAll(mApexManager.getInactivePackages()); } } } return new ParceledListSlice<>(list); Loading
services/core/java/com/android/server/pm/pkg/parsing/PackageInfoWithoutStateUtils.java +2 −5 Original line number Diff line number Diff line Loading @@ -322,17 +322,14 @@ public class PackageInfoWithoutStateUtils { pi.applicationInfo.sourceDir = apexFile.getPath(); pi.applicationInfo.publicSourceDir = apexFile.getPath(); pi.applicationInfo.flags |= ApplicationInfo.FLAG_SYSTEM; pi.applicationInfo.flags |= ApplicationInfo.FLAG_INSTALLED; if (apexInfo.isFactory) { pi.applicationInfo.flags &= ~ApplicationInfo.FLAG_UPDATED_SYSTEM_APP; } else { pi.applicationInfo.flags |= ApplicationInfo.FLAG_UPDATED_SYSTEM_APP; } if (apexInfo.isActive) { pi.applicationInfo.flags |= ApplicationInfo.FLAG_INSTALLED; } else { pi.applicationInfo.flags &= ~ApplicationInfo.FLAG_INSTALLED; } pi.isApex = true; pi.isActiveApex = apexInfo.isActive; } final SigningDetails signingDetails = pkg.getSigningDetails(); Loading
services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java +4 −2 Original line number Diff line number Diff line Loading @@ -397,7 +397,8 @@ public class ApexManagerTest { assertThat(factoryInfo.applicationInfo.longVersionCode).isEqualTo(1); assertThat(factoryInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) .isEqualTo(ApplicationInfo.FLAG_SYSTEM); assertThat(factoryInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED).isEqualTo(0); assertThat(factoryInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED) .isEqualTo(ApplicationInfo.FLAG_INSTALLED); } @Test Loading Loading @@ -436,7 +437,8 @@ public class ApexManagerTest { assertThat(factoryInfo.applicationInfo.longVersionCode).isEqualTo(1); assertThat(factoryInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) .isEqualTo(ApplicationInfo.FLAG_SYSTEM); assertThat(factoryInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED).isEqualTo(0); assertThat(factoryInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED) .isEqualTo(ApplicationInfo.FLAG_INSTALLED); } @Test Loading