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

Commit 1b8b1993 authored by Steven Moreland's avatar Steven Moreland Committed by android-build-merger
Browse files

Merge "HIDL: C++ Java parity" am: 475d9b28 am: 101aa88a am: 5b33f9b4

am: bbb6aea0

Change-Id: I5f678c629e73d4ed281990a620e2c92464d79259
parents 6a06c98c bbb6aea0
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -291,4 +291,13 @@ cc_library_shared {
        // GraphicsJNI.h includes hwui headers
        "libhwui",
    ],

    product_variables: {
        debuggable: {
            cflags: ["-D__ANDROID_DEBUGGABLE__"]
        },
        treble: {
            cflags: ["-D__ANDROID_TREBLE__"]
        },
    },
}
+15 −2
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@
#include "android_os_HwParcel.h"
#include "android_os_HwRemoteBinder.h"

#include <cstring>

#include <JNIHelp.h>
#include <android/hidl/manager/1.0/IServiceManager.h>
#include <android/hidl/base/1.0/IBase.h>
@@ -331,8 +333,19 @@ static jobject JHwBinder_native_getService(

    IServiceManager::Transport transport = transportRet;

    if (   transport != IServiceManager::Transport::EMPTY
        && transport != IServiceManager::Transport::HWBINDER) {
#ifdef __ANDROID_TREBLE__
#ifdef __ANDROID_DEBUGGABLE__
    const char* testingOverride = std::getenv("TREBLE_TESTING_OVERRIDE");
    const bool vintfLegacy = (transport == IServiceManager::Transport::EMPTY)
            && testingOverride && !strcmp(testingOverride, "true");
#else // __ANDROID_TREBLE__ but not __ANDROID_DEBUGGABLE__
    const bool vintfLegacy = false;
#endif // __ANDROID_DEBUGGABLE__
#else // not __ANDROID_TREBLE__
    const bool vintfLegacy = (transport == IServiceManager::Transport::EMPTY);
#endif // __ANDROID_TREBLE__";

    if (transport != IServiceManager::Transport::HWBINDER && !vintfLegacy) {
        LOG(ERROR) << "service " << ifaceName << " declares transport method "
                   << toString(transport) << " but framework expects hwbinder.";
        signalExceptionForError(env, UNKNOWN_ERROR, true /* canThrowRemoteException */);