Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d258e68c authored by Yifan Hong's avatar Yifan Hong
Browse files

binder: recovery variant does not use libandroid_runtime_vm_headers

There's no Android Runtime in recovery anyways.

Test: builds
Change-Id: Iff202493241932ceb92988580150d6338058bc94
parent 8347ab59
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -147,6 +147,11 @@ cc_library {
                "UtilsHost.cpp",
            ],
        },
        recovery: {
            exclude_header_libs: [
                "libandroid_runtime_vm_headers",
            ],
        },
    },

    aidl: {
+10 −3
Original line number Diff line number Diff line
@@ -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;
@@ -301,6 +304,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 {
@@ -353,6 +359,7 @@ private:
        return fn();
    }
};
#endif
} // namespace

void RpcSession::join(sp<RpcSession>&& session, PreJoinSetupResult&& setupResult) {
@@ -360,7 +367,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);