Allow libhardware to be used in recovery
The default boot ctrl implementation depends
on libhardware.
Bug: 78793464
Test: Compiles, can load bootctrl in recovery
Change-Id: I9c8aa8b00b9b81f11736de13c85973e113056e69
diff --git a/Android.bp b/Android.bp
index 4766b71..ce4214e 100644
--- a/Android.bp
+++ b/Android.bp
@@ -16,7 +16,17 @@
],
export_include_dirs: ["include"],
+ recovery_available: true,
vendor_available: true,
+ target: {
+ recovery: {
+ exclude_header_libs: [
+ "libaudio_system_headers",
+ "libbluetooth-types-header",
+ ],
+ },
+ },
+
}
cc_library_shared {
@@ -38,9 +48,15 @@
header_libs: ["libhardware_headers"],
export_header_lib_headers: ["libhardware_headers"],
+ recovery_available: true,
vendor_available: true,
vndk: {
enabled: true,
support_system_process: true,
},
+ target: {
+ recovery: {
+ exclude_shared_libs: ["libvndksupport"],
+ },
+ },
}
diff --git a/hardware.c b/hardware.c
index bd55087..40ae1d1 100644
--- a/hardware.c
+++ b/hardware.c
@@ -29,7 +29,9 @@
#define LOG_TAG "HAL"
#include <log/log.h>
+#if !defined(__ANDROID_RECOVERY__)
#include <vndksupport/linker.h>
+#endif
/** Base path of the hal modules */
#if defined(__LP64__)
@@ -94,7 +96,11 @@
*/
handle = dlopen(path, RTLD_NOW);
} else {
+#if defined(__ANDROID_RECOVERY__)
+ handle = dlopen(path, RTLD_NOW);
+#else
handle = android_load_sphal_library(path, RTLD_NOW);
+#endif
}
if (handle == NULL) {
char const *err_str = dlerror();