Loading services/core/java/com/android/server/pm/PackageDexOptimizer.java +3 −2 Original line number Diff line number Diff line Loading @@ -474,8 +474,9 @@ public class PackageDexOptimizer { } if (isProfileGuidedCompilerFilter(targetCompilerFilter) && isUsedByOtherApps) { // If the dex files is used by other apps, we cannot use profile-guided compilation. return getNonProfileGuidedCompilerFilter(targetCompilerFilter); // If the dex files is used by other apps, apply the shared filter. return PackageManagerServiceCompilerMapping.getCompilerFilterForReason( PackageManagerService.REASON_SHARED); } return targetCompilerFilter; Loading services/core/java/com/android/server/pm/PackageManagerService.java +2 −1 Original line number Diff line number Diff line Loading @@ -578,8 +578,9 @@ public class PackageManagerService extends IPackageManager.Stub public static final int REASON_BACKGROUND_DEXOPT = 3; public static final int REASON_AB_OTA = 4; public static final int REASON_INACTIVE_PACKAGE_DOWNGRADE = 5; public static final int REASON_SHARED = 6; public static final int REASON_LAST = REASON_INACTIVE_PACKAGE_DOWNGRADE; public static final int REASON_LAST = REASON_SHARED; /** All dangerous permission names in the same order as the events in MetricsEvent */ private static final List<String> ALL_DANGEROUS_PERMISSIONS = Arrays.asList( services/core/java/com/android/server/pm/PackageManagerServiceCompilerMapping.java +13 −1 Original line number Diff line number Diff line Loading @@ -26,14 +26,19 @@ import dalvik.system.DexFile; public class PackageManagerServiceCompilerMapping { // Names for compilation reasons. static final String REASON_STRINGS[] = { "first-boot", "boot", "install", "bg-dexopt", "ab-ota", "inactive" "first-boot", "boot", "install", "bg-dexopt", "ab-ota", "inactive", "shared" }; static final int REASON_SHARED_INDEX = 6; // Static block to ensure the strings array is of the right length. static { if (PackageManagerService.REASON_LAST + 1 != REASON_STRINGS.length) { throw new IllegalStateException("REASON_STRINGS not correct"); } if (!"shared".equals(REASON_STRINGS[REASON_SHARED_INDEX])) { throw new IllegalStateException("REASON_STRINGS not correct because of shared index"); } } private static String getSystemPropertyName(int reason) { Loading @@ -52,11 +57,18 @@ public class PackageManagerServiceCompilerMapping { !DexFile.isValidCompilerFilter(sysPropValue)) { throw new IllegalStateException("Value \"" + sysPropValue +"\" not valid " + "(reason " + REASON_STRINGS[reason] + ")"); } else if (!isFilterAllowedForReason(reason, sysPropValue)) { throw new IllegalStateException("Value \"" + sysPropValue +"\" not allowed " + "(reason " + REASON_STRINGS[reason] + ")"); } return sysPropValue; } private static boolean isFilterAllowedForReason(int reason, String filter) { return reason != REASON_SHARED_INDEX || !DexFile.isProfileGuidedCompilerFilter(filter); } // Check that the properties are set and valid. // Note: this is done in a separate method so this class can be statically initialized. static void checkProperties() { Loading Loading
services/core/java/com/android/server/pm/PackageDexOptimizer.java +3 −2 Original line number Diff line number Diff line Loading @@ -474,8 +474,9 @@ public class PackageDexOptimizer { } if (isProfileGuidedCompilerFilter(targetCompilerFilter) && isUsedByOtherApps) { // If the dex files is used by other apps, we cannot use profile-guided compilation. return getNonProfileGuidedCompilerFilter(targetCompilerFilter); // If the dex files is used by other apps, apply the shared filter. return PackageManagerServiceCompilerMapping.getCompilerFilterForReason( PackageManagerService.REASON_SHARED); } return targetCompilerFilter; Loading
services/core/java/com/android/server/pm/PackageManagerService.java +2 −1 Original line number Diff line number Diff line Loading @@ -578,8 +578,9 @@ public class PackageManagerService extends IPackageManager.Stub public static final int REASON_BACKGROUND_DEXOPT = 3; public static final int REASON_AB_OTA = 4; public static final int REASON_INACTIVE_PACKAGE_DOWNGRADE = 5; public static final int REASON_SHARED = 6; public static final int REASON_LAST = REASON_INACTIVE_PACKAGE_DOWNGRADE; public static final int REASON_LAST = REASON_SHARED; /** All dangerous permission names in the same order as the events in MetricsEvent */ private static final List<String> ALL_DANGEROUS_PERMISSIONS = Arrays.asList(
services/core/java/com/android/server/pm/PackageManagerServiceCompilerMapping.java +13 −1 Original line number Diff line number Diff line Loading @@ -26,14 +26,19 @@ import dalvik.system.DexFile; public class PackageManagerServiceCompilerMapping { // Names for compilation reasons. static final String REASON_STRINGS[] = { "first-boot", "boot", "install", "bg-dexopt", "ab-ota", "inactive" "first-boot", "boot", "install", "bg-dexopt", "ab-ota", "inactive", "shared" }; static final int REASON_SHARED_INDEX = 6; // Static block to ensure the strings array is of the right length. static { if (PackageManagerService.REASON_LAST + 1 != REASON_STRINGS.length) { throw new IllegalStateException("REASON_STRINGS not correct"); } if (!"shared".equals(REASON_STRINGS[REASON_SHARED_INDEX])) { throw new IllegalStateException("REASON_STRINGS not correct because of shared index"); } } private static String getSystemPropertyName(int reason) { Loading @@ -52,11 +57,18 @@ public class PackageManagerServiceCompilerMapping { !DexFile.isValidCompilerFilter(sysPropValue)) { throw new IllegalStateException("Value \"" + sysPropValue +"\" not valid " + "(reason " + REASON_STRINGS[reason] + ")"); } else if (!isFilterAllowedForReason(reason, sysPropValue)) { throw new IllegalStateException("Value \"" + sysPropValue +"\" not allowed " + "(reason " + REASON_STRINGS[reason] + ")"); } return sysPropValue; } private static boolean isFilterAllowedForReason(int reason, String filter) { return reason != REASON_SHARED_INDEX || !DexFile.isProfileGuidedCompilerFilter(filter); } // Check that the properties are set and valid. // Note: this is done in a separate method so this class can be statically initialized. static void checkProperties() { Loading