diff options
author | 2021-11-02 17:39:00 +0000 | |
---|---|---|
committer | 2021-11-02 17:39:00 +0000 | |
commit | fc34af194b104e3861d70309b53a2769337e1c12 (patch) | |
tree | fc4e23ccd057ee2101c9fadb536a53a7372144ed | |
parent | 9c8c3be733a264c86f2d14973d5678bf99980a74 (diff) | |
parent | d258e68c77ae9b7eee640dcc60eb1e6eda0100df (diff) |
Merge "binder: recovery variant does not use libandroid_runtime_vm_headers"
-rw-r--r-- | libs/binder/Android.bp | 5 | ||||
-rw-r--r-- | libs/binder/RpcSession.cpp | 13 |
2 files changed, 15 insertions, 3 deletions
diff --git a/libs/binder/Android.bp b/libs/binder/Android.bp index dc153c925f..8270ae5ce7 100644 --- a/libs/binder/Android.bp +++ b/libs/binder/Android.bp @@ -149,6 +149,11 @@ cc_library { "UtilsHost.cpp", ], }, + recovery: { + exclude_header_libs: [ + "libandroid_runtime_vm_headers", + ], + }, }, aidl: { diff --git a/libs/binder/RpcSession.cpp b/libs/binder/RpcSession.cpp index 53c9b78a7a..a5a2bb1017 100644 --- a/libs/binder/RpcSession.cpp +++ b/libs/binder/RpcSession.cpp @@ -29,13 +29,11 @@ #include <android-base/hex.h> #include <android-base/macros.h> #include <android-base/scopeguard.h> -#include <android_runtime/vm.h> #include <binder/BpBinder.h> #include <binder/Parcel.h> #include <binder/RpcServer.h> #include <binder/RpcTransportRaw.h> #include <binder/Stability.h> -#include <jni.h> #include <utils/String8.h> #include "FdTrigger.h" @@ -48,6 +46,11 @@ extern "C" pid_t gettid(); #endif +#ifndef __ANDROID_RECOVERY__ +#include <android_runtime/vm.h> +#include <jni.h> +#endif + namespace android { using base::unique_fd; @@ -315,6 +318,9 @@ RpcSession::PreJoinSetupResult RpcSession::preJoinSetup( } namespace { +#ifdef __ANDROID_RECOVERY__ +class JavaThreadAttacher {}; +#else // RAII object for attaching / detaching current thread to JVM if Android Runtime exists. If // Android Runtime doesn't exist, no-op. class JavaThreadAttacher { @@ -367,6 +373,7 @@ private: return fn(); } }; +#endif } // namespace void RpcSession::join(sp<RpcSession>&& session, PreJoinSetupResult&& setupResult) { @@ -374,7 +381,7 @@ void RpcSession::join(sp<RpcSession>&& session, PreJoinSetupResult&& setupResult if (setupResult.status == OK) { LOG_ALWAYS_FATAL_IF(!connection, "must have connection if setup succeeded"); - JavaThreadAttacher javaThreadAttacher; + [[maybe_unused]] JavaThreadAttacher javaThreadAttacher; while (true) { status_t status = session->state()->getAndExecuteCommand(connection, session, RpcState::CommandType::ANY); |