blob: f10ca463d731ac9c3d9a446081b7432a8752f80c [file] [log] [blame]
Joe Onorato6396e702012-05-31 23:21:46 -07001# Copyright (C) 2007 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080014
Joe Onorato6396e702012-05-31 23:21:46 -070015LOCAL_PATH := $(call my-dir)
16
Dees_Troy51a0e822012-09-05 15:24:24 -040017TARGET_RECOVERY_GUI := true
Joe Onorato6396e702012-05-31 23:21:46 -070018
19include $(CLEAR_VARS)
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080020
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080021LOCAL_SRC_FILES := \
Doug Zongker28ce47c2011-10-28 10:33:05 -070022 recovery.cpp \
Dees_Troy7c2dec82012-09-26 09:49:14 -040023 twbootloader.cpp \
Doug Zongker28ce47c2011-10-28 10:33:05 -070024 install.cpp \
25 roots.cpp \
Doug Zongker32a0a472011-11-01 11:00:20 -070026 ui.cpp \
Doug Zongker211aebc2011-10-28 15:13:10 -070027 screen_ui.cpp \
Doug Zongker9270a202012-01-09 15:16:13 -080028 verifier.cpp \
29 adb_install.cpp
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080030
Dees_Troy51a0e822012-09-05 15:24:24 -040031LOCAL_SRC_FILES += \
Dees_Troy51a0e822012-09-05 15:24:24 -040032 data.cpp \
Dees_Troy9df963c2012-09-26 08:58:12 -040033 makelist.cpp \
Dees_Troy51a0e822012-09-05 15:24:24 -040034 partition.cpp \
35 partitionmanager.cpp \
Dees_Troy32c8eb82012-09-11 15:28:06 -040036 mtdutils/mtdutils.c \
37 twinstall.cpp \
Dees_Troy812660f2012-09-20 09:55:17 -040038 twrp-functions.cpp \
39 openrecoveryscript.cpp
Dees_Troy51a0e822012-09-05 15:24:24 -040040
Dees_Troya58bead2012-09-27 09:49:29 -040041ifneq ($(TARGET_RECOVERY_REBOOT_SRC),)
Dees_Troy51a0e822012-09-05 15:24:24 -040042 LOCAL_SRC_FILES += $(TARGET_RECOVERY_REBOOT_SRC)
43endif
44
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080045LOCAL_MODULE := recovery
46
Dees_Troy51a0e822012-09-05 15:24:24 -040047#LOCAL_FORCE_STATIC_EXECUTABLE := true
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080048
Doug Zongkere08991e2010-02-02 13:09:52 -080049RECOVERY_API_VERSION := 3
Doug Zongkerfb2e3af2009-06-17 17:29:40 -070050LOCAL_CFLAGS += -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION)
51
Dees_Troy51a0e822012-09-05 15:24:24 -040052#LOCAL_STATIC_LIBRARIES := \
53# libext4_utils \
54# libminzip \
55# libmtdutils \
56# libmincrypt \
57# libminadbd \
58# libpixelflinger_static
59
60LOCAL_C_INCLUDES += bionic external/stlport/stlport
61
62LOCAL_STATIC_LIBRARIES :=
63LOCAL_SHARED_LIBRARIES :=
64
65LOCAL_STATIC_LIBRARIES += libmtdutils
Dees_Troy43d8b002012-09-17 16:00:01 -040066LOCAL_STATIC_LIBRARIES += libminadbd libminzip libunz
Dees_Troy7d15c252012-09-05 20:47:21 -040067LOCAL_STATIC_LIBRARIES += libminuitwrp libpixelflinger_static libpng libjpegtwrp libgui
Dees_Troy43d8b002012-09-17 16:00:01 -040068LOCAL_SHARED_LIBRARIES += libz libc libstlport libcutils libstdc++ libmincrypt libext4_utils
Doug Zongker49c73a72010-06-29 17:36:28 -070069
70ifeq ($(TARGET_USERIMAGES_USE_EXT4), true)
Joe Onorato6396e702012-05-31 23:21:46 -070071 LOCAL_CFLAGS += -DUSE_EXT4
72 LOCAL_C_INCLUDES += system/extras/ext4_utils
Dees_Troy43d8b002012-09-17 16:00:01 -040073 #LOCAL_STATIC_LIBRARIES += libext4_utils
Doug Zongker49c73a72010-06-29 17:36:28 -070074endif
75
Stephen Smalley1a114492012-01-13 07:59:51 -050076ifeq ($(HAVE_SELINUX), true)
Joe Onorato6396e702012-05-31 23:21:46 -070077 LOCAL_C_INCLUDES += external/libselinux/include
78 LOCAL_STATIC_LIBRARIES += libselinux
79 LOCAL_CFLAGS += -DHAVE_SELINUX
Stephen Smalley1a114492012-01-13 07:59:51 -050080endif # HAVE_SELINUX
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080081
82# This binary is in the recovery ramdisk, which is otherwise a copy of root.
83# It gets copied there in config/Makefile. LOCAL_MODULE_TAGS suppresses
84# a (redundant) copy of the binary in /system/bin for user builds.
85# TODO: Build the ramdisk image in a more principled way.
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080086LOCAL_MODULE_TAGS := eng
87
Doug Zongkerddd6a282009-06-09 12:22:33 -070088ifeq ($(TARGET_RECOVERY_UI_LIB),)
Doug Zongkerdaefc1d2011-10-31 09:34:15 -070089 LOCAL_SRC_FILES += default_device.cpp
Doug Zongkerddd6a282009-06-09 12:22:33 -070090else
91 LOCAL_STATIC_LIBRARIES += $(TARGET_RECOVERY_UI_LIB)
92endif
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -080093
Doug Zongkercc8cd3f2010-09-20 12:16:13 -070094LOCAL_C_INCLUDES += system/extras/ext4_utils
95
Dees_Troy51a0e822012-09-05 15:24:24 -040096#TWRP Build Flags
97ifeq ($(BOARD_HAS_NO_REAL_SDCARD), true)
98 LOCAL_CFLAGS += -DBOARD_HAS_NO_REAL_SDCARD
99endif
100ifneq ($(SP1_NAME),)
101 LOCAL_CFLAGS += -DSP1_NAME=$(SP1_NAME) -DSP1_BACKUP_METHOD=$(SP1_BACKUP_METHOD) -DSP1_MOUNTABLE=$(SP1_MOUNTABLE)
102endif
103ifneq ($(SP1_DISPLAY_NAME),)
104 LOCAL_CFLAGS += -DSP1_DISPLAY_NAME=$(SP1_DISPLAY_NAME)
105endif
106ifneq ($(SP2_NAME),)
107 LOCAL_CFLAGS += -DSP2_NAME=$(SP2_NAME) -DSP2_BACKUP_METHOD=$(SP2_BACKUP_METHOD) -DSP2_MOUNTABLE=$(SP2_MOUNTABLE)
108endif
109ifneq ($(SP2_DISPLAY_NAME),)
110 LOCAL_CFLAGS += -DSP2_DISPLAY_NAME=$(SP2_DISPLAY_NAME)
111endif
112ifneq ($(SP3_NAME),)
113 LOCAL_CFLAGS += -DSP3_NAME=$(SP3_NAME) -DSP3_BACKUP_METHOD=$(SP3_BACKUP_METHOD) -DSP3_MOUNTABLE=$(SP3_MOUNTABLE)
114endif
115ifneq ($(SP3_DISPLAY_NAME),)
116 LOCAL_CFLAGS += -DSP3_DISPLAY_NAME=$(SP3_DISPLAY_NAME)
117endif
118ifneq ($(RECOVERY_SDCARD_ON_DATA),)
119 LOCAL_CFLAGS += -DRECOVERY_SDCARD_ON_DATA
120endif
121ifneq ($(TW_INCLUDE_DUMLOCK),)
122 LOCAL_CFLAGS += -DTW_INCLUDE_DUMLOCK
123endif
124ifneq ($(TW_INTERNAL_STORAGE_PATH),)
125 LOCAL_CFLAGS += -DTW_INTERNAL_STORAGE_PATH=$(TW_INTERNAL_STORAGE_PATH)
126endif
127ifneq ($(TW_INTERNAL_STORAGE_MOUNT_POINT),)
128 LOCAL_CFLAGS += -DTW_INTERNAL_STORAGE_MOUNT_POINT=$(TW_INTERNAL_STORAGE_MOUNT_POINT)
129endif
130ifneq ($(TW_EXTERNAL_STORAGE_PATH),)
131 LOCAL_CFLAGS += -DTW_EXTERNAL_STORAGE_PATH=$(TW_EXTERNAL_STORAGE_PATH)
132endif
133ifneq ($(TW_EXTERNAL_STORAGE_MOUNT_POINT),)
134 LOCAL_CFLAGS += -DTW_EXTERNAL_STORAGE_MOUNT_POINT=$(TW_EXTERNAL_STORAGE_MOUNT_POINT)
135endif
136ifeq ($(TW_HAS_NO_RECOVERY_PARTITION), true)
137 LOCAL_CFLAGS += -DTW_HAS_NO_RECOVERY_PARTITION
138endif
139ifeq ($(TW_NO_REBOOT_BOOTLOADER), true)
140 LOCAL_CFLAGS += -DTW_NO_REBOOT_BOOTLOADER
141endif
142ifeq ($(TW_NO_REBOOT_RECOVERY), true)
143 LOCAL_CFLAGS += -DTW_NO_REBOOT_RECOVERY
144endif
145ifeq ($(TW_NO_BATT_PERCENT), true)
146 LOCAL_CFLAGS += -DTW_NO_BATT_PERCENT
147endif
148ifneq ($(TW_CUSTOM_POWER_BUTTON),)
149 LOCAL_CFLAGS += -DTW_CUSTOM_POWER_BUTTON=$(TW_CUSTOM_POWER_BUTTON)
150endif
151ifeq ($(TW_ALWAYS_RMRF), true)
152 LOCAL_CFLAGS += -DTW_ALWAYS_RMRF
153endif
154ifeq ($(TW_NEVER_UNMOUNT_SYSTEM), true)
155 LOCAL_CFLAGS += -DTW_NEVER_UNMOUNT_SYSTEM
156endif
157ifeq ($(TW_NO_USB_STORAGE), true)
158 LOCAL_CFLAGS += -DTW_NO_USB_STORAGE
159endif
160ifeq ($(TW_INCLUDE_INJECTTWRP), true)
161 LOCAL_CFLAGS += -DTW_INCLUDE_INJECTTWRP
162endif
163ifeq ($(TW_INCLUDE_BLOBPACK), true)
164 LOCAL_CFLAGS += -DTW_INCLUDE_BLOBPACK
165endif
166ifeq ($(TW_DEFAULT_EXTERNAL_STORAGE), true)
167 LOCAL_CFLAGS += -DTW_DEFAULT_EXTERNAL_STORAGE
168endif
169ifneq ($(TARGET_USE_CUSTOM_LUN_FILE_PATH),)
170 LOCAL_CFLAGS += -DCUSTOM_LUN_FILE=\"$(TARGET_USE_CUSTOM_LUN_FILE_PATH)\"
171endif
172ifneq ($(BOARD_UMS_LUNFILE),)
173 LOCAL_CFLAGS += -DCUSTOM_LUN_FILE=\"$(BOARD_UMS_LUNFILE)\"
174endif
175#ifeq ($(TW_FLASH_FROM_STORAGE), true) Making this the default behavior
176 LOCAL_CFLAGS += -DTW_FLASH_FROM_STORAGE
177#endif
178ifeq ($(TW_HAS_DOWNLOAD_MODE), true)
179 LOCAL_CFLAGS += -DTW_HAS_DOWNLOAD_MODE
180endif
181ifeq ($(TW_SDEXT_NO_EXT4), true)
182 LOCAL_CFLAGS += -DTW_SDEXT_NO_EXT4
183endif
Dees_Troyfdf5fcc2012-09-11 10:27:01 -0400184ifeq ($(TW_FORCE_CPUINFO_FOR_DEVICE_ID), true)
185 LOCAL_CFLAGS += -DTW_FORCE_CPUINFO_FOR_DEVICE_ID
186endif
Dees_Troy51a0e822012-09-05 15:24:24 -0400187ifeq ($(TW_INCLUDE_CRYPTO), true)
188 LOCAL_CFLAGS += -DTW_INCLUDE_CRYPTO
189 LOCAL_CFLAGS += -DCRYPTO_FS_TYPE=\"$(TW_CRYPTO_FS_TYPE)\"
190 LOCAL_CFLAGS += -DCRYPTO_REAL_BLKDEV=\"$(TW_CRYPTO_REAL_BLKDEV)\"
191 LOCAL_CFLAGS += -DCRYPTO_MNT_POINT=\"$(TW_CRYPTO_MNT_POINT)\"
192 LOCAL_CFLAGS += -DCRYPTO_FS_OPTIONS=\"$(TW_CRYPTO_FS_OPTIONS)\"
193 LOCAL_CFLAGS += -DCRYPTO_FS_FLAGS=\"$(TW_CRYPTO_FS_FLAGS)\"
194 LOCAL_CFLAGS += -DCRYPTO_KEY_LOC=\"$(TW_CRYPTO_KEY_LOC)\"
195 LOCAL_SHARED_LIBRARIES += libcrypto
196 LOCAL_SRC_FILES += crypto/ics/cryptfs.c
197 LOCAL_C_INCLUDES += system/extras/ext4_utils external/openssl/include
198endif
199ifeq ($(TW_INCLUDE_JB_CRYPTO), true)
200 LOCAL_CFLAGS += -DTW_INCLUDE_CRYPTO
201 LOCAL_CFLAGS += -DTW_INCLUDE_JB_CRYPTO
202 LOCAL_SHARED_LIBRARIES += libcrypto
203 LOCAL_STATIC_LIBRARIES += libfs_mgrtwrp
204 LOCAL_SRC_FILES += crypto/jb/cryptfs.c
205 LOCAL_C_INCLUDES += system/extras/ext4_utils external/openssl/include
206endif
207
The Android Open Source Projectc24a8e62009-03-03 19:28:42 -0800208include $(BUILD_EXECUTABLE)
209
Doug Zongker73ae31c2009-12-09 17:01:45 -0800210include $(CLEAR_VARS)
Dees_Troyc04dcf72012-10-02 10:46:37 -0400211# Create busybox symlinks... gzip and gunzip are excluded because those need to link to pigz instead
212BUSYBOX_LINKS := $(shell cat external/busybox/busybox-full.links)
213exclude := tune2fs mke2fs mkdosfs gzip gunzip
214RECOVERY_BUSYBOX_SYMLINKS := $(addprefix $(TARGET_RECOVERY_ROOT_OUT)/sbin/,$(filter-out $(exclude),$(notdir $(BUSYBOX_LINKS))))
215$(RECOVERY_BUSYBOX_SYMLINKS): BUSYBOX_BINARY := busybox
216$(RECOVERY_BUSYBOX_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
217 @echo "Symlink: $@ -> $(BUSYBOX_BINARY)"
218 @mkdir -p $(dir $@)
219 @rm -rf $@
220 $(hide) ln -sf $(BUSYBOX_BINARY) $@
221
222ALL_DEFAULT_INSTALLED_MODULES += $(RECOVERY_BUSYBOX_SYMLINKS)
223
224include $(CLEAR_VARS)
Doug Zongkerdaefc1d2011-10-31 09:34:15 -0700225LOCAL_MODULE := verifier_test
Doug Zongkerdaefc1d2011-10-31 09:34:15 -0700226LOCAL_FORCE_STATIC_EXECUTABLE := true
Doug Zongkerdaefc1d2011-10-31 09:34:15 -0700227LOCAL_MODULE_TAGS := tests
Joe Onorato6396e702012-05-31 23:21:46 -0700228LOCAL_SRC_FILES := \
229 verifier_test.cpp \
230 verifier.cpp \
231 ui.cpp
232LOCAL_STATIC_LIBRARIES := \
233 libmincrypt \
234 libminui \
235 libcutils \
236 libstdc++ \
237 libc
Doug Zongkerdaefc1d2011-10-31 09:34:15 -0700238include $(BUILD_EXECUTABLE)
Doug Zongker73ae31c2009-12-09 17:01:45 -0800239
Dees_Troy51a0e822012-09-05 15:24:24 -0400240commands_recovery_local_path := $(LOCAL_PATH)
Joe Onorato6396e702012-05-31 23:21:46 -0700241include $(LOCAL_PATH)/minui/Android.mk \
242 $(LOCAL_PATH)/minelf/Android.mk \
243 $(LOCAL_PATH)/minzip/Android.mk \
244 $(LOCAL_PATH)/minadbd/Android.mk \
Joe Onorato6396e702012-05-31 23:21:46 -0700245 $(LOCAL_PATH)/tools/Android.mk \
246 $(LOCAL_PATH)/edify/Android.mk \
247 $(LOCAL_PATH)/updater/Android.mk \
248 $(LOCAL_PATH)/applypatch/Android.mk
Dees_Troy51a0e822012-09-05 15:24:24 -0400249
250#includes for TWRP
251include $(commands_recovery_local_path)/libjpegtwrp/Android.mk \
252 $(commands_recovery_local_path)/injecttwrp/Android.mk \
253 $(commands_recovery_local_path)/htcdumlock/Android.mk \
254 $(commands_recovery_local_path)/minuitwrp/Android.mk \
255 $(commands_recovery_local_path)/gui/Android.mk \
256 $(commands_recovery_local_path)/mmcutils/Android.mk \
257 $(commands_recovery_local_path)/bmlutils/Android.mk \
258 $(commands_recovery_local_path)/flashutils/Android.mk \
259 $(commands_recovery_local_path)/prebuilt/Android.mk \
260 $(commands_recovery_local_path)/mtdutils/Android.mk \
261 $(commands_recovery_local_path)/pigz/Android.mk \
262 $(commands_recovery_local_path)/crypto/cryptsettings/Android.mk \
Dees_Troyb9d88ac2012-09-14 14:34:19 -0400263 $(commands_recovery_local_path)/libcrecovery/Android.mk \
264 $(commands_recovery_local_path)/twmincrypt/Android.mk
265
Dees_Troy51a0e822012-09-05 15:24:24 -0400266
267ifeq ($(TW_INCLUDE_JB_CRYPTO), true)
268 include $(commands_recovery_local_path)/crypto/fs_mgr/Android.mk
269endif
270
271commands_recovery_local_path :=
272