Add statically linked boot HAL impl in recovery

The default Treble boot HAL implementation currently can only work in
recovery on devices that specifically build their libhardware
implementation as a shared library for recovery.

This CL adds the option to statically link the libhardware
implementation in recovery instead of finding it using
hw_get_module(). This new approach allows devices that define
PRODUCT_STATIC_BOOT_CONTROL_HAL to begin using the Treble HAL in
recovery without requiring device-specific changes.

A previous version of this CL broke some device builds by omitting
libbase.recovery from LOCAL_SHARED_LIBRARIES. This version fixes that
issue.

Test: adb sideload succeeds
Bug: 78598708
Change-Id: I1c2ef7fa59575ac7975129f7544f741459b8540e
Signed-off-by: Connor O'Brien <connoro@google.com>
diff --git a/boot/1.0/default/Android.mk b/boot/1.0/default/Android.mk
new file mode 100644
index 0000000..7ccc4c8
--- /dev/null
+++ b/boot/1.0/default/Android.mk
@@ -0,0 +1,30 @@
+# TODO(connoro): Remove this file once we eliminate existing usage of
+# PRODUCT_STATIC_BOOT_CONTROL_HAL
+
+LOCAL_PATH := $(call my-dir)
+
+ifneq ($(strip $(PRODUCT_STATIC_BOOT_CONTROL_HAL)),)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := android.hardware.boot@1.0-impl-wrapper.recovery
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MULTILIB := first
+ifeq ($(TARGET_IS_64_BIT),true)
+LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/lib64/hw
+else
+LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/lib/hw
+endif
+LOCAL_SRC_FILES := BootControl.cpp
+LOCAL_CFLAGS := -DBOOT_CONTROL_RECOVERY
+LOCAL_SHARED_LIBRARIES := \
+    libbase.recovery \
+    liblog.recovery \
+    libhidlbase.recovery \
+    libhidltransport.recovery \
+    libhardware.recovery \
+    libutils.recovery \
+    android.hardware.boot@1.0.recovery
+LOCAL_STATIC_LIBRARIES := $(PRODUCT_STATIC_BOOT_CONTROL_HAL)
+include $(BUILD_SHARED_LIBRARY)
+
+endif