--- twrp-functions.cpp.orig 2016-04-06 10:53:44.050810106 +0200 +++ twrp-functions.cpp 2016-04-06 10:48:36.510826976 +0200 @@ -45,12 +45,14 @@ #include "variables.h" #include "bootloader.h" #include "cutils/properties.h" -#include "cutils/android_reboot.h" -#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" @@ -536,43 +538,37 @@ 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); -#endif 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-04-06 10:54:50.280806473 +0200 +++ twrp.cpp 2016-04-06 14:16:28.782142820 +0200 @@ -403,5 +403,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; }