Use TARGET_RECOVERY_PRE_COMMAND before calling __reboot() recovery
For the Power menu, frameworks/base/core/jni/android_os_Power.cpp#L180 already uses TARGET_RECOVERY_PRE_COMMAND if TARGET_RECOVERY_PRE_COMMAND is defined in the BoardConfig.mk for a device to make a system() call before calling __reboot() for recovery. This commit adds the same thing to the other places that we know we are getting into recovery using __reboot(). Change-Id: Ifd0394fed1e87b63d80d95e0e2a049004518e27e
This commit is contained in:
parent
cea6eba92d
commit
54815c9dc9
@ -31,7 +31,7 @@ LOCAL_CFLAGS += -DRECOVERY_VERSION="$(RECOVERY_VERSION)"
|
||||
RECOVERY_API_VERSION := 2
|
||||
LOCAL_CFLAGS += -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION)
|
||||
|
||||
BOARD_RECOVERY_DEFINES := BOARD_HAS_NO_SELECT_BUTTON BOARD_HAS_SMALL_RECOVERY BOARD_LDPI_RECOVERY BOARD_UMS_LUNFILE
|
||||
BOARD_RECOVERY_DEFINES := BOARD_HAS_NO_SELECT_BUTTON BOARD_HAS_SMALL_RECOVERY BOARD_LDPI_RECOVERY BOARD_UMS_LUNFILE TARGET_RECOVERY_PRE_COMMAND
|
||||
|
||||
$(foreach board_define,$(BOARD_RECOVERY_DEFINES), \
|
||||
$(if $($(board_define)), \
|
||||
|
@ -875,6 +875,9 @@ void show_advanced_menu()
|
||||
switch (chosen_item)
|
||||
{
|
||||
case 0:
|
||||
#ifdef TARGET_RECOVERY_PRE_COMMAND
|
||||
__system( TARGET_RECOVERY_PRE_COMMAND );
|
||||
#endif
|
||||
__reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, "recovery");
|
||||
break;
|
||||
case 1:
|
||||
|
10
reboot.c
10
reboot.c
@ -49,9 +49,13 @@ int reboot_main(int argc, char *argv[])
|
||||
if(force || argc > optind) {
|
||||
if(poweroff)
|
||||
ret = __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_POWER_OFF, NULL);
|
||||
else if(argc > optind)
|
||||
ret = __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, argv[optind]);
|
||||
else
|
||||
else if(argc > optind) {
|
||||
#ifdef TARGET_RECOVERY_PRE_COMMAND
|
||||
if (!strncmp(argv[optind],"recovery",8))
|
||||
system( TARGET_RECOVERY_PRE_COMMAND );
|
||||
#endif
|
||||
ret = __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART2, argv[optind]);
|
||||
} else
|
||||
ret = reboot(RB_AUTOBOOT);
|
||||
} else {
|
||||
if(poweroff) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user