aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libcutils/Android.mk5
-rw-r--r--libcutils/android_reboot.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/libcutils/Android.mk b/libcutils/Android.mk
index 5c227b6d..e98c6a8a 100644
--- a/libcutils/Android.mk
+++ b/libcutils/Android.mk
@@ -141,7 +141,12 @@ endif # !x86-atom
endif # !sh
endif # !arm
+ifneq ($(TARGET_RECOVERY_PRE_COMMAND),)
+ LOCAL_CFLAGS += -DRECOVERY_PRE_COMMAND='$(TARGET_RECOVERY_PRE_COMMAND)'
+endif
+
LOCAL_C_INCLUDES := $(libcutils_c_includes) $(KERNEL_HEADERS)
+
LOCAL_STATIC_LIBRARIES := liblog
LOCAL_CFLAGS += $(targetSmpFlag)
include $(BUILD_STATIC_LIBRARY)
diff --git a/libcutils/android_reboot.c b/libcutils/android_reboot.c
index 33a7358e..c6d30522 100644
--- a/libcutils/android_reboot.c
+++ b/libcutils/android_reboot.c
@@ -121,6 +121,10 @@ int android_reboot(int cmd, int flags, char *arg)
break;
case ANDROID_RB_RESTART2:
+#ifdef RECOVERY_PRE_COMMAND
+ if (!strncmp((char *)arg,"recovery",8))
+ system( RECOVERY_PRE_COMMAND );
+#endif
ret = __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,
LINUX_REBOOT_CMD_RESTART2, arg);
break;