mirror of
https://github.com/CTCaer/hekate
synced 2024-12-22 19:31:12 +00:00
autoboot: Support VOL-+ combo for fastboot
This is conditional: In order to not cancel booting while trying to enter fastboot in android, the combo MUST be initiated with `VOL+` (hold) -> `VOL-` (hold)
This commit is contained in:
parent
35e853fd03
commit
943477fdde
2 changed files with 15 additions and 6 deletions
|
@ -998,7 +998,7 @@ skip_list:
|
||||||
// Wait before booting. If VOL- is pressed go into bootloader menu.
|
// Wait before booting. If VOL- is pressed go into bootloader menu.
|
||||||
if (!h_cfg.sept_run && !(b_cfg.boot_cfg & BOOT_CFG_FROM_LAUNCH))
|
if (!h_cfg.sept_run && !(b_cfg.boot_cfg & BOOT_CFG_FROM_LAUNCH))
|
||||||
{
|
{
|
||||||
btn = btn_wait_timeout(h_cfg.bootwait * 1000, BTN_VOL_DOWN);
|
btn = btn_wait_timeout(h_cfg.bootwait * 1000, BTN_VOL_DOWN | BTN_SINGLE);
|
||||||
|
|
||||||
if (btn & BTN_VOL_DOWN)
|
if (btn & BTN_VOL_DOWN)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
|
@ -61,16 +61,25 @@ u8 btn_wait()
|
||||||
|
|
||||||
u8 btn_wait_timeout(u32 time_ms, u8 mask)
|
u8 btn_wait_timeout(u32 time_ms, u8 mask)
|
||||||
{
|
{
|
||||||
|
u8 single_button = mask & BTN_SINGLE;
|
||||||
|
mask &= ~BTN_SINGLE;
|
||||||
|
|
||||||
u32 timeout = get_tmr_ms() + time_ms;
|
u32 timeout = get_tmr_ms() + time_ms;
|
||||||
u8 res = btn_read() & mask;
|
u8 res = btn_read();
|
||||||
|
|
||||||
while (get_tmr_ms() < timeout)
|
while (get_tmr_ms() < timeout)
|
||||||
{
|
{
|
||||||
if (res == mask)
|
if ((res & mask) == mask)
|
||||||
break;
|
{
|
||||||
|
if (single_button && (res & ~mask)) // Undesired button detected.
|
||||||
|
res = btn_read();
|
||||||
else
|
else
|
||||||
res = btn_read() & mask;
|
return (res & mask);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
res = btn_read();
|
||||||
};
|
};
|
||||||
|
|
||||||
return res;
|
// Timed out.
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue