# Copyright (C) 2007 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. LOCAL_PATH := $(call my-dir) # Needed by build/make/core/Makefile. RECOVERY_API_VERSION := 3 RECOVERY_FSTAB_VERSION := 2 # TARGET_RECOVERY_UI_LIB should be one of librecovery_ui_{default,wear,vr} or a device-specific # module that defines make_device() and the exact RecoveryUI class for the target. It defaults to # librecovery_ui_default, which uses ScreenRecoveryUI. TARGET_RECOVERY_UI_LIB ?= librecovery_ui_default recovery_common_cflags := \ -Wall \ -Werror \ -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION) # librecovery_ui_ext (shared library) # =================================== include $(CLEAR_VARS) LOCAL_MODULE := librecovery_ui_ext # LOCAL_MODULE_PATH for shared libraries is unsupported in multiarch builds. LOCAL_MULTILIB := first ifeq ($(TARGET_IS_64_BIT),true) LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/lib64 else LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/lib endif LOCAL_WHOLE_STATIC_LIBRARIES := \ $(TARGET_RECOVERY_UI_LIB) LOCAL_SHARED_LIBRARIES := \ libbase \ liblog \ librecovery_ui include $(BUILD_SHARED_LIBRARY) # librecovery_ui (shared library) # =============================== include $(CLEAR_VARS) LOCAL_SRC_FILES := \ device.cpp \ screen_ui.cpp \ ui.cpp \ vr_ui.cpp \ wear_ui.cpp LOCAL_MODULE := librecovery_ui LOCAL_CFLAGS := $(recovery_common_cflags) LOCAL_MULTILIB := first ifeq ($(TARGET_IS_64_BIT),true) LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/lib64 else LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/lib endif LOCAL_STATIC_LIBRARIES := \ libminui \ libotautil \ LOCAL_SHARED_LIBRARIES := \ libbase \ libpng \ libz \ include $(BUILD_SHARED_LIBRARY) # librecovery_ui (static library) # =============================== include $(CLEAR_VARS) LOCAL_SRC_FILES := \ device.cpp \ screen_ui.cpp \ ui.cpp \ vr_ui.cpp \ wear_ui.cpp LOCAL_MODULE := librecovery_ui LOCAL_CFLAGS := $(recovery_common_cflags) LOCAL_STATIC_LIBRARIES := \ libminui \ libotautil \ LOCAL_SHARED_LIBRARIES := \ libbase \ libpng \ libz \ include $(BUILD_STATIC_LIBRARY) # Health HAL dependency 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 := \ libfusesideload \ libminadbd \ libminui \ libverifier \ libotautil \ $(health_hal_static_libraries) \ libvintf_recovery \ libvintf \ librecovery_shared_libraries := \ libasyncio \ libbase \ libbootloader_message \ libcrypto \ libcrypto_utils \ libcutils \ libext4_utils \ libfs_mgr \ libhidl-gen-utils \ liblog \ libpng \ libselinux \ libtinyxml2 \ libutils \ libz \ libziparchive \ # librecovery (static library) # =============================== include $(CLEAR_VARS) LOCAL_SRC_FILES := \ adb_install.cpp \ fsck_unshare_blocks.cpp \ fuse_sdcard_provider.cpp \ install.cpp \ recovery.cpp \ roots.cpp \ LOCAL_C_INCLUDES := \ system/vold \ LOCAL_CFLAGS := $(recovery_common_cflags) LOCAL_MODULE := librecovery LOCAL_STATIC_LIBRARIES := \ $(librecovery_static_libraries) LOCAL_SHARED_LIBRARIES := \ $(librecovery_shared_libraries) include $(BUILD_STATIC_LIBRARY) # recovery (static executable) # =============================== include $(CLEAR_VARS) LOCAL_SRC_FILES := \ logging.cpp \ recovery_main.cpp \ LOCAL_MODULE := recovery LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/bin # 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_ui_default \ $(librecovery_static_libraries) LOCAL_SHARED_LIBRARIES := \ librecovery_ui \ $(librecovery_shared_libraries) LOCAL_HAL_STATIC_LIBRARIES := libhealthd LOCAL_REQUIRED_MODULES := \ e2fsdroid.recovery \ mke2fs.recovery \ mke2fs.conf ifeq ($(TARGET_USERIMAGES_USE_F2FS),true) ifeq ($(HOST_OS),linux) LOCAL_REQUIRED_MODULES += \ sload.f2fs \ mkfs.f2fs endif endif # e2fsck is needed for adb remount -R. ifeq ($(BOARD_EXT4_SHARE_DUP_BLOCKS),true) ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) LOCAL_REQUIRED_MODULES += \ e2fsck_static endif endif ifeq ($(BOARD_CACHEIMAGE_PARTITION_SIZE),) LOCAL_REQUIRED_MODULES += \ recovery-persist \ recovery-refresh endif LOCAL_REQUIRED_MODULES += \ librecovery_ui_ext # TODO(b/110380063): Explicitly install the following shared libraries to recovery, until `recovery` # module is built with Soong (with `recovery: true` flag). LOCAL_REQUIRED_MODULES += \ libasyncio.recovery \ libbase.recovery \ libbootloader_message.recovery \ libcrypto.recovery \ libcrypto_utils.recovery \ libcutils.recovery \ libext4_utils.recovery \ libfs_mgr.recovery \ libhidl-gen-utils.recovery \ liblog.recovery \ libpng.recovery \ libselinux.recovery \ libsparse.recovery \ libtinyxml2.recovery \ libutils.recovery \ libz.recovery \ libziparchive.recovery \ include $(BUILD_EXECUTABLE) include \ $(LOCAL_PATH)/tests/Android.mk \ $(LOCAL_PATH)/updater/Android.mk \