From 5f9914e6b131e095807a3c56546ba2822309cac2 Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Wed, 8 Jul 2020 18:03:34 +0000 Subject: HwBinder.setTrebleTestingOverride To replace usages of environment variable TREBLE_TESTING_OVERRIDE which is problematic for some clients using setenv in a multi-threaded environment. Bug: 156668058 Test: hidl_test_java Change-Id: I7f7c51b9cfb01a81941154dc406a599cc6edd151 --- core/java/android/os/HwBinder.java | 9 +++++++++ core/jni/android_os_HwBinder.cpp | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/core/java/android/os/HwBinder.java b/core/java/android/os/HwBinder.java index 7c42c36e7747..64ab1d711765 100644 --- a/core/java/android/os/HwBinder.java +++ b/core/java/android/os/HwBinder.java @@ -95,6 +95,15 @@ public abstract class HwBinder implements IHwBinder { boolean retry) throws RemoteException, NoSuchElementException; + /** + * This allows getService to bypass the VINTF manifest for testing only. + * + * Disabled on user builds. + * @hide + */ + public static native final void setTrebleTestingOverride( + boolean testingOverride); + /** * Configures how many threads the process-wide hwbinder threadpool * has to process incoming requests. diff --git a/core/jni/android_os_HwBinder.cpp b/core/jni/android_os_HwBinder.cpp index b6427c9aa01c..48f33a6a3d77 100644 --- a/core/jni/android_os_HwBinder.cpp +++ b/core/jni/android_os_HwBinder.cpp @@ -339,6 +339,10 @@ static jobject JHwBinder_native_getService( return JHwRemoteBinder::NewObject(env, service); } +void JHwBinder_native_setTrebleTestingOverride(JNIEnv*, jclass, jboolean testingOverride) { + hardware::details::setTrebleTestingOverride(testingOverride); +} + void JHwBinder_native_configureRpcThreadpool(JNIEnv *, jclass, jlong maxThreads, jboolean callerWillJoin) { CHECK(maxThreads > 0); @@ -368,6 +372,9 @@ static JNINativeMethod gMethods[] = { { "getService", "(Ljava/lang/String;Ljava/lang/String;Z)L" PACKAGE_PATH "/IHwBinder;", (void *)JHwBinder_native_getService }, + { "setTrebleTestingOverride", "(Z)V", + (void *)JHwBinder_native_setTrebleTestingOverride }, + { "configureRpcThreadpool", "(JZ)V", (void *)JHwBinder_native_configureRpcThreadpool }, -- cgit v1.2.3-59-g8ed1b