More interesting findings...
android/lineage/kernel/letv/msm8994/drivers/power/reset/msm-poweroff.c shows some possibilities for adb reboot:
We know of:
adb reboot: reboot normally (to system)
adb reboot bootloader: into fastboot mode
adb reboot recovery: into recovery mode
adb reboot edl: into emergency download mode
adb reboot rtc: ?
adb reboot dm-verity device corrupted: ?
adb reboot dm-verity enforcing: ?
adb reboot oem-: this one must be followed by an unsigned long.
Regarding the last one, I found this:
android/lineage/kernel/letv/msm8994/drivers/power/reset/msm-poweroff.c shows some possibilities for adb reboot:
Code:
if (cmd != NULL) {
if (!strncmp(cmd, "bootloader", 10)) {
qpnp_pon_set_restart_reason(
PON_RESTART_REASON_BOOTLOADER);
__raw_writel(0x77665500, restart_reason);
} else if (!strncmp(cmd, "recovery", 8)) {
qpnp_pon_set_restart_reason(
PON_RESTART_REASON_RECOVERY);
__raw_writel(0x77665502, restart_reason);
} else if (!strcmp(cmd, "rtc")) {
qpnp_pon_set_restart_reason(
PON_RESTART_REASON_RTC);
__raw_writel(0x77665503, restart_reason);
} else if (!strcmp(cmd, "dm-verity device corrupted")) {
__raw_writel(0x77665508, restart_reason);
} else if (!strcmp(cmd, "dm-verity enforcing")) {
__raw_writel(0x77665509, restart_reason);
} else if (!strcmp(cmd, "keys clear")) {
__raw_writel(0x7766550a, restart_reason);
} else if (!strncmp(cmd, "oem-", 4)) {
unsigned long code;
int ret;
ret = kstrtoul(cmd + 4, 16, &code);
if (!ret)
__raw_writel(0x6f656d00 | (code & 0xff),
restart_reason);
} else if (!strncmp(cmd, "edl", 3)) {
enable_emergency_dload_mode();
} else {
qpnp_pon_set_restart_reason(PON_RESTART_REASON_UNKNOWN);
__raw_writel(0x77665501, restart_reason);
}
}
adb reboot: reboot normally (to system)
adb reboot bootloader: into fastboot mode
adb reboot recovery: into recovery mode
adb reboot edl: into emergency download mode
adb reboot rtc: ?
adb reboot dm-verity device corrupted: ?
adb reboot dm-verity enforcing: ?
adb reboot oem-: this one must be followed by an unsigned long.
Regarding the last one, I found this:
Source: https://lwn.net/Articles/667292/This is commonly done on Android devices, in order to reboot the device into fastboot or recovery mode. It also supports custom OEM specific commands, via "reboot oem-<value>".