Restrict register_dalvik_system_VMRuntime to targetSdkVersion<=34 am: 8e18c45e19

Original change: https://android-review.googlesource.com/c/platform/art/+/2965305

Change-Id: I0aa025e68641400da08ce619db58cfb9a09cb931
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/runtime/native/dalvik_system_VMRuntime.cc b/runtime/native/dalvik_system_VMRuntime.cc
index 3f71c31..593b98d 100644
--- a/runtime/native/dalvik_system_VMRuntime.cc
+++ b/runtime/native/dalvik_system_VMRuntime.cc
@@ -590,6 +590,15 @@
 };
 
 void register_dalvik_system_VMRuntime(JNIEnv* env) {
+  if (Runtime::Current()->GetTargetSdkVersion() <= static_cast<uint32_t>(SdkVersion::kU)) {
+    real_register_dalvik_system_VMRuntime(env);
+  } else {
+    Runtime::Current()->Abort(
+        "Call to internal function 'register_dalvik_system_VMRuntime' is not allowed");
+  }
+}
+
+void real_register_dalvik_system_VMRuntime(JNIEnv* env) {
   REGISTER_NATIVE_METHODS("dalvik/system/VMRuntime");
 }
 
diff --git a/runtime/native/dalvik_system_VMRuntime.h b/runtime/native/dalvik_system_VMRuntime.h
index ad1fcbe..3876a60 100644
--- a/runtime/native/dalvik_system_VMRuntime.h
+++ b/runtime/native/dalvik_system_VMRuntime.h
@@ -23,9 +23,13 @@
 
 namespace art HIDDEN {
 
-// TODO(260881207): should be HIDDEN, but some apps fail to launch
-// (e.g. b/319255249)
+// TODO(260881207): register_dalvik_system_VMRuntime should be HIDDEN,
+// but some apps fail to launch (e.g. b/319255249).
+// The function is still exported for now, but it does a targetSdk check
+// and aborts for SdkVersion after U. Libart code should use
+// `real_register...` until exported function is removed.
 EXPORT void register_dalvik_system_VMRuntime(JNIEnv* env);
+void real_register_dalvik_system_VMRuntime(JNIEnv* env);
 
 }  // namespace art
 
diff --git a/runtime/runtime.cc b/runtime/runtime.cc
index 4279e0e..b7587c0 100644
--- a/runtime/runtime.cc
+++ b/runtime/runtime.cc
@@ -2381,7 +2381,7 @@
   register_dalvik_system_DexFile(env);
   register_dalvik_system_BaseDexClassLoader(env);
   register_dalvik_system_VMDebug(env);
-  register_dalvik_system_VMRuntime(env);
+  real_register_dalvik_system_VMRuntime(env);
   register_dalvik_system_VMStack(env);
   register_dalvik_system_ZygoteHooks(env);
   register_java_lang_Class(env);