Merge "Use new image location for JIT Zygote."
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index d0e8fd3..b47b7e3 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -209,9 +209,11 @@
static const char* PROFILE_BOOT_CLASS_PATH = "profilebootclasspath";
// Feature flag name for running the JIT in Zygote experiment, b/119800099.
-static const char* ENABLE_APEX_IMAGE = "enable_apex_image";
-// Flag to pass to the runtime when using the apex image.
-static const char* kApexImageOption = "-Ximage:/system/framework/apex.art";
+// TODO: Rename the server-level flag or remove.
+static const char* ENABLE_JITZYGOTE_IMAGE = "enable_apex_image";
+// Flag to pass to the runtime when using the JIT Zygote image.
+static const char* kJitZygoteImageOption =
+ "-Ximage:boot.art:/nonx/boot-framework.art!/system/etc/boot-image.prof";
// Feature flag name for disabling lock profiling.
static const char* DISABLE_LOCK_PROFILING = "disable_lock_profiling";
@@ -689,16 +691,16 @@
addOption("-Xjitsaveprofilinginfo");
}
- std::string use_apex_image_flag =
- server_configurable_flags::GetServerConfigurableFlag(RUNTIME_NATIVE_BOOT_NAMESPACE,
- ENABLE_APEX_IMAGE,
- /*default_value=*/ "");
+ std::string use_jitzygote_image_flag =
+ server_configurable_flags::GetServerConfigurableFlag(RUNTIME_NATIVE_BOOT_NAMESPACE,
+ ENABLE_JITZYGOTE_IMAGE,
+ /*default_value=*/"");
// Use the APEX boot image for boot class path profiling to get JIT samples on BCP methods.
// Also use the APEX boot image if it's explicitly enabled via configuration flag.
- const bool use_apex_image = profile_boot_class_path || (use_apex_image_flag == "true");
+ const bool use_apex_image = profile_boot_class_path || (use_jitzygote_image_flag == "true");
if (use_apex_image) {
- addOption(kApexImageOption);
- ALOGI("Using Apex boot image: '%s'\n", kApexImageOption);
+ ALOGI("Using JIT Zygote image: '%s'\n", kJitZygoteImageOption);
+ addOption(kJitZygoteImageOption);
} else if (parseRuntimeOption("dalvik.vm.boot-image", bootImageBuf, "-Ximage:")) {
ALOGI("Using dalvik.vm.boot-image: '%s'\n", bootImageBuf);
} else {
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 31e68e8..f17cd45 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -3402,8 +3402,8 @@
<!-- True if assistant app should be pinned via Pinner Service -->
<bool name="config_pinnerAssistantApp">false</bool>
- <!-- List of files pinned by the Pinner Service with the apex boot image b/119800099 -->
- <string-array translatable="false" name="config_apexBootImagePinnerServiceFiles">
+ <!-- List of files pinned by the Pinner Service with the JIT Zygote boot image b/119800099 -->
+ <string-array translatable="false" name="config_jitzygoteBootImagePinnerServiceFiles">
</string-array>
<!-- Number of days preloaded file cache should be preserved on a device before it can be
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 2453bb1..2dd62c17 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -3037,7 +3037,7 @@
<java-symbol type="bool" name="config_pinnerCameraApp" />
<java-symbol type="bool" name="config_pinnerHomeApp" />
<java-symbol type="bool" name="config_pinnerAssistantApp" />
- <java-symbol type="array" name="config_apexBootImagePinnerServiceFiles" />
+ <java-symbol type="array" name="config_jitzygoteBootImagePinnerServiceFiles" />
<java-symbol type="string" name="config_doubleTouchGestureEnableFile" />
diff --git a/services/core/java/com/android/server/PinnerService.java b/services/core/java/com/android/server/PinnerService.java
index 135f6f3..6fb7b26 100644
--- a/services/core/java/com/android/server/PinnerService.java
+++ b/services/core/java/com/android/server/PinnerService.java
@@ -272,10 +272,11 @@
private void handlePinOnStart() {
final String bootImage = SystemProperties.get("dalvik.vm.boot-image", "");
String[] filesToPin = null;
- if (bootImage.endsWith("apex.art")) {
- // Use the files listed for that specific boot image
+ if (bootImage.endsWith("boot-image.prof")) {
+ // Use the files listed for that specific boot image.
+ // TODO: find a better way to know we're using the JIT zygote configuration.
filesToPin = mContext.getResources().getStringArray(
- com.android.internal.R.array.config_apexBootImagePinnerServiceFiles);
+ com.android.internal.R.array.config_jitzygoteBootImagePinnerServiceFiles);
} else {
// Files to pin come from the overlay and can be specified per-device config
filesToPin = mContext.getResources().getStringArray(