begin to abstract out the file system and mount information. known issue: create_fstab causes segfault on incredible. and thus subsequent crash loop of recovery.
diff --git a/Android.mk b/Android.mk
index cab7032..2c5da9c 100644
--- a/Android.mk
+++ b/Android.mk
@@ -26,7 +26,7 @@
 
 LOCAL_FORCE_STATIC_EXECUTABLE := true
 
-RECOVERY_VERSION := ClockworkMod Recovery v1.8.2.5
+RECOVERY_VERSION := ClockworkMod Recovery v1.8.2.8
 LOCAL_CFLAGS := -DRECOVERY_VERSION="$(RECOVERY_VERSION)"
 RECOVERY_API_VERSION := 2
 LOCAL_CFLAGS += -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION)
@@ -35,22 +35,36 @@
   LOCAL_CFLAGS += -DKEY_POWER_IS_SELECT_ITEM
 endif
 
-# This file system specific stuff is in need of some serious cleaning up...
-
-ifeq ($BOARD_SDCARD_MMCBLK1,true)
-  LOCAL_CFLAGS += -DSDCARD_MMCBLK1
+ifdef BOARD_SDCARD_DEVICE_PRIMARY
+  LOCAL_CFLAGS += -DSDCARD_DEVICE_PRIMARY=\"$(BOARD_SDCARD_DEVICE_PRIMARY)\"
 endif
 
-ifeq ($(BOARD_SD_EXT3),true)
-  LOCAL_CFLAGS += -DSD_EXT3
+ifdef BOARD_SDCARD_DEVICE_SECONDARY
+  LOCAL_CFLAGS += -DSDCARD_DEVICE_SECONDARY=\"$(BOARD_SDCARD_DEVICE_SECONDARY)\"
 endif
 
-ifeq ($(BOARD_USERDATA_EXT3),true)
-  LOCAL_CFLAGS += -DUSERDATA_EXT3
+ifdef BOARD_SDEXT_DEVICE
+  LOCAL_CFLAGS += -DSDEXT_DEVICE=\"$(BOARD_SDEXT_DEVICE)\"
 endif
 
-ifeq ($(BOARD_CACHE_EXT3),true)
-  LOCAL_CFLAGS += -DCACHE_EXT3
+ifdef BOARD_SDEXT_FILESYSTEM
+  LOCAL_CFLAGS += -DSDCARD_DEVICE_PRIMARY=\"$(BOARD_SDEXT_FILESYSTEM)\"
+endif
+
+ifdef BOARD_DATA_DEVICE
+  LOCAL_CFLAGS += -DDATA_DEVICE=\"$(BOARD_DATA_DEVICE)\"
+endif
+
+ifdef BOARD_DATA_FILESYSTEM
+  LOCAL_CFLAGS += -DDATA_FILESYSTEM=\"$(BOARD_DATA_FILESYSTEM)\"
+endif
+
+ifdef BOARD_CACHE_DEVICE
+  LOCAL_CFLAGS += -DCACHE_DEVICE=\"$(BOARD_CACHE_DEVICE)\"
+endif
+
+ifdef BOARD_CACHE_FILESYSTEM
+  LOCAL_CFLAGS += -DCACHE_FILESYSTEM=\"$(BOARD_CACHE_FILESYSTEM)\"
 endif
 
 # This binary is in the recovery ramdisk, which is otherwise a copy of root.
@@ -107,14 +121,6 @@
 include $(BUILD_PREBUILT)
 
 include $(CLEAR_VARS)
-LOCAL_MODULE := mkfstab.sh
-LOCAL_MODULE_TAGS := eng
-LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES
-LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/sbin
-LOCAL_SRC_FILES := mkfstab.sh
-include $(BUILD_PREBUILT)
-
-include $(CLEAR_VARS)
 LOCAL_MODULE := killrecovery.sh
 LOCAL_MODULE_TAGS := eng
 LOCAL_MODULE_CLASS := RECOVERY_EXECUTABLES