mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-31 11:01:19 +00:00
Always enter BROKEN screen in non-manual recovery, even in dev mode
Previously, non-manual recovery behavior would depend on the developer mode switch: in normal mode it would get stuck at the BROKEN screen, but in developer mode it would proceed exactly like manual recovery. This behavior was mostly just confusing to people and it seems that we have no real use case for it anymore. Remove the developer mode special case so that non-manual recovery will always go to the BROKEN screen from now on. BRANCH=scarlet? BUG=None TEST=make runtests, verified manually on Scarlet and Kevin Change-Id: Iaf33f82d7cb709a5ee309c08d1ad3015859738b3 Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/924458 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
This commit is contained in:
committed by
chrome-bot
parent
cc441a0ea8
commit
5b26e40508
@@ -213,10 +213,6 @@ int VbSharedDataSetKernelKey(VbSharedDataHeader *header, const VbPublicKey *src)
|
||||
|
||||
int vb2_allow_recovery(uint32_t flags)
|
||||
{
|
||||
/* In dev mode, unconditionally allowed. */
|
||||
if (flags & VBSD_BOOT_DEV_SWITCH_ON)
|
||||
return 1;
|
||||
|
||||
/*
|
||||
* If EC is in RW, it implies recovery wasn't manually requested.
|
||||
* On some platforms, EC_IN_RW can't be reset by the EC, thus, this may
|
||||
|
||||
@@ -579,7 +579,7 @@ static void VbBootRecTest(void)
|
||||
VBERROR_SHUTDOWN_REQUESTED,
|
||||
"Shutdown requested by keyboard");
|
||||
|
||||
/* Remove disks */
|
||||
/* Broken screen */
|
||||
ResetMocks();
|
||||
shutdown_request_calls_left = 100;
|
||||
mock_num_disks[0] = 1;
|
||||
@@ -588,11 +588,11 @@ static void VbBootRecTest(void)
|
||||
vbtlk_retval = VBERROR_NO_DISK_FOUND - VB_DISK_FLAG_REMOVABLE;
|
||||
TEST_EQ(VbBootRecovery(&ctx),
|
||||
VBERROR_SHUTDOWN_REQUESTED,
|
||||
"Remove");
|
||||
"Broken");
|
||||
TEST_EQ(screens_displayed[0], VB_SCREEN_OS_BROKEN,
|
||||
" broken screen");
|
||||
|
||||
/* No removal if dev switch is on */
|
||||
/* Broken screen even if dev switch is on */
|
||||
ResetMocks();
|
||||
shutdown_request_calls_left = 100;
|
||||
mock_num_disks[0] = 1;
|
||||
@@ -601,9 +601,9 @@ static void VbBootRecTest(void)
|
||||
vbtlk_retval = VBERROR_NO_DISK_FOUND - VB_DISK_FLAG_REMOVABLE;
|
||||
TEST_EQ(VbBootRecovery(&ctx),
|
||||
VBERROR_SHUTDOWN_REQUESTED,
|
||||
"No remove in dev");
|
||||
TEST_EQ(screens_displayed[0], VB_SCREEN_RECOVERY_INSERT,
|
||||
" insert screen");
|
||||
"Broken (dev)");
|
||||
TEST_EQ(screens_displayed[0], VB_SCREEN_OS_BROKEN,
|
||||
" broken screen");
|
||||
|
||||
/* No removal if recovery button physically pressed */
|
||||
ResetMocks();
|
||||
|
||||
@@ -1304,16 +1304,18 @@ static void VbBootRecTest(void)
|
||||
TEST_EQ(screens_count, 2, " no extra screens");
|
||||
TEST_EQ(beeps_count, 0, " no beep on shutdown");
|
||||
|
||||
/* go to INSERT if dev switch is on */
|
||||
/* BROKEN screen even if dev switch is on */
|
||||
ResetMocks();
|
||||
vbtlk_retval[0] = VBERROR_NO_DISK_FOUND - VB_DISK_FLAG_REMOVABLE;
|
||||
vbtlk_retval[0] = VBERROR_SUCCESS - VB_DISK_FLAG_REMOVABLE;
|
||||
vbtlk_retval[1] = VBERROR_NO_DISK_FOUND - VB_DISK_FLAG_REMOVABLE;
|
||||
vbtlk_retval[2] = VBERROR_SUCCESS - VB_DISK_FLAG_REMOVABLE;
|
||||
shared->flags |= VBSD_BOOT_DEV_SWITCH_ON;
|
||||
TEST_EQ(VbBootRecoveryMenu(&ctx), VBERROR_SHUTDOWN_REQUESTED,
|
||||
"Shutdown requested in INSERT with dev switch");
|
||||
"Shutdown requested in BROKEN with dev switch");
|
||||
TEST_EQ(vb2_nv_get(&ctx, VB2_NV_RECOVERY_REQUEST), 0, " no recovery");
|
||||
TEST_EQ(debug_info_displayed, 0, " no debug info");
|
||||
TEST_EQ(screens_displayed[0], VB_SCREEN_RECOVERY_INSERT,
|
||||
" insert screen");
|
||||
TEST_EQ(screens_displayed[0], VB_SCREEN_OS_BROKEN,
|
||||
" broken screen");
|
||||
TEST_EQ(screens_displayed[1], VB_SCREEN_BLANK, " final blank screen");
|
||||
TEST_EQ(screens_count, 2, " no extra screens");
|
||||
TEST_EQ(beeps_count, 0, " no beep on shutdown");
|
||||
|
||||
Reference in New Issue
Block a user