Merge changes Ib7227f18,I96926932,I46476112,I2c17b1e4,I47ee9e39, ...

* changes:
  camera: replace `-Wno-error` flag with `-Werror`
  camera: fix `-Wunused-function` compiler warnings
  camera: fix `-Wpessimizing-move` compiler warnings
  camera: fix `-Wmissing-field-initializers` compiler warnings
  camera: fix `-Wsign-compare` compiler warnings
  camera: fix `-Wunused-variable` compiler warnings
  camera: fix `-Wunused-private-field` compiler warnings
  camera: fix `-Wreorder` compiler warnings
  camera: fix `-Wunused-parameter` compiler warnings
  camera: fix `-Wformat` compiler warnings
  camera: fix `-Wmacro-redefined` compiler warnings
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();