--- twrp-functions.cpp.orig 2016-03-30 17:52:12.493370663 +0200 +++ twrp-functions.cpp 2016-03-30 18:12:50.592302748 +0200 @@ -44,12 +44,14 @@ #include "variables.h" #include "bootloader.h" #include "cutils/properties.h" -#include "cutils/android_reboot.h" #include "gui/gui.hpp" -#include +#ifdef ANDROID_RB_POWEROFF + #include "cutils/android_reboot.h" +#endif #endif // ndef BUILD_TWRPTAR_MAIN #ifndef TW_EXCLUDE_ENCRYPTED_BACKUPS #include "openaes/inc/oaes_lib.h" #endif +#include "cutils/android_reboot.h" extern "C" { #include "libcrecovery/common.h" @@ -518,51 +520,49 @@ { // Always force a sync before we reboot sync(); - Update_Log_File(); switch (command) { case rb_current: case rb_system: + Update_Log_File(); Update_Intent_File("s"); sync(); check_and_run_script("/sbin/rebootsystem.sh", "reboot system"); -#ifdef ANDROID_RB_PROPERTY - return property_set(ANDROID_RB_PROPERTY, "reboot,"); -#elif defined(ANDROID_RB_RESTART) - return android_reboot(ANDROID_RB_RESTART, 0, 0); -#else return reboot(RB_AUTOBOOT); -#endif + case rb_recovery: check_and_run_script("/sbin/rebootrecovery.sh", "reboot recovery"); #ifdef ANDROID_RB_PROPERTY - return property_set(ANDROID_RB_PROPERTY, "reboot,recovery"); + property_set(ANDROID_RB_PROPERTY, "reboot,recovery"); #else return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, (void*) "recovery"); #endif + sleep(5); + return 0; case rb_bootloader: check_and_run_script("/sbin/rebootbootloader.sh", "reboot bootloader"); #ifdef ANDROID_RB_PROPERTY - return property_set(ANDROID_RB_PROPERTY, "reboot,bootloader"); + property_set(ANDROID_RB_PROPERTY, "reboot,bootloader"); #else return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, (void*) "bootloader"); #endif + sleep(5); + return 0; case rb_poweroff: check_and_run_script("/sbin/poweroff.sh", "power off"); -#ifdef ANDROID_RB_PROPERTY - return property_set(ANDROID_RB_PROPERTY, "shutdown,"); -#elif defined(ANDROID_RB_POWEROFF) - return android_reboot(ANDROID_RB_POWEROFF, 0, 0); -#else - return reboot(RB_POWER_OFF); +#ifdef ANDROID_RB_POWEROFF + android_reboot(ANDROID_RB_POWEROFF, 0, 0); #endif + return reboot(RB_POWER_OFF); case rb_download: check_and_run_script("/sbin/rebootdownload.sh", "reboot download"); #ifdef ANDROID_RB_PROPERTY - return property_set(ANDROID_RB_PROPERTY, "reboot,download"); + property_set(ANDROID_RB_PROPERTY, "reboot,download"); #else return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, (void*) "download"); #endif + sleep(5); + return 0; default: return -1; } --- twrp.cpp.orig 2016-03-30 18:16:11.248291742 +0200 +++ twrp.cpp 2016-03-30 18:15:48.940292965 +0200 @@ -369,5 +369,10 @@ else TWFunc::tw_reboot(rb_system); +#ifdef ANDROID_RB_RESTART + android_reboot(ANDROID_RB_RESTART, 0, 0); +#else + reboot(RB_AUTOBOOT); +#endif return 0; }