libbinder: allow libbinder_ndk + libbinder.vendor

Due to messed up fuzzing linker namespaces, which are being fixed,
when fuzzers are configured as:
   - vendor: true,
   - shared_libs: [... "libbinder_ndk" ...],

then the runtime libraries used are like this:
   - /data/fuzz/x86_64/lib/vendor/libbinder.so
   - /system/lib64/libbinder_ndk.so

This is not a correct configuration. However, we can change the
way openDeclaredPassthroughHal is disabled in order to provide
the same ELF-level interface (that libbinder_ndk expects) from
libbinder as libbinder.vendor.

Future considertions:
- very soon, we need to remove this implicit requirement on the
  dependencies of ll-ndk libraries, by fixing fuzzer linker
  namespaces
- vendors should be able to dlopen same-process stable C HALs, as
  system can, but this requires additional apexd APIs available
  to vendor

Bugs: me
Test: run all service fuzzers, no startup crashes
Change-Id: Icf09de3ca048b542d7c22e6f4ca030977be3dff4
diff --git a/libs/binder/IServiceManager.cpp b/libs/binder/IServiceManager.cpp
index 17e522d..4111632 100644
--- a/libs/binder/IServiceManager.cpp
+++ b/libs/binder/IServiceManager.cpp
@@ -247,8 +247,11 @@
     }
 }
 
+#endif //__ANDROID_VNDK__
+
 void* openDeclaredPassthroughHal(const String16& interface, const String16& instance, int flag) {
-#if defined(__ANDROID__) && !defined(__ANDROID_RECOVERY__) && !defined(__ANDROID_NATIVE_BRIDGE__)
+#if defined(__ANDROID__) && !defined(__ANDROID_VENDOR__) && !defined(__ANDROID_RECOVERY__) && \
+        !defined(__ANDROID_NATIVE_BRIDGE__)
     sp<IServiceManager> sm = defaultServiceManager();
     String16 name = interface + String16("/") + instance;
     if (!sm->isDeclared(name)) {
@@ -268,8 +271,6 @@
 #endif
 }
 
-#endif //__ANDROID_VNDK__
-
 // ----------------------------------------------------------------------
 
 ServiceManagerShim::ServiceManagerShim(const sp<AidlServiceManager>& impl) {