bootctl: Show a lock symbol for locked disks

When an OS is using disk encryption, show a lock symbol next to it.

Signed-off-by: Simon Glass <simon.glass@canonical.com>
This commit is contained in:
Simon Glass
2025-11-18 15:59:29 -07:00
parent ceab1d8010
commit 4fb40b79a6
2 changed files with 10 additions and 2 deletions

View File

@@ -140,11 +140,15 @@ static int multiboot_set_item_props(struct scene *scn, int i,
IMAGES_Y + 5); IMAGES_Y + 5);
scene_obj_set_pos(scn, ITEM_VERIFIED + i, scene_obj_set_pos(scn, ITEM_VERIFIED + i,
x + BOX_MARGIN + 40 + 32, IMAGES_Y + 80 + 21); x + BOX_MARGIN + 40 + 32, IMAGES_Y + 80 + 21);
scene_obj_set_pos(scn, ITEM_LOCKED + i,
x + BOX_W - BOX_MARGIN - 24, IMAGES_Y + BOX_MARGIN);
ret |= scene_obj_set_hide(scn, ITEM_PREVIEW + i, false); ret |= scene_obj_set_hide(scn, ITEM_PREVIEW + i, false);
ret |= scene_obj_set_hide(scn, ITEM_BOX + i, false); ret |= scene_obj_set_hide(scn, ITEM_BOX + i, false);
ret |= scene_obj_set_hide(scn, ITEM_VERSION_NAME + i, false); ret |= scene_obj_set_hide(scn, ITEM_VERSION_NAME + i, false);
ret |= scene_obj_set_hide(scn, ITEM_VERIFIED + i, false); ret |= scene_obj_set_hide(scn, ITEM_VERIFIED + i, false);
ret |= scene_obj_set_hide(scn, ITEM_LOCKED + i,
!(bflow->flags & BOOTFLOWF_ENCRYPTED));
/* Hide key in multiboot mode (not used with mouse) */ /* Hide key in multiboot mode (not used with mouse) */
ret |= scene_obj_set_hide(scn, ITEM_KEY + i, true); ret |= scene_obj_set_hide(scn, ITEM_KEY + i, true);
@@ -422,6 +426,10 @@ static int multiboot_ui_add(struct udevice *dev, struct osinfo *info)
logo = video_image_getptr(tick); logo = video_image_getptr(tick);
ret |= scene_img(scn, "verified", ITEM_VERIFIED + seq, logo, ret |= scene_img(scn, "verified", ITEM_VERIFIED + seq, logo,
NULL); NULL);
logo = video_image_getptr(lock);
ret |= scene_img(scn, "locked", ITEM_LOCKED + seq, logo,
NULL);
} }
ret = bootstd_get_priv(&std); ret = bootstd_get_priv(&std);

View File

@@ -396,7 +396,7 @@ static int check_multiboot_ui(struct unit_test_state *uts,
ut_assertok(bc_ui_add(ui_dev, &info[0])); ut_assertok(bc_ui_add(ui_dev, &info[0]));
ut_assertok(bc_ui_add(ui_dev, &info[1])); ut_assertok(bc_ui_add(ui_dev, &info[1]));
ut_assertok(bc_ui_render(ui_dev)); ut_assertok(bc_ui_render(ui_dev));
ut_asserteq(13702, video_compress_fb(uts, vid_dev, false)); ut_asserteq(17279, video_compress_fb(uts, vid_dev, false));
/* dump after render - buf2 is golden for multiboot_ui */ /* dump after render - buf2 is golden for multiboot_ui */
uc_priv = dev_get_uclass_priv(ui_dev); uc_priv = dev_get_uclass_priv(ui_dev);
@@ -435,7 +435,7 @@ static int check_multiboot_ui(struct unit_test_state *uts,
/* switch back to multiboot UI style and check against buf2 */ /* switch back to multiboot UI style and check against buf2 */
ut_assertok(bc_ui_switch_layout(ui_dev)); ut_assertok(bc_ui_switch_layout(ui_dev));
ut_assertok(bc_ui_render(ui_dev)); ut_assertok(bc_ui_render(ui_dev));
ut_asserteq(13702, video_compress_fb(uts, vid_dev, false)); ut_asserteq(17279, video_compress_fb(uts, vid_dev, false));
/* dump after switch back to multiboot - buf4 should match buf2 */ /* dump after switch back to multiboot - buf4 should match buf2 */
ut_assertok(membuf_new(&buf4, 4096)); ut_assertok(membuf_new(&buf4, 4096));