diff options
| author | 2017-05-11 09:43:44 +0000 | |
|---|---|---|
| committer | 2017-05-11 09:43:49 +0000 | |
| commit | a6a73ff55aefc13a51603ad18f3e22ef77425cc3 (patch) | |
| tree | 34abe1531492ff550b645fa1dfd92ba50e169a0a | |
| parent | 0996c7a70b0d469669eaaa1b7d3545832e8ce207 (diff) | |
| parent | 9b5a06037f80dff46218b1611862c1fd2b3df8b2 (diff) | |
Merge "Handle safe mode in PackageManager." into oc-dev
3 files changed, 6 insertions, 16 deletions
diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java index 59bce8fc68db..8ca7b960e253 100644 --- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java +++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java @@ -56,7 +56,9 @@ import static com.android.server.pm.InstructionSets.getAppDexInstructionSets; import static com.android.server.pm.InstructionSets.getDexCodeInstructionSets; import static com.android.server.pm.PackageManagerService.WATCHDOG_TIMEOUT; -import static com.android.server.pm.PackageManagerServiceCompilerMapping.getNonProfileGuidedCompilerFilter; + +import static dalvik.system.DexFile.getNonProfileGuidedCompilerFilter; +import static dalvik.system.DexFile.getSafeModeCompilerFilter; import static dalvik.system.DexFile.isProfileGuidedCompilerFilter; /** @@ -381,13 +383,7 @@ public class PackageDexOptimizer { int flags = info.flags; boolean vmSafeMode = (flags & ApplicationInfo.FLAG_VM_SAFE_MODE) != 0; if (vmSafeMode) { - // For the compilation, it doesn't really matter what we return here because installd - // will replace the filter with 'quicken' anyway. - // However, we return a non profile guided filter so that we simplify the logic of - // merging profiles. - // TODO(calin): safe mode path could be simplified if we pass 'quicken' from - // here rather than letting installd decide on the filter. - return getNonProfileGuidedCompilerFilter(targetCompilerFilter); + return getSafeModeCompilerFilter(targetCompilerFilter); } if (isProfileGuidedCompilerFilter(targetCompilerFilter) && isUsedByOtherApps) { diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index f1e4e12f4ce5..e4b5241c4835 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -97,11 +97,12 @@ import static com.android.server.pm.InstructionSets.getPreferredInstructionSet; import static com.android.server.pm.InstructionSets.getPrimaryInstructionSet; import static com.android.server.pm.PackageManagerServiceCompilerMapping.getCompilerFilterForReason; import static com.android.server.pm.PackageManagerServiceCompilerMapping.getDefaultCompilerFilter; -import static com.android.server.pm.PackageManagerServiceCompilerMapping.getNonProfileGuidedCompilerFilter; import static com.android.server.pm.PermissionsState.PERMISSION_OPERATION_FAILURE; import static com.android.server.pm.PermissionsState.PERMISSION_OPERATION_SUCCESS; import static com.android.server.pm.PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED; +import static dalvik.system.DexFile.getNonProfileGuidedCompilerFilter; + import android.Manifest; import android.annotation.NonNull; import android.annotation.Nullable; diff --git a/services/core/java/com/android/server/pm/PackageManagerServiceCompilerMapping.java b/services/core/java/com/android/server/pm/PackageManagerServiceCompilerMapping.java index 284bb3f1f69b..ec248f5719b3 100644 --- a/services/core/java/com/android/server/pm/PackageManagerServiceCompilerMapping.java +++ b/services/core/java/com/android/server/pm/PackageManagerServiceCompilerMapping.java @@ -111,11 +111,4 @@ public class PackageManagerServiceCompilerMapping { return value; } - - /** - * Return the non-profile-guided filter corresponding to the given filter. - */ - public static String getNonProfileGuidedCompilerFilter(String filter) { - return DexFile.getNonProfileGuidedCompilerFilter(filter); - } } |