blob: e01f71d6395f0e9d4ae5230508ca6492a0e45113 [file] [log] [blame]
Doug Zongkerddd6a282009-06-09 12:22:33 -07001ifneq ($(TARGET_SIMULATOR),true)
2ifeq ($(TARGET_ARCH),arm)
3
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -08004LOCAL_PATH := $(call my-dir)
5include $(CLEAR_VARS)
6
7commands_recovery_local_path := $(LOCAL_PATH)
Koushik K. Dutta6060e5c2010-02-11 22:27:06 -08008# LOCAL_CPP_EXTENSION := .c
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -08009
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080010LOCAL_SRC_FILES := \
Oscar Montemayor05231562009-11-30 08:40:57 -080011 recovery.c \
12 bootloader.c \
Oscar Montemayor05231562009-11-30 08:40:57 -080013 install.c \
14 roots.c \
15 ui.c \
16 verifier.c \
Koushik Duttadf1e4062010-12-18 17:42:31 -080017 encryptedfs_provisioning.c \
Koushik Dutta19447c02010-11-10 10:40:44 -080018 mounts.c \
codeworkx9c4c8e22011-04-25 11:16:41 -070019 extendedcommands.c \
20 nandroid.c \
Koushik Dutta2457adc2011-06-14 10:57:01 -070021 ../../system/core/toolbox/reboot.c \
Koushik Dutta7f13e152011-09-08 16:55:35 -070022 firmware.c \
Koushik Duttabec09952010-12-19 20:37:57 -080023 edifyscripting.c \
Koushik Dutta852bb422010-07-24 11:18:00 -070024 setprop.c
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080025
Koushik Dutta30a937a2011-09-05 21:14:06 -070026ADDITIONAL_RECOVERY_FILES := $(shell echo $$ADDITIONAL_RECOVERY_FILES)
27LOCAL_SRC_FILES += $(ADDITIONAL_RECOVERY_FILES)
28
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080029LOCAL_MODULE := recovery
30
31LOCAL_FORCE_STATIC_EXECUTABLE := true
32
Ricardo Cerqueira45df6992011-07-21 16:31:57 +010033ifdef I_AM_KOUSH
34RECOVERY_NAME := ClockworkMod Recovery
Koushik Dutta30a937a2011-09-05 21:14:06 -070035LOCAL_CFLAGS += -DI_AM_KOUSH
Ricardo Cerqueira45df6992011-07-21 16:31:57 +010036else
37RECOVERY_NAME := CWM-based Recovery
38endif
39
Koushik Dutta2e854222011-10-04 16:33:30 -070040RECOVERY_VERSION := $(RECOVERY_NAME) v5.0.2.6
Ricardo Cerqueira45df6992011-07-21 16:31:57 +010041
Koushik Dutta5aaa8232010-07-20 16:23:18 -070042LOCAL_CFLAGS += -DRECOVERY_VERSION="$(RECOVERY_VERSION)"
Koushik Dutta4e10b132010-09-13 15:14:07 -070043RECOVERY_API_VERSION := 2
Doug Zongkerfb2e3af2009-06-17 17:29:40 -070044LOCAL_CFLAGS += -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION)
45
Kolja Dummann6afbcdc2011-07-24 21:40:16 +020046BOARD_RECOVERY_DEFINES := BOARD_HAS_NO_SELECT_BUTTON BOARD_HAS_SMALL_RECOVERY BOARD_LDPI_RECOVERY BOARD_UMS_LUNFILE BOARD_RECOVERY_ALWAYS_WIPES BOARD_RECOVERY_HANDLES_MOUNT
Koushik Duttaf4e3a672010-06-09 12:19:41 -070047
Koushik Dutta19447c02010-11-10 10:40:44 -080048$(foreach board_define,$(BOARD_RECOVERY_DEFINES), \
49 $(if $($(board_define)), \
50 $(eval LOCAL_CFLAGS += -D$(board_define)=\"$($(board_define))\") \
51 ) \
52 )
Koushik Duttae17a78d2010-08-29 12:35:10 -070053
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080054# This binary is in the recovery ramdisk, which is otherwise a copy of root.
55# It gets copied there in config/Makefile. LOCAL_MODULE_TAGS suppresses
56# a (redundant) copy of the binary in /system/bin for user builds.
57# TODO: Build the ramdisk image in a more principled way.
58
59LOCAL_MODULE_TAGS := eng
60
Doug Zongkerddd6a282009-06-09 12:22:33 -070061LOCAL_STATIC_LIBRARIES :=
Koushik Duttaadf906d2010-09-26 15:58:35 -070062ifeq ($(BOARD_CUSTOM_RECOVERY_KEYMAPPING),)
Doug Zongkerddd6a282009-06-09 12:22:33 -070063 LOCAL_SRC_FILES += default_recovery_ui.c
64else
Koushik Duttaadf906d2010-09-26 15:58:35 -070065 LOCAL_SRC_FILES += $(BOARD_CUSTOM_RECOVERY_KEYMAPPING)
Doug Zongkerddd6a282009-06-09 12:22:33 -070066endif
Koushik Dutta19447c02010-11-10 10:40:44 -080067
Koushik Duttaaee5f852011-06-27 11:02:44 -070068LOCAL_STATIC_LIBRARIES += librebootrecovery
Doug Zongkerd4208f92010-09-20 12:16:13 -070069LOCAL_STATIC_LIBRARIES += libext4_utils libz
Koushik Duttadf1e4062010-12-18 17:42:31 -080070LOCAL_STATIC_LIBRARIES += libminzip libunz libmincrypt
71
Koushik Duttabec09952010-12-19 20:37:57 -080072LOCAL_STATIC_LIBRARIES += libedify libbusybox libclearsilverregex libmkyaffs2image libunyaffs liberase_image libdump_image libflash_image
codeworkx9c4c8e22011-04-25 11:16:41 -070073
Koushik Dutta50822992011-06-08 19:03:27 -070074LOCAL_STATIC_LIBRARIES += libcrecovery libflashutils libmtdutils libmmcutils libbmlutils
codeworkx9c4c8e22011-04-25 11:16:41 -070075
76ifeq ($(BOARD_USES_BML_OVER_MTD),true)
77LOCAL_STATIC_LIBRARIES += libbml_over_mtd
78endif
Koushik Dutta19447c02010-11-10 10:40:44 -080079
Doug Zongker19faefa2009-03-27 17:06:24 -070080LOCAL_STATIC_LIBRARIES += libminui libpixelflinger_static libpng libcutils
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080081LOCAL_STATIC_LIBRARIES += libstdc++ libc
82
Doug Zongkerd4208f92010-09-20 12:16:13 -070083LOCAL_C_INCLUDES += system/extras/ext4_utils
84
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080085include $(BUILD_EXECUTABLE)
86
Koushik Dutta2e854222011-10-04 16:33:30 -070087RECOVERY_LINKS := edify busybox flash_image dump_image mkyaffs2image unyaffs erase_image nandroid reboot volume setprop
Koushik Dutta5aaa8232010-07-20 16:23:18 -070088
Koushik K. Dutta6f406aa2010-03-16 23:46:13 -070089# nc is provided by external/netcat
Koushik Duttadf1e4062010-12-18 17:42:31 -080090RECOVERY_SYMLINKS := $(addprefix $(TARGET_RECOVERY_ROOT_OUT)/sbin/,$(RECOVERY_LINKS))
91$(RECOVERY_SYMLINKS): RECOVERY_BINARY := $(LOCAL_MODULE)
92$(RECOVERY_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
Koushik K. Dutta6f406aa2010-03-16 23:46:13 -070093 @echo "Symlink: $@ -> $(RECOVERY_BINARY)"
94 @mkdir -p $(dir $@)
95 @rm -rf $@
96 $(hide) ln -sf $(RECOVERY_BINARY) $@
97
Koushik Duttadf1e4062010-12-18 17:42:31 -080098ALL_DEFAULT_INSTALLED_MODULES += $(RECOVERY_SYMLINKS)
Koushik K. Dutta6f406aa2010-03-16 23:46:13 -070099
100# Now let's do recovery symlinks
Koushik K. Dutta24cecb12010-03-29 15:20:07 -0700101BUSYBOX_LINKS := $(shell cat external/busybox/busybox-minimal.links)
Koushik Dutta0e961cd2011-06-13 19:51:00 -0700102ifndef BOARD_HAS_SMALL_RECOVERY
Koushik Duttab4261d92011-06-27 17:54:16 -0700103exclude := tune2fs
104ifeq ($(BOARD_HAS_LARGE_FILESYSTEM),true)
105exclude += mke2fs
106endif
Koushik Dutta0e961cd2011-06-13 19:51:00 -0700107endif
Koushik Duttadf1e4062010-12-18 17:42:31 -0800108RECOVERY_BUSYBOX_SYMLINKS := $(addprefix $(TARGET_RECOVERY_ROOT_OUT)/sbin/,$(filter-out $(exclude),$(notdir $(BUSYBOX_LINKS))))
109$(RECOVERY_BUSYBOX_SYMLINKS): BUSYBOX_BINARY := busybox
110$(RECOVERY_BUSYBOX_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
Koushik K. Dutta6f406aa2010-03-16 23:46:13 -0700111 @echo "Symlink: $@ -> $(BUSYBOX_BINARY)"
112 @mkdir -p $(dir $@)
113 @rm -rf $@
114 $(hide) ln -sf $(BUSYBOX_BINARY) $@
115
Koushik Duttadf1e4062010-12-18 17:42:31 -0800116ALL_DEFAULT_INSTALLED_MODULES += $(RECOVERY_BUSYBOX_SYMLINKS)
Koushik K. Dutta6f406aa2010-03-16 23:46:13 -0700117
Koushik K. Dutta68b01902010-04-01 12:20:39 -0700118include $(CLEAR_VARS)
119LOCAL_MODULE := nandroid-md5.sh
120LOCAL_MODULE_TAGS := eng
121LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES
122LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
123LOCAL_SRC_FILES := nandroid-md5.sh
124include $(BUILD_PREBUILT)
125
Koushik Duttafd1579b2010-05-01 12:46:55 -0700126include $(CLEAR_VARS)
Koushik Duttacdb63352010-06-09 15:49:44 -0700127LOCAL_MODULE := killrecovery.sh
128LOCAL_MODULE_TAGS := eng
129LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES
130LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
131LOCAL_SRC_FILES := killrecovery.sh
132include $(BUILD_PREBUILT)
Doug Zongker73ae31c2009-12-09 17:01:45 -0800133
134include $(CLEAR_VARS)
135
136LOCAL_SRC_FILES := verifier_test.c verifier.c
137
138LOCAL_MODULE := verifier_test
139
140LOCAL_FORCE_STATIC_EXECUTABLE := true
141
142LOCAL_MODULE_TAGS := tests
143
144LOCAL_STATIC_LIBRARIES := libmincrypt libcutils libstdc++ libc
145
146include $(BUILD_EXECUTABLE)
147
Koushik Dutta67700e72011-07-11 12:26:45 -0700148include $(commands_recovery_local_path)/dedupe/Android.mk
Doug Zongker73ae31c2009-12-09 17:01:45 -0800149
Koushik Duttab5a36a02010-09-13 14:33:15 -0700150include $(commands_recovery_local_path)/bmlutils/Android.mk
Koushik Dutta19447c02010-11-10 10:40:44 -0800151include $(commands_recovery_local_path)/flashutils/Android.mk
Koushik Dutta50822992011-06-08 19:03:27 -0700152include $(commands_recovery_local_path)/libcrecovery/Android.mk
Doug Zongkerddd6a282009-06-09 12:22:33 -0700153include $(commands_recovery_local_path)/minui/Android.mk
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -0800154include $(commands_recovery_local_path)/minzip/Android.mk
155include $(commands_recovery_local_path)/mtdutils/Android.mk
Shashank Mittal815ca5d2010-07-27 11:09:19 -0700156include $(commands_recovery_local_path)/mmcutils/Android.mk
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -0800157include $(commands_recovery_local_path)/tools/Android.mk
Doug Zongker9931f7f2009-06-10 14:11:53 -0700158include $(commands_recovery_local_path)/edify/Android.mk
159include $(commands_recovery_local_path)/updater/Android.mk
Doug Zongker512536a2010-02-17 16:11:44 -0800160include $(commands_recovery_local_path)/applypatch/Android.mk
Koushik Duttaceddcd52010-08-23 16:13:14 -0700161include $(commands_recovery_local_path)/utilities/Android.mk
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -0800162commands_recovery_local_path :=
Doug Zongkerc3885fa2009-06-11 17:05:58 -0700163
164endif # TARGET_ARCH == arm
Oscar Montemayor05231562009-11-30 08:40:57 -0800165endif # !TARGET_SIMULATOR
Doug Zongkerc3885fa2009-06-11 17:05:58 -0700166