diff options
author | Devin Moore <devinmoore@google.com> | 2022-11-14 19:13:56 +0000 |
---|---|---|
committer | Devin Moore <devinmoore@google.com> | 2022-11-17 17:47:52 +0000 |
commit | 690e02aa2c89d6bb79b4127de960c72595983fb8 (patch) | |
tree | bea931a7fb94a75fde75530049b77ab873c0e2a2 | |
parent | 8e965d90de1a5326213a0371fe87e6970d55ac68 (diff) | |
download | libhardware-690e02aa2c89d6bb79b4127de960c72595983fb8.tar.gz |
Make libhardware host_supported
This requires dropping a header file and avoiding a missing strlcpy API.
Required for host_supported fuzzers that include this lib.
Test: libsensorserviceaidl_fuzzer
Bug: 205764765
Change-Id: Ib1d2851e915ed87ef2936a044e7a72bab3077f40
-rw-r--r-- | Android.bp | 4 | ||||
-rw-r--r-- | hardware.c | 9 |
2 files changed, 11 insertions, 2 deletions
@@ -86,6 +86,7 @@ cc_library_shared { header_libs: ["libhardware_headers"], export_header_lib_headers: ["libhardware_headers"], + host_supported: true, recovery_available: true, vendor_available: true, vndk: { @@ -93,6 +94,9 @@ cc_library_shared { support_system_process: true, }, target: { + host: { + exclude_shared_libs: ["libvndksupport"], + }, recovery: { exclude_shared_libs: ["libvndksupport"], }, @@ -30,7 +30,7 @@ #define LOG_TAG "HAL" #include <log/log.h> -#if !defined(__ANDROID_RECOVERY__) +#if !defined(__ANDROID_RECOVERY__) && defined(__ANDROID__) #include <vndksupport/linker.h> #endif @@ -97,7 +97,7 @@ static int load(const char *id, */ handle = dlopen(path, RTLD_NOW); } else { -#if defined(__ANDROID_RECOVERY__) +#if defined(__ANDROID_RECOVERY__) || !defined(__ANDROID__) handle = dlopen(path, RTLD_NOW); #else handle = android_load_sphal_library(path, RTLD_NOW); @@ -206,8 +206,13 @@ int hw_get_module_by_class(const char *class_id, const char *inst, if (inst) snprintf(name, PATH_MAX, "%s.%s", class_id, inst); +#if defined(__ANDROID__) else strlcpy(name, class_id, PATH_MAX); +#else + else + snprintf(name, PATH_MAX, "%s", class_id); +#endif /* * Here we rely on the fact that calling dlopen multiple times on |