add Wipe Battery stats. Generate fstab dynamically.
diff --git a/Android.mk b/Android.mk
index 72e286a..b619675 100644
--- a/Android.mk
+++ b/Android.mk
@@ -26,7 +26,7 @@
LOCAL_FORCE_STATIC_EXECUTABLE := true
-RECOVERY_VERSION := ClockworkMod Recovery v1.8.1.2
+RECOVERY_VERSION := ClockworkMod Recovery v1.8.1.3
LOCAL_CFLAGS := -DRECOVERY_VERSION="$(RECOVERY_VERSION)"
RECOVERY_API_VERSION := 2
LOCAL_CFLAGS += -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION)
@@ -84,6 +84,14 @@
LOCAL_SRC_FILES := nandroid-md5.sh
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 $(commands_recovery_local_path)/amend/Android.mk
include $(commands_recovery_local_path)/minui/Android.mk
include $(commands_recovery_local_path)/minzip/Android.mk
diff --git a/extendedcommands.c b/extendedcommands.c
index 949b767..3b32c12 100644
--- a/extendedcommands.c
+++ b/extendedcommands.c
@@ -736,6 +736,13 @@
}
}
+void wipe_battery_stats()
+{
+ ensure_root_path_mounted("DATA:");
+ remove("/data/system/batterystats.bin");
+ ensure_root_path_unmounted("DATA:");
+}
+
void show_advanced_menu()
{
static char* headers[] = { "Advanced and Debugging Menu",
@@ -744,6 +751,7 @@
};
static char* list[] = { "Reboot Recovery",
+ "Wipe Battery Stats",
"Key Test",
NULL
};
@@ -759,6 +767,9 @@
__reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, "recovery");
break;
case 1:
+ wipe_battery_stats();
+ break;
+ case 2:
{
ui_print("Outputting key codes.\n");
ui_print("Go back to end debugging.\n");
diff --git a/extendedcommands.h b/extendedcommands.h
index 0f958dd..83e5213 100644
--- a/extendedcommands.h
+++ b/extendedcommands.h
@@ -39,3 +39,7 @@
int
format_non_mtd_device(const char* root);
+
+void
+wipe_battery_stats();
+
diff --git a/mkfstab.sh b/mkfstab.sh
new file mode 100755
index 0000000..e18c726
--- /dev/null
+++ b/mkfstab.sh
@@ -0,0 +1,35 @@
+#!/sbin/sh
+
+rm -f /etc/fstab
+cat /proc/mtd | while read mtdentry
+do
+ mtd=$(echo $mtdentry | awk '{print $1}')
+ mtd=$(echo $mtd | sed s/mtd//)
+ mtd=$(echo $mtd | sed s/://)
+ exist=$(ls -l /dev/block/mtdblock$mtd) 2> /dev/null
+ if [ -z "$exist" ]
+ then
+ continue
+ fi
+ partition=$(echo $mtdentry | awk '{print $4}')
+ partition=$(echo $partition | sed s/\"//g)
+ mount=$partition
+ type=
+ if [ "$partition" = "system" ]
+ then
+ type=yaffs2
+ elif [ "$partition" = "userdata" ]
+ then
+ type=yaffs2
+ mount=data
+ elif [ "$partition" == "cache" ]
+ then
+ type=yaffs2
+ else
+ continue
+ fi
+
+ echo "/dev/block/mtdblock$mtd /$mount $type rw" >> /etc/fstab
+done
+echo "/dev/block/mmcblk0p1" /sdcard vfat rw >> /etc/fstab
+echo "/dev/block/mmbblk0p2" /sd-ext vfat rw >> /etc/fstab
diff --git a/recovery.c b/recovery.c
index 6972564..70d165c 100644
--- a/recovery.c
+++ b/recovery.c
@@ -483,6 +483,8 @@
return amend_main(argc, argv);
return busybox_driver(argc, argv);
}
+ __system("/sbin/mkfstab.sh");
+
int is_user_initiated_recovery = 0;
time_t start = time(NULL);