Move stuff from recovery into librecovery.
Move most source files into librecovery so they become testable. Only
recovery_main.cpp and logging.cpp are built into recovery module, as
they perform one-time setup (e.g. setting up logger).
Test: `mmma -j bootable/recovery` with
aosp_{angler,bullhead,fugu,dragon,marlin}-userdebug
Test: recovery_host_test; recovery_unit_test; recovery_component_test;
recovery_manual_test
Test: Build and boot into recovery image on angler.
Change-Id: Ic4444f87a2f123557c71085f81dc2b2764c05ed8
(cherry picked from commit bf4c006d7bc8a4517c82399bbffd9cb09971c0b4)
diff --git a/Android.mk b/Android.mk
index 09feba2..efd7462 100644
--- a/Android.mk
+++ b/Android.mk
@@ -97,61 +97,8 @@
include $(BUILD_STATIC_LIBRARY)
-# librecovery (static library)
-# ===============================
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
- install.cpp
-
-LOCAL_CFLAGS := $(recovery_common_cflags)
-
-ifeq ($(AB_OTA_UPDATER),true)
- LOCAL_CFLAGS += -DAB_OTA_UPDATER=1
-endif
-
-LOCAL_MODULE := librecovery
-
-LOCAL_STATIC_LIBRARIES := \
- libminui \
- libotautil \
- libvintf_recovery \
- libcrypto_utils \
- libcrypto \
- libbase \
- libziparchive \
-
-include $(BUILD_STATIC_LIBRARY)
-
-# recovery (static executable)
-# ===============================
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
- adb_install.cpp \
- fuse_sdcard_provider.cpp \
- logging.cpp \
- recovery.cpp \
- recovery_main.cpp \
- roots.cpp \
-
-LOCAL_MODULE := recovery
-
-LOCAL_FORCE_STATIC_EXECUTABLE := true
-
-LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
-
-# Cannot link with LLD: undefined symbol: UsbNoPermissionsLongHelpText
-# http://b/77543887, lld does not handle -Wl,--gc-sections as well as ld.
-LOCAL_USE_CLANG_LLD := false
-
-LOCAL_CFLAGS := $(recovery_common_cflags)
-
-LOCAL_C_INCLUDES += \
- system/vold \
-
# Health HAL dependency
-LOCAL_STATIC_LIBRARIES := \
+health_hal_static_libraries := \
android.hardware.health@2.0-impl \
android.hardware.health@2.0 \
android.hardware.health@1.0 \
@@ -163,8 +110,7 @@
libvndksupport \
libbatterymonitor
-LOCAL_STATIC_LIBRARIES += \
- librecovery \
+librecovery_static_libraries := \
$(TARGET_RECOVERY_UI_LIB) \
libbootloader_message \
libfusesideload \
@@ -173,8 +119,8 @@
libminui \
libverifier \
libotautil \
+ $(health_hal_static_libraries) \
libasyncio \
- libbatterymonitor \
libcrypto_utils \
libcrypto \
libext4_utils \
@@ -193,6 +139,57 @@
libselinux \
libz \
+# librecovery (static library)
+# ===============================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+ adb_install.cpp \
+ fuse_sdcard_provider.cpp \
+ install.cpp \
+ recovery.cpp \
+ roots.cpp \
+
+LOCAL_C_INCLUDES := \
+ system/vold \
+
+LOCAL_CFLAGS := $(recovery_common_cflags)
+
+ifeq ($(AB_OTA_UPDATER),true)
+ LOCAL_CFLAGS += -DAB_OTA_UPDATER=1
+endif
+
+LOCAL_MODULE := librecovery
+
+LOCAL_STATIC_LIBRARIES := \
+ $(librecovery_static_libraries)
+
+include $(BUILD_STATIC_LIBRARY)
+
+# recovery (static executable)
+# ===============================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+ logging.cpp \
+ recovery_main.cpp \
+
+LOCAL_MODULE := recovery
+
+LOCAL_FORCE_STATIC_EXECUTABLE := true
+
+LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
+
+# Cannot link with LLD: undefined symbol: UsbNoPermissionsLongHelpText
+# http://b/77543887, lld does not handle -Wl,--gc-sections as well as ld.
+LOCAL_USE_CLANG_LLD := false
+
+LOCAL_CFLAGS := $(recovery_common_cflags)
+
+LOCAL_STATIC_LIBRARIES := \
+ librecovery \
+ $(librecovery_static_libraries)
+
LOCAL_HAL_STATIC_LIBRARIES := libhealthd
LOCAL_REQUIRED_MODULES := \
diff --git a/tests/Android.mk b/tests/Android.mk
index cdc5b52..efe46b8 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -150,6 +150,18 @@
libbrotli \
$(tune2fs_static_libraries)
+health_hal_static_libraries := \
+ android.hardware.health@2.0-impl \
+ android.hardware.health@2.0 \
+ android.hardware.health@1.0 \
+ android.hardware.health@1.0-convert \
+ libhealthstoragedefault \
+ libhidltransport \
+ libhidlbase \
+ libhwbinder_noltopgo \
+ libvndksupport \
+ libbatterymonitor
+
librecovery_static_libraries := \
librecovery \
$(TARGET_RECOVERY_UI_LIB) \
@@ -160,8 +172,8 @@
libminui \
libverifier \
libotautil \
+ $(health_hal_static_libraries) \
libasyncio \
- libbatterymonitor \
libcrypto_utils \
libcrypto \
libext4_utils \
@@ -174,8 +186,8 @@
libtinyxml2 \
libziparchive \
libbase \
- libcutils \
libutils \
+ libcutils \
liblog \
libselinux \
libz \