AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Low 34 Bitcoin

ui: render BB02 text with LVGL fonts

Public commit record

What the developer wrote

Authored by NickeZ Agent

78/100 · Adequate
ui: render BB02 text with LVGL fonts

BitBox02 must measure and render supported UTF-8 text consistently
without changing the appearance of existing ASCII screens. Switch
uGUI to LVGL font descriptors and compact 1bpp glyph callbacks, and
update firmware and bootloader consumers together.

Validate text against the font selected by each component. Preserve
UTF-8 boundaries when shortening device names, and reject malformed
input before rendering. Use font coverage for name validation and
legacy-backup sanitization.

Update C/Rust font bindings and native-build header tracking. Remove
the superseded font data and cover ASCII pixel/metric compatibility,
font fallbacks, malformed UTF-8, and lockscreen truncation in tests.
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
The short version

What changed, and why it matters

This commit replaces the BitBox02's old ASCII-only font system with a new UTF-8-capable font engine based on LVGL. It adds checks to reject or sanitize characters that the device cannot display, preserves UTF-8 boundaries when shortening names, and updates tests. The change is primarily a defensive hardening and internationalization improvement rather than a fix for an active attack.

Recommended action

Review the new LVGL font conversion tooling and the `lvgl_font_compat.c` adapter for off-by-one or glyph lookup errors. Verify that all Rust/C UI entry points now call `has_glyph` or equivalent before passing user-controlled strings to C renderers, and that the bootloader-only font set covers all strings it may display.

Security signals we found

01

Replaced ASCII-only input validation with per-font glyph coverage checks

02

Added UTF-8 boundary preservation when truncating device names

03

Added malformed UTF-8 rejection before rendering in UI components

04

Removed direct font width table access in favor of `UG_GetCharWidth`

05

Updated legacy backup name sanitization to use font glyph coverage

06

Added tests for unsupported characters, malformed UTF-8, and lockscreen truncation

Risk score

Why this scored 34/100

Our methodology →
Potential impact 8/30
Exploitability 5/25
Stealth signal 4/15
Affected reach 6/15
Confidence 7/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.