diff --git a/boot/1.0/default/Android.mk b/boot/1.0/default/Android.mk
deleted file mode 100644
index cd4b499..0000000
--- a/boot/1.0/default/Android.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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 := \
-    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
diff --git a/boot/1.0/default/BootControl.cpp b/boot/1.0/default/BootControl.cpp
index e36407f..9a90076 100644
--- a/boot/1.0/default/BootControl.cpp
+++ b/boot/1.0/default/BootControl.cpp
@@ -21,10 +21,6 @@
 #include <hardware/boot_control.h>
 #include "BootControl.h"
 
-#ifdef BOOT_CONTROL_RECOVERY
-extern const hw_module_t HAL_MODULE_INFO_SYM;
-#endif
-
 namespace android {
 namespace hardware {
 namespace boot {
@@ -96,23 +92,7 @@
     return Void();
 }
 
-#ifdef BOOT_CONTROL_RECOVERY
-IBootControl* HIDL_FETCH_IBootControl(const char * /* hal */) {
-    boot_control_module_t* module;
 
-    // For devices that don't build a standalone libhardware bootctrl impl for recovery,
-    // we simulate the hw_get_module() by accessing it from the current process directly.
-    const hw_module_t* hw_module = &HAL_MODULE_INFO_SYM;
-    if (!hw_module ||
-        strcmp(BOOT_CONTROL_HARDWARE_MODULE_ID, hw_module->id) != 0) {
-        ALOGE("Error loading boot_control HAL implementation: %d.", -EINVAL);
-        return nullptr;
-    }
-    module = reinterpret_cast<boot_control_module_t*>(const_cast<hw_module_t*>(hw_module));
-    module->init(module);
-    return new BootControl(module);
-}
-#else
 IBootControl* HIDL_FETCH_IBootControl(const char* /* hal */) {
     int ret = 0;
     boot_control_module_t* module = NULL;
@@ -126,7 +106,7 @@
     module->init(module);
     return new BootControl(module);
 }
-#endif
+
 } // namespace implementation
 }  // namespace V1_0
 }  // namespace boot
