galaxys
diff --git a/Android.mk b/Android.mk
index 7c843b2..1de07d6 100644
--- a/Android.mk
+++ b/Android.mk
@@ -13,13 +13,27 @@
 	legacy.c \
 	commands.c \
 	recovery.c \
-	bootloader.c \
-	firmware.c \
 	install.c \
 	roots.c \
 	ui.c \
 	verifier.c
 
+ifndef BOARD_HAS_NO_MISC_PARTITION
+    LOCAL_SRC_FILES += \
+        firmware.c \
+        bootloader.c
+else
+    LOCAL_CFLAGS += -DBOARD_HAS_NO_MISC_PARTITION
+endif
+
+ifdef BOARD_USES_FFORMAT
+    LOCAL_CFLAGS += -DBOARD_USES_FFORMAT
+endif
+
+ifdef BOARD_RECOVERY_IGNORE_BOOTABLES
+    LOCAL_CLFAGS += -DBOARD_RECOVERY_IGNORE_BOOTABLES
+endif
+
 LOCAL_SRC_FILES += test_roots.c
 
 LOCAL_MODULE := recovery
@@ -27,7 +41,7 @@
 LOCAL_FORCE_STATIC_EXECUTABLE := true
 
 RECOVERY_VERSION := ClockworkMod Recovery v2.5.0.1
-LOCAL_CFLAGS := -DRECOVERY_VERSION="$(RECOVERY_VERSION)"
+LOCAL_CFLAGS += -DRECOVERY_VERSION="$(RECOVERY_VERSION)"
 RECOVERY_API_VERSION := 2
 LOCAL_CFLAGS += -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION)
 
@@ -59,6 +73,14 @@
   LOCAL_CFLAGS += -DDATA_FILESYSTEM=\"$(BOARD_DATA_FILESYSTEM)\"
 endif
 
+ifdef BOARD_DATADATA_DEVICE
+  LOCAL_CFLAGS += -DDATADATA_DEVICE=\"$(BOARD_DATADATA_DEVICE)\"
+endif
+
+ifdef BOARD_DATADATA_FILESYSTEM
+  LOCAL_CFLAGS += -DDATADATA_FILESYSTEM=\"$(BOARD_DATADATA_FILESYSTEM)\"
+endif
+
 ifdef BOARD_CACHE_DEVICE
   LOCAL_CFLAGS += -DCACHE_DEVICE=\"$(BOARD_CACHE_DEVICE)\"
 endif
@@ -67,6 +89,14 @@
   LOCAL_CFLAGS += -DCACHE_FILESYSTEM=\"$(BOARD_CACHE_FILESYSTEM)\"
 endif
 
+ifdef BOARD_SYSTEM_DEVICE
+  LOCAL_CFLAGS += -DSYSTEM_DEVICE=\"$(BOARD_SYSTEM_DEVICE)\"
+endif
+
+ifdef BOARD_SYSTEM_FILESYSTEM
+  LOCAL_CFLAGS += -DSYSTEM_FILESYSTEM=\"$(BOARD_SYSTEM_FILESYSTEM)\"
+endif
+
 ifdef BOARD_HAS_DATADATA
   LOCAL_CFLAGS += -DHAS_DATADATA
 endif
@@ -93,6 +123,7 @@
 include $(BUILD_EXECUTABLE)
 
 RECOVERY_LINKS := amend busybox flash_image dump_image mkyaffs2image unyaffs erase_image nandroid
+
 # nc is provided by external/netcat
 SYMLINKS := $(addprefix $(TARGET_RECOVERY_ROOT_OUT)/sbin/,$(RECOVERY_LINKS))
 $(SYMLINKS): RECOVERY_BINARY := $(LOCAL_MODULE)
@@ -132,6 +163,16 @@
 LOCAL_SRC_FILES := killrecovery.sh
 include $(BUILD_PREBUILT)
 
+ifdef BOARD_USES_FFORMAT
+include $(CLEAR_VARS)
+LOCAL_MODULE := fformat
+LOCAL_MODULE_TAGS := eng
+LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES
+LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
+LOCAL_SRC_FILES := prebuilt/fformat
+include $(BUILD_PREBUILT)
+endif
+
 include $(commands_recovery_local_path)/amend/Android.mk
 include $(commands_recovery_local_path)/minui/Android.mk
 include $(commands_recovery_local_path)/minzip/Android.mk