// reboot: Reboot the system. Return -1 on error, no return on success int TWFunc::tw_reboot(RebootCommand command) { // Always force a sync before we reboot sync(); 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"); return reboot(RB_AUTOBOOT); case rb_recovery: check_and_run_script("/sbin/rebootrecovery.sh", "reboot recovery"); return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, (void*) "recovery"); case rb_bootloader: check_and_run_script("/sbin/rebootbootloader.sh", "reboot bootloader"); return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, (void*) "bootloader"); case rb_poweroff: check_and_run_script("/sbin/poweroff.sh", "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"); return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, (void*) "download"); default: return -1; } return -1; }
// reboot: Reboot the system. Return -1 on error, no return on success int tw_reboot(RebootCommand command) { if (DataManager_GetIntValue(TW_BACKUP_SYSTEM_SIZE) < DataManager_GetIntValue(TW_MIN_SYSTEM_VAR)) { update_system_details(); if (DataManager_GetIntValue(TW_BACKUP_SYSTEM_SIZE) < DataManager_GetIntValue(TW_MIN_SYSTEM_VAR)) { LOGE("System is not installed - preventing reboot!\n"); return -1; } } // Always force a sync before we reboot sync(); ensure_path_unmounted("/sdcard"); switch (command) { case rb_current: case rb_system: finish_recovery("s"); sync(); check_and_run_script("/sbin/rebootsystem.sh", "reboot system"); return reboot(RB_AUTOBOOT); case rb_recovery: check_and_run_script("/sbin/rebootrecovery.sh", "reboot recovery"); return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, (void*) "recovery"); case rb_bootloader: check_and_run_script("/sbin/rebootbootloader.sh", "reboot bootloader"); return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, (void*) "bootloader"); case rb_poweroff: check_and_run_script("/sbin/poweroff.sh", "power off"); return reboot(RB_POWER_OFF); case rb_download: check_and_run_script("/sbin/rebootdownload.sh", "reboot download"); return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, (void*) "download"); return 1; default: return -1; } return -1; }