android_mt6572_jiabo/bootable/recovery/Android.mk
2025-09-05 16:56:03 +08:00

346 lines
9.3 KiB
Makefile

# Copyright (C) 2007 The Android Open Source Project
# Copyright (C) 2015 The CyanogenMod 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.
ifeq ($(call my-dir),$(call project-path-for,recovery))
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := fuse_sideload.cpp
LOCAL_CLANG := true
LOCAL_CFLAGS := -O2 -g -DADB_HOST=0 -Wall -Wno-unused-parameter
LOCAL_CFLAGS += -D_XOPEN_SOURCE -D_GNU_SOURCE
LOCAL_MODULE := libfusesideload
LOCAL_STATIC_LIBRARIES := libcutils libc libcrypto_static
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
adb_install.cpp \
asn1_decoder.cpp \
device.cpp \
fuse_sdcard_provider.cpp \
install.cpp \
recovery.cpp \
roots.cpp \
screen_ui.cpp \
ui.cpp \
verifier.cpp \
wear_ui.cpp \
wear_touch.cpp \
voldclient.cpp
# External tools
LOCAL_SRC_FILES += \
../../system/core/toolbox/newfs_msdos.c \
../../system/core/toolbox/start_stop.cpp \
../../system/vold/vdc.cpp
LOCAL_MODULE := recovery
LOCAL_FORCE_STATIC_EXECUTABLE := true
RECOVERY_API_VERSION := 3
RECOVERY_FSTAB_VERSION := 2
LOCAL_CFLAGS += -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION)
LOCAL_CFLAGS += -Wno-unused-parameter
LOCAL_CLANG := true
LOCAL_C_INCLUDES += \
system/vold \
system/extras/ext4_utils \
system/core/adb \
external/e2fsprogs/lib
LOCAL_STATIC_LIBRARIES := \
libbatterymonitor \
libbootloader_message \
libminivold_static \
libext4_utils_static \
libmake_ext4fs_static \
libminizip_static \
libminiunz_static \
libsparse_static \
libfsck_msdos \
libminipigz_static \
libzopfli \
libreboot_static \
libsdcard \
libminzip \
libz \
libmtdutils \
libminadbd \
libtoybox_driver \
libmksh_static \
libfusesideload \
libminui \
libpng \
libf2fs_sparseblock \
libdiskconfig \
libsysutils \
libfs_mgr \
libcrypto_utils_static \
libcrypto_static \
libbase \
libutils \
liblog \
liblogwrap \
libselinux \
libscrypt_static \
libnl \
libc++_static \
libm \
libc \
libext2_blkid \
libext2_uuid \
libfec \
libfec_rs \
libsquashfs_utils
LOCAL_HAL_STATIC_LIBRARIES := libhealthd
LOCAL_WHOLE_STATIC_LIBRARIES += libcutils
ifeq ($(AB_OTA_UPDATER),true)
LOCAL_CFLAGS += -DAB_OTA_UPDATER=1
endif
# OEMLOCK support requires a device specific liboemlock be supplied.
# See comments in recovery.cpp for the API.
ifeq ($(TARGET_HAVE_OEMLOCK), true)
LOCAL_CFLAGS += -DHAVE_OEMLOCK
LOCAL_STATIC_LIBRARIES += liboemlock
endif
LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
ifeq ($(BOARD_HAS_DOWNLOAD_MODE), true)
LOCAL_CFLAGS += -DDOWNLOAD_MODE
endif
ifeq ($(TARGET_BUILD_VARIANT),user)
LOCAL_CFLAGS += -DRELEASE_BUILD
endif
LOCAL_CFLAGS += -DUSE_EXT4 -DMINIVOLD
LOCAL_C_INCLUDES += system/extras/ext4_utils system/core/fs_mgr/include external/fsck_msdos
LOCAL_C_INCLUDES += system/vold
ifeq ($(TARGET_RECOVERY_UI_LIB),)
LOCAL_SRC_FILES += default_device.cpp
else
LOCAL_STATIC_LIBRARIES += $(TARGET_RECOVERY_UI_LIB)
endif
ifeq ($(BOARD_CACHEIMAGE_PARTITION_SIZE),)
LOCAL_REQUIRED_MODULES := recovery-persist recovery-refresh
endif
LOCAL_C_INCLUDES += system/extras/ext4_utils
LOCAL_C_INCLUDES += external/boringssl/include
ifeq ($(ONE_SHOT_MAKEFILE),)
LOCAL_ADDITIONAL_DEPENDENCIES += \
fstools \
recovery_mkshrc \
bu_recovery \
toybox_recovery_links
endif
TOYBOX_INSTLIST := $(HOST_OUT_EXECUTABLES)/toybox-instlist
# Set up the static symlinks
RECOVERY_TOOLS := \
gunzip gzip make_ext4fs minivold reboot setup_adbd sh start stop toybox unzip vdc zip
LOCAL_POST_INSTALL_CMD := \
$(hide) $(foreach t,$(RECOVERY_TOOLS),ln -sf recovery $(TARGET_RECOVERY_ROOT_OUT)/sbin/$(t);)
ifneq ($(TARGET_RECOVERY_DEVICE_MODULES),)
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_RECOVERY_DEVICE_MODULES)
endif
include $(BUILD_EXECUTABLE)
# Run toybox-instlist and generate the rest of the symlinks
toybox_recovery_links: $(TOYBOX_INSTLIST)
toybox_recovery_links: TOYBOX_BINARY := $(TARGET_RECOVERY_ROOT_OUT)/sbin/toybox
toybox_recovery_links:
@echo -e ${CL_CYN}"Generate Toybox links:"${CL_RST} $$($(TOYBOX_INSTLIST))
@mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/sbin
$(hide) $(TOYBOX_INSTLIST) | xargs -I'{}' ln -sf toybox '$(TARGET_RECOVERY_ROOT_OUT)/sbin/{}'
# mkshrc
include $(CLEAR_VARS)
LOCAL_MODULE := recovery_mkshrc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/etc
LOCAL_SRC_FILES := etc/mkshrc
LOCAL_MODULE_STEM := mkshrc
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := bu_recovery
LOCAL_MODULE_STEM := bu
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES
LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_SRC_FILES := \
bu.cpp \
backup.cpp \
restore.cpp \
roots.cpp \
voldclient.cpp
LOCAL_CFLAGS += -DMINIVOLD
LOCAL_CFLAGS += -Wno-unused-parameter
#ifeq ($(TARGET_USERIMAGES_USE_EXT4), true)
LOCAL_CFLAGS += -DUSE_EXT4
LOCAL_C_INCLUDES += system/extras/ext4_utils
LOCAL_STATIC_LIBRARIES += libext4_utils_static libz
#endif
LOCAL_STATIC_LIBRARIES += \
libsparse_static \
libz \
libmtdutils \
libminadbd \
libminui \
libfs_mgr \
libtar \
libcrypto_utils_static \
libcrypto_static \
libselinux \
libutils \
libcutils \
liblog \
libm \
libc \
libext2_blkid \
libext2_uuid
LOCAL_C_INCLUDES += \
system/core/fs_mgr/include \
system/core/include \
system/core/libcutils \
system/vold \
external/libtar \
external/libtar/listhash \
external/openssl/include \
external/zlib \
bionic/libc/bionic \
external/e2fsprogs/lib
include $(BUILD_EXECUTABLE)
# make_ext4fs
include $(CLEAR_VARS)
LOCAL_MODULE := libmake_ext4fs_static
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS := -Dmain=make_ext4fs_main
LOCAL_SRC_FILES := \
../../system/extras/ext4_utils/make_ext4fs_main.c \
../../system/core/libcutils/canned_fs_config.c
LOCAL_STATIC_LIBRARIES += libselinux
include $(BUILD_STATIC_LIBRARY)
# Minizip static library
include $(CLEAR_VARS)
LOCAL_MODULE := libminizip_static
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS := -Dmain=minizip_main -D__ANDROID__ -DIOAPI_NO_64 -Wno-unknown-attributes
LOCAL_C_INCLUDES := external/zlib
LOCAL_SRC_FILES := \
../../external/zlib/src/contrib/minizip/ioapi.c \
../../external/zlib/src/contrib/minizip/minizip.c \
../../external/zlib/src/contrib/minizip/zip.c
include $(BUILD_STATIC_LIBRARY)
# Miniunz static library
include $(CLEAR_VARS)
LOCAL_MODULE := libminiunz_static
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS := -Dmain=miniunz_main -D__ANDROID__ -DIOAPI_NO_64 -Wno-unknown-attributes
LOCAL_C_INCLUDES := external/zlib bionic/libc/include
LOCAL_SRC_FILES := \
../../external/zlib/src/contrib/minizip/ioapi.c \
../../external/zlib/src/contrib/minizip/miniunz.c \
../../external/zlib/src/contrib/minizip/unzip.c
LOCAL_STATIC_LIBRARIES += libc
include $(BUILD_STATIC_LIBRARY)
# Reboot static library
include $(CLEAR_VARS)
LOCAL_MODULE := libreboot_static
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS := -Dmain=reboot_main
LOCAL_SRC_FILES := ../../system/core/reboot/reboot.c
include $(BUILD_STATIC_LIBRARY)
# recovery-persist (system partition dynamic executable run after /data mounts)
# ===============================
include $(CLEAR_VARS)
LOCAL_SRC_FILES := recovery-persist.cpp
LOCAL_MODULE := recovery-persist
LOCAL_SHARED_LIBRARIES := liblog libbase
LOCAL_CFLAGS := -Werror
LOCAL_INIT_RC := recovery-persist.rc
include $(BUILD_EXECUTABLE)
# recovery-refresh (system partition dynamic executable run at init)
# ===============================
include $(CLEAR_VARS)
LOCAL_SRC_FILES := recovery-refresh.cpp
LOCAL_MODULE := recovery-refresh
LOCAL_SHARED_LIBRARIES := liblog
LOCAL_CFLAGS := -Werror
LOCAL_INIT_RC := recovery-refresh.rc
include $(BUILD_EXECUTABLE)
# All the APIs for testing
include $(CLEAR_VARS)
LOCAL_CLANG := true
LOCAL_MODULE := libverifier
LOCAL_MODULE_TAGS := tests
LOCAL_SRC_FILES := \
asn1_decoder.cpp \
verifier.cpp \
ui.cpp
LOCAL_C_INCLUDES := system/core/fs_mgr/include
LOCAL_STATIC_LIBRARIES := libcrypto_utils_static libcrypto_static
include $(BUILD_STATIC_LIBRARY)
include \
$(LOCAL_PATH)/applypatch/Android.mk \
$(LOCAL_PATH)/bootloader_message/Android.mk \
$(LOCAL_PATH)/edify/Android.mk \
$(LOCAL_PATH)/minui/Android.mk \
$(LOCAL_PATH)/minzip/Android.mk \
$(LOCAL_PATH)/minadbd/Android.mk \
$(LOCAL_PATH)/mtdutils/Android.mk \
$(LOCAL_PATH)/otafault/Android.mk \
$(LOCAL_PATH)/tests/Android.mk \
$(LOCAL_PATH)/tools/Android.mk \
$(LOCAL_PATH)/uncrypt/Android.mk \
$(LOCAL_PATH)/updater/Android.mk \
$(LOCAL_PATH)/update_verifier/Android.mk \
$(LOCAL_PATH)/fstools/Android.mk
endif