Merge cherrypicks of ['googleplex-android-review.googlesource.com/24055427'] into udc-release.

Change-Id: Ie57cec36a378fa7fa7bb7c79b00adda562a9a1f1
diff --git a/.prebuilt_info/prebuilt_info_current_host-exports_current_zip.asciipb b/.prebuilt_info/prebuilt_info_current_host-exports_current_zip.asciipb
index 5ec76de..59787d3 100644
--- a/.prebuilt_info/prebuilt_info_current_host-exports_current_zip.asciipb
+++ b/.prebuilt_info/prebuilt_info_current_host-exports_current_zip.asciipb
@@ -1,6 +1,6 @@
 drops {
   android_build_drop {
-    build_id: "T1007089"
+    build_id: "T1007284"
     target: "train_build"
     source_file: "mainline-sdks/for-UpsideDownCake-build/current/com.google.android.art/host-exports/art-module-host-exports-current.zip"
   }
diff --git a/.prebuilt_info/prebuilt_info_current_sdk_current_zip.asciipb b/.prebuilt_info/prebuilt_info_current_sdk_current_zip.asciipb
index dcf4807..08068d1 100644
--- a/.prebuilt_info/prebuilt_info_current_sdk_current_zip.asciipb
+++ b/.prebuilt_info/prebuilt_info_current_sdk_current_zip.asciipb
@@ -1,6 +1,6 @@
 drops {
   android_build_drop {
-    build_id: "T1007089"
+    build_id: "T1007284"
     target: "train_build"
     source_file: "mainline-sdks/for-UpsideDownCake-build/current/com.google.android.art/sdk/art-module-sdk-current.zip"
   }
diff --git a/.prebuilt_info/prebuilt_info_current_test-exports_current_zip.asciipb b/.prebuilt_info/prebuilt_info_current_test-exports_current_zip.asciipb
index ce0896b..6d8a77b 100644
--- a/.prebuilt_info/prebuilt_info_current_test-exports_current_zip.asciipb
+++ b/.prebuilt_info/prebuilt_info_current_test-exports_current_zip.asciipb
@@ -1,6 +1,6 @@
 drops {
   android_build_drop {
-    build_id: "T1007089"
+    build_id: "T1007284"
     target: "train_build"
     source_file: "mainline-sdks/for-UpsideDownCake-build/current/com.google.android.art/test-exports/art-module-test-exports-current.zip"
   }
diff --git a/current/host-exports/include/art/libartbase/base/flags.h b/current/host-exports/include/art/libartbase/base/flags.h
index 4c38fba..4734a60 100644
--- a/current/host-exports/include/art/libartbase/base/flags.h
+++ b/current/host-exports/include/art/libartbase/base/flags.h
@@ -263,22 +263,23 @@
 
   // The reporting spec for regular apps. An example of valid value is "S,1,2,4,*".
   // See metrics::ReportingPeriodSpec for complete docs.
-  Flag<std::string> MetricsReportingSpec{"metrics.reporting-spec", "", FlagType::kDeviceConfig};
+  Flag<std::string> MetricsReportingSpec{
+      "metrics.reporting-spec", "1,5,30,60,600", FlagType::kDeviceConfig};
 
   // The reporting spec for the system server. See MetricsReportingSpec as well.
-  Flag<std::string> MetricsReportingSpecSystemServer{"metrics.reporting-spec-server", "",
-      FlagType::kDeviceConfig};
+  Flag<std::string> MetricsReportingSpecSystemServer{
+      "metrics.reporting-spec-server", "1,10,60,3600,*", FlagType::kDeviceConfig};
 
   // The mods that should report metrics. Together with MetricsReportingNumMods, they
   // dictate what percentage of the runtime execution will report metrics.
   // If the `session_id (a random number) % MetricsReportingNumMods < MetricsReportingMods`
   // then the runtime session will report metrics.
   //
-  // By default, the mods are 0, which means the reporting is disabled.
-  Flag<uint32_t> MetricsReportingMods{"metrics.reporting-mods", 0,
-      FlagType::kDeviceConfig};
-  Flag<uint32_t> MetricsReportingModsServer{"metrics.reporting-mods-server", 0,
-      FlagType::kDeviceConfig};
+  // By default, the mods are 2, which means that 2 out of #{reporting-num-mods} of Android sessions
+  // will be reported (with the default values this is 2/100 = 2%).
+  Flag<uint32_t> MetricsReportingMods{"metrics.reporting-mods", 2, FlagType::kDeviceConfig};
+  Flag<uint32_t> MetricsReportingModsServer{
+      "metrics.reporting-mods-server", 2, FlagType::kDeviceConfig};
 
   // See MetricsReportingMods docs.
   //
@@ -293,7 +294,7 @@
   // Whether or not we should write metrics to statsd.
   // Note that the actual write is still controlled by
   // MetricsReportingMods and MetricsReportingNumMods.
-  Flag<bool> MetricsWriteToStatsd{ "metrics.write-to-statsd", false, FlagType::kDeviceConfig};
+  Flag<bool> MetricsWriteToStatsd{"metrics.write-to-statsd", true, FlagType::kDeviceConfig};
 
   // Whether or not we should write metrics to logcat.
   // Note that the actual write is still controlled by
diff --git a/current/host-exports/snapshot-creation-build-number.txt b/current/host-exports/snapshot-creation-build-number.txt
index 42ea358..622b3bf 100644
--- a/current/host-exports/snapshot-creation-build-number.txt
+++ b/current/host-exports/snapshot-creation-build-number.txt
@@ -1 +1 @@
-10351819
\ No newline at end of file
+10484568
\ No newline at end of file
diff --git a/current/host-exports/x86_64/bin/dex2oat64 b/current/host-exports/x86_64/bin/dex2oat64
index 94e0144..dcf9283 100755
--- a/current/host-exports/x86_64/bin/dex2oat64
+++ b/current/host-exports/x86_64/bin/dex2oat64
Binary files differ
diff --git a/current/host-exports/x86_64/bin/dex2oatd64 b/current/host-exports/x86_64/bin/dex2oatd64
index 51eb2f2..8a01114 100755
--- a/current/host-exports/x86_64/bin/dex2oatd64
+++ b/current/host-exports/x86_64/bin/dex2oatd64
Binary files differ
diff --git a/current/host-exports/x86_64/bin/hiddenapi b/current/host-exports/x86_64/bin/hiddenapi
index 4e3d20f..66b01b8 100755
--- a/current/host-exports/x86_64/bin/hiddenapi
+++ b/current/host-exports/x86_64/bin/hiddenapi
Binary files differ
diff --git a/current/host-exports/x86_64/bin/oatdump b/current/host-exports/x86_64/bin/oatdump
index 573067e..2a611fa 100755
--- a/current/host-exports/x86_64/bin/oatdump
+++ b/current/host-exports/x86_64/bin/oatdump
Binary files differ
diff --git a/current/host-exports/x86_64/lib/libartbase.a b/current/host-exports/x86_64/lib/libartbase.a
index 24cfe26..b63ee9a 100644
--- a/current/host-exports/x86_64/lib/libartbase.a
+++ b/current/host-exports/x86_64/lib/libartbase.a
Binary files differ
diff --git a/current/host-exports/x86_64/lib/libartbase.so b/current/host-exports/x86_64/lib/libartbase.so
index 4d29a70..f3f9fbe 100755
--- a/current/host-exports/x86_64/lib/libartbase.so
+++ b/current/host-exports/x86_64/lib/libartbase.so
Binary files differ
diff --git a/current/sdk/android/arm/lib/libdexfile_static.a b/current/sdk/android/arm/lib/libdexfile_static.a
index 3b1688b..1947393 100644
--- a/current/sdk/android/arm/lib/libdexfile_static.a
+++ b/current/sdk/android/arm/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/android/arm64/lib/libdexfile_static.a b/current/sdk/android/arm64/lib/libdexfile_static.a
index 26bfce1..d5e7db1 100644
--- a/current/sdk/android/arm64/lib/libdexfile_static.a
+++ b/current/sdk/android/arm64/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/android/x86/lib/libdexfile_static.a b/current/sdk/android/x86/lib/libdexfile_static.a
index 261d075..414df85 100644
--- a/current/sdk/android/x86/lib/libdexfile_static.a
+++ b/current/sdk/android/x86/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/android/x86_64/lib/libdexfile_static.a b/current/sdk/android/x86_64/lib/libdexfile_static.a
index 29cf592..827030a 100644
--- a/current/sdk/android/x86_64/lib/libdexfile_static.a
+++ b/current/sdk/android/x86_64/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/common_os/include/art/libartbase/base/flags.h b/current/sdk/common_os/include/art/libartbase/base/flags.h
index 4c38fba..4734a60 100644
--- a/current/sdk/common_os/include/art/libartbase/base/flags.h
+++ b/current/sdk/common_os/include/art/libartbase/base/flags.h
@@ -263,22 +263,23 @@
 
   // The reporting spec for regular apps. An example of valid value is "S,1,2,4,*".
   // See metrics::ReportingPeriodSpec for complete docs.
-  Flag<std::string> MetricsReportingSpec{"metrics.reporting-spec", "", FlagType::kDeviceConfig};
+  Flag<std::string> MetricsReportingSpec{
+      "metrics.reporting-spec", "1,5,30,60,600", FlagType::kDeviceConfig};
 
   // The reporting spec for the system server. See MetricsReportingSpec as well.
-  Flag<std::string> MetricsReportingSpecSystemServer{"metrics.reporting-spec-server", "",
-      FlagType::kDeviceConfig};
+  Flag<std::string> MetricsReportingSpecSystemServer{
+      "metrics.reporting-spec-server", "1,10,60,3600,*", FlagType::kDeviceConfig};
 
   // The mods that should report metrics. Together with MetricsReportingNumMods, they
   // dictate what percentage of the runtime execution will report metrics.
   // If the `session_id (a random number) % MetricsReportingNumMods < MetricsReportingMods`
   // then the runtime session will report metrics.
   //
-  // By default, the mods are 0, which means the reporting is disabled.
-  Flag<uint32_t> MetricsReportingMods{"metrics.reporting-mods", 0,
-      FlagType::kDeviceConfig};
-  Flag<uint32_t> MetricsReportingModsServer{"metrics.reporting-mods-server", 0,
-      FlagType::kDeviceConfig};
+  // By default, the mods are 2, which means that 2 out of #{reporting-num-mods} of Android sessions
+  // will be reported (with the default values this is 2/100 = 2%).
+  Flag<uint32_t> MetricsReportingMods{"metrics.reporting-mods", 2, FlagType::kDeviceConfig};
+  Flag<uint32_t> MetricsReportingModsServer{
+      "metrics.reporting-mods-server", 2, FlagType::kDeviceConfig};
 
   // See MetricsReportingMods docs.
   //
@@ -293,7 +294,7 @@
   // Whether or not we should write metrics to statsd.
   // Note that the actual write is still controlled by
   // MetricsReportingMods and MetricsReportingNumMods.
-  Flag<bool> MetricsWriteToStatsd{ "metrics.write-to-statsd", false, FlagType::kDeviceConfig};
+  Flag<bool> MetricsWriteToStatsd{"metrics.write-to-statsd", true, FlagType::kDeviceConfig};
 
   // Whether or not we should write metrics to logcat.
   // Note that the actual write is still controlled by
diff --git a/current/sdk/compat_configs/libcore-platform-compat-config/libcore-platform-compat-config_meta.xml b/current/sdk/compat_configs/libcore-platform-compat-config/libcore-platform-compat-config_meta.xml
index 09eb368..d25692d 100644
--- a/current/sdk/compat_configs/libcore-platform-compat-config/libcore-platform-compat-config_meta.xml
+++ b/current/sdk/compat_configs/libcore-platform-compat-config/libcore-platform-compat-config_meta.xml
@@ -24,6 +24,9 @@
   <compat-change description="Since Android 14, {@link Matcher} becomes stricter for the replacement syntax and group references used by its methods, e.g. {@link #appendReplacement(StringBuffer, String)}. This flag is enabled for apps targeting Android 14+." enableSinceTargetSdk="34" id="247079863" name="DISALLOW_INVALID_GROUP_REFERENCE">
     <meta-data definedIn="java.util.regex.Matcher" sourcePosition="libcore/ojluni/src/main/java/java/util/regex/Matcher.java:881" />
   </compat-change>
+  <compat-change description="Since Android 14, {@link Pattern#splitAsStream(CharSequence)} return a stream of a single empty String as described in the API documentation. Previously, given an empty string input, the method returns an empty stream. This flag is enabled for apps targeting Android 14+." enableSinceTargetSdk="34" id="288845345" name="SPLIT_AS_STREAM_RETURNS_SINGLE_EMPTY_STRING">
+    <meta-data definedIn="java.util.regex.Pattern" sourcePosition="libcore/ojluni/src/main/java/java/util/regex/Pattern.java:5797" />
+  </compat-change>
   <compat-change description="Since Android 11, formatter classes, e.g. java.text.SimpleDateFormat, no longer provide English data when Locale.ROOT format is requested. Please use Locale.ENGLISH to format in English. Note that Locale.ROOT is used as language/country neutral locale or fallback locale, and does not guarantee to represent English locale. This flag is only for documentation and can't be overridden by app. Please use {@code targetSdkVersion} to enable the new behavior." enableAfterTargetSdk="29" id="159047832" name="USE_REAL_ROOT_LOCALE">
     <meta-data definedIn="libcore.icu.LocaleData" sourcePosition="libcore/luni/src/main/java/libcore/icu/LocaleData.java:77" />
   </compat-change>
diff --git a/current/sdk/linux_glibc/x86/lib/libdexfile_static.a b/current/sdk/linux_glibc/x86/lib/libdexfile_static.a
index f2cf145..8689fa8 100644
--- a/current/sdk/linux_glibc/x86/lib/libdexfile_static.a
+++ b/current/sdk/linux_glibc/x86/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a b/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a
index f34bd47..ece5a31 100644
--- a/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a
+++ b/current/sdk/linux_glibc/x86_64/lib/libdexfile_static.a
Binary files differ
diff --git a/current/sdk/snapshot-creation-build-number.txt b/current/sdk/snapshot-creation-build-number.txt
index 42ea358..622b3bf 100644
--- a/current/sdk/snapshot-creation-build-number.txt
+++ b/current/sdk/snapshot-creation-build-number.txt
@@ -1 +1 @@
-10351819
\ No newline at end of file
+10484568
\ No newline at end of file
diff --git a/current/test-exports/java/core-ojtests-public.jar b/current/test-exports/java/core-ojtests-public.jar
index 5e4bff6..9e385d0 100644
--- a/current/test-exports/java/core-ojtests-public.jar
+++ b/current/test-exports/java/core-ojtests-public.jar
Binary files differ
diff --git a/current/test-exports/java/core-tests.jar b/current/test-exports/java/core-tests.jar
index 52cd273..cf29970 100644
--- a/current/test-exports/java/core-tests.jar
+++ b/current/test-exports/java/core-tests.jar
Binary files differ
diff --git a/current/test-exports/snapshot-creation-build-number.txt b/current/test-exports/snapshot-creation-build-number.txt
index 42ea358..622b3bf 100644
--- a/current/test-exports/snapshot-creation-build-number.txt
+++ b/current/test-exports/snapshot-creation-build-number.txt
@@ -1 +1 @@
-10351819
\ No newline at end of file
+10484568
\ No newline at end of file