1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-06-28 10:52:32 +00:00
Commit Graph

4585 Commits

Author SHA1 Message Date
Lukas Bielesch
b569df7cbe core(eckhart): Fix failing unit test and warnings 2025-04-08 12:33:57 +02:00
Lukas Bielesch
3e2af28523 feat(eckhart): Full-screen get count component 2025-04-08 12:33:57 +02:00
obrusvit
5edbf66c99 feat(eckhart): add easing and rollback to HtC anim
- also switch corner icons to 4px width
2025-04-08 12:33:57 +02:00
obrusvit
23b64e4287 feat(eckhart): add alpha to ScreenBorder 2025-04-08 12:33:57 +02:00
obrusvit
f57fd58377 chore(eckhart): fix some clippy warnings 2025-04-08 12:33:57 +02:00
Lukas Bielesch
a5dbbc74b1 feat(eckhart): Add SLIP39 input component 2025-04-08 12:33:56 +02:00
Lukas Bielesch
8c703c6bee feat(eckhart): Add BIP39 input component 2025-04-08 12:33:56 +02:00
Lukas Bielesch
32101ca29b feat(eckhart): full-screen mnemonic component 2025-04-08 12:33:56 +02:00
Lukas Bielesch
11346b5a3a feat(eckhart): passphrase flow 2025-04-08 12:33:56 +02:00
Lukas Bielesch
9678ee3418 feat(eckhart): full-screen passphrase component 2025-04-08 12:33:56 +02:00
Lukas Bielesch
fbd3dffbc9 feat(eckhart): full-screen PIN keyboard component 2025-04-08 12:33:56 +02:00
Lukas Bielesch
db7ed7fda2 feat(eckhart): keypad component 2025-04-08 12:33:56 +02:00
Lukas Bielesch
41f235edd4 feat(ui): Add visibility-checking function to Maybe struct 2025-04-08 12:33:56 +02:00
Lukas Bielesch
7732efdbbb feat(ui): Add function for expanding Button touch area 2025-04-08 12:33:56 +02:00
Lukas Bielesch
3f978ee50a feat(eckhart): Add common keyboard functionality 2025-04-08 12:33:56 +02:00
Lukas Bielesch
bf22fd667d feat(eckhart): keyboard button styles 2025-04-08 12:33:56 +02:00
Lukas Bielesch
9947d6ce57 feat(eckhart): Add parametrized content offset to Button 2025-04-08 12:33:56 +02:00
Lukas Bielesch
5dba4667b6 chore(eckhart): Add dynamic padding option to vertical menu. Update rendering of separarators in vertical menu. 2025-04-08 12:33:56 +02:00
Lukas Bielesch
2776aaa2f7 feat(eckhart): full-screen select word component 2025-04-08 12:33:56 +02:00
Lukas Bielesch
e3a01928b8 chore(eckhart): Remove redundant code 2025-04-08 12:33:56 +02:00
Lukas Bielesch
f49f9e4ea2 chore(eckhart): Add dynamic padding option to vertical menu.
Update rendering of separarators in vertical menu.
2025-04-08 12:33:56 +02:00
Lukas Bielesch
0f107f996d feat(eckhart): Add new Button 'is_pressed' function 2025-04-08 12:33:56 +02:00
Lukas Bielesch
53ab600340 chore(eckhart): fix button text and subtext rendering 2025-04-08 12:33:56 +02:00
Lukas Bielesch
883d6e594e feat(eckhart): button styles for select word component 2025-04-08 12:33:56 +02:00
Lukas Bielesch
db037229e3 feat(eckhart): share words flow 2025-04-08 12:33:56 +02:00
Lukas Bielesch
966951fb17 feat(eckhart): full-screen share words component 2025-04-08 12:33:56 +02:00
Lukas Bielesch
1b6dfb039e chore(eckhart): improve HTC animation 2025-04-08 12:33:56 +02:00
obrusvit
12aff322aa feat(eckhart): expand touch area of ActionBar 2025-04-08 12:33:56 +02:00
obrusvit
7a10216947 feat(eckhart): implement hold to confirm anim
- HoldToConfirmAnim is driven by the ActionBar in case the right_button
is configured with `long_press`
- HoldToConfirmAnim optionally draws an Header overaly with custom text
- disabling animations is respected
- easing function is not yet finalized
- a few minor fixes along the way
2025-04-08 12:33:56 +02:00
obrusvit
8d32d819f2 feat(eckhart): implement ScreenBorder overlay
- a static "custom shape" for eckhart layout which displays screen
overlay around the borders
2025-04-08 12:33:56 +02:00
Lukas Bielesch
822f4d250d feat(eckhart): Update vertical menu components 2025-04-08 12:33:56 +02:00
Lukas Bielesch
98498bef9f feat(eckhart): Add new Back Header message type 2025-04-08 12:33:56 +02:00
Lukas Bielesch
9491496ef5 feat(eckhart): Add MenuItem button content type 2025-04-08 12:33:56 +02:00
Lukas Bielesch
9de3109336 feat(eckhart): Add battery icons 2025-04-08 12:33:56 +02:00
Lukas Bielesch
c4ee0668ce feat(eckhart): Add vertical menu button styles 2025-04-08 12:33:56 +02:00
obrusvit
2cb19582e9 feat(eckhart): full-screen vertical menu component 2025-04-08 12:33:56 +02:00
obrusvit
767dbc9058 feat(eckhart): implement a few show_xyz functions 2025-04-08 12:33:56 +02:00
obrusvit
818f95b046 feat(eckhart): implement confirm_value 2025-04-08 12:33:56 +02:00
obrusvit
59203e8e4b feat(eckhart): implement confirm_action 2025-04-08 12:33:56 +02:00
obrusvit
c6fa187fc6 feat(core): add color op to FormattedText
[no changelog]
2025-04-08 12:33:56 +02:00
obrusvit
ebd112582a feat(eckhart): full-screen textual component
- TextScreen is a full-screen component for (paginated) texts
- it's supposed to wrap FormattedText or Paragraphs
2025-04-08 12:33:56 +02:00
obrusvit
4b68983c3d feat(eckhart): action bar component 2025-04-08 12:33:56 +02:00
obrusvit
836a1a1f30 feat(eckhart): hint component 2025-04-08 12:33:56 +02:00
obrusvit
7dc52abb22 feat(eckhart): header component 2025-04-08 12:33:56 +02:00
obrusvit
0f032a3031 feat(eckhart): provisional homescreen 2025-04-08 12:33:56 +02:00
obrusvit
c1bf3c2f38 feat(eckhart): text styles 2025-04-08 12:33:55 +02:00
obrusvit
70ef5effe1 feat(eckhart): add fonts 2025-04-08 12:33:55 +02:00
obrusvit
2089b4f206 feat(eckhart): icon set 2025-04-08 12:33:55 +02:00
obrusvit
cc60c81682 feat(eckhart): color palette 2025-04-08 12:33:55 +02:00
obrusvit
c442b30962 feat(eckhart): initial commit
- build
- directory structure
- bootloader UI and assets copied from delizia
- FirmwareUI trait functions are empty
- Python layout functions are copied from delizia except some of more
complicated ones which raise NotImplemented for now
2025-04-08 12:33:55 +02:00
Roman Zeyde
8df465d7e8 build(core): replace all_modules.py by qstrdefsport.h
[no changelog]
2025-04-07 20:19:31 +03:00
Roman Zeyde
879cc69c63 perf(core): intern non-alphanumeric characters
It was found by running `micropython.mem_info()` with the following patch:
```diff
diff --git a/py/gc.c b/py/gc.c
index 604334c95..bff62b754 100644
--- a/py/gc.c
+++ b/py/gc.c
@@ -840,6 +840,7 @@ void gc_dump_info(void) {
         (uint)info.total, (uint)info.used, (uint)info.free);
     mp_printf(&mp_plat_print, " No. of 1-blocks: %u, 2-blocks: %u, max blk sz: %u, max free sz: %u\n",
         (uint)info.num_1block, (uint)info.num_2block, (uint)info.max_block, (uint)info.max_free);
+    qstr_dump_data();
 }

 void gc_dump_alloc_table(void) {
```

New QSTR definitions:
```
$ tail -n4 ./core/build/unix/genhdr/qstrdefs.generated.h
QDEF(MP_QSTR__paren_close_, 46476, 1, ")")
QDEF(MP_QSTR__paren_open_, 46477, 1, "(")
QDEF(MP_QSTR__lt_, 46489, 1, "<")
QDEF(MP_QSTR__semicolon_, 46494, 1, ";")
```

[no changelog]
2025-04-07 20:19:31 +03:00
cepetr
b50e201ea5 fix(core): improve simulation of lost TOUCH_START events
[no changelog]
2025-04-07 17:49:04 +02:00
cepetr
a6bfe399ff fix(core): ensure touch_get_event does not return zero after TOUCH_START
[no changelog]
2025-04-07 17:49:04 +02:00
cepetr
dd2af348dc fix(core): ensure touch_get_state does not return 0
[no changelog]
2025-04-07 17:49:04 +02:00
cepetr
f46bfb4bfe feat(core): fix out-of-range touch coordinates on T3W1
[no changelog]
2025-04-07 17:49:04 +02:00
tychovrahe
f1120d53c2 fix(core/prodtest): provide BLE driver with pairing code when accepting pairing
[no changelog]
2025-04-07 15:05:57 +02:00
tychovrahe
0355ea6dd3 feat(core): send pairing code to NRF when accepting pairing
[no changelog]
2025-04-07 15:05:57 +02:00
kopecdav
56bad5bd3a feat(core): Update stwlc38 patching cut selection + new stwlc38 FW patch and configs [no changelog] 2025-04-07 13:42:10 +02:00
tychovrahe
3db788d80a fix(core): fix NFC deinitialization
[no changelog]
2025-04-07 13:41:16 +02:00
tychovrahe
d506abd9db fix(core/bootloader_ci): fix firmware upload
[no changelog]
2025-04-04 16:20:01 +02:00
cepetr
ced0a1462e feat(core): emulate hw jpeg decoder using libjpeg
[no changelog]
2025-04-04 12:59:44 +02:00
cepetr
307ac2517d feat(core): introduce JpegOverlay shape
[no changelog]
2025-04-04 12:59:44 +02:00
cepetr
db057ff6ae feat(core): allow JPEG image to be decoded as Mono8 bitmap
[no changelog]
2025-04-04 12:59:44 +02:00
cepetr
622fa05e48 feat(core): improve blending of mono8 bitmaps
[no changelog]
2025-04-04 12:59:44 +02:00
matejcik
d900eb4c54 build(core): update build to newer libtropic
* update unix port filename
* update USE_TREZOR_CRYPTO flag to LT_USE_TREZOR_CRYPTO
2025-04-04 10:26:22 +02:00
tychovrahe
7e2847c357 fix(core): allow running firmware on locked bootloader device based on allow_run_with_secret flag 2025-04-03 18:59:52 +02:00
Martin Milata
199c02adb2 build(core): only include apps.management.ble when needed
[no changelog]
2025-04-03 16:17:12 +02:00
tychovrahe
1fc6feda80 fix(core): make ble_event upy api function optional
[no changelog]
2025-04-03 16:17:12 +02:00
tychovrahe
4adf6d087d feat(core): add BLE unpair command & message
[no changelog]
2025-04-03 16:17:12 +02:00
tychovrahe
51ff4f5946 feat(core): add unpair command to BLE
[no changelog]
2025-04-03 16:17:12 +02:00
tychovrahe
8ea957b8e1 feat(core/prodtest): add hibernation on power button long-press
[no changelog]
2025-04-03 16:06:20 +02:00
tychovrahe
f579d31684 refactor(core/prodtest): make cli non-blocking, event-loop compatible
[no changelog]
2025-04-03 16:06:20 +02:00
Roman Zeyde
08bcedcaa5 fix(core): correct __main__ dict size retrieval in firmware
Otherwise, it fails to boot.

[no changelog]
2025-04-03 14:45:13 +03:00
Roman Zeyde
a91d18ba2c perf(core): intern module presizing identifiers
[no changelog]
2025-04-03 12:58:43 +03:00
Roman Zeyde
9769109229 perf(core): add __init__.py to apps.management module
Otherwise, its name is not interned by `all_modules.py.mako`.

[no changelog]
2025-04-03 12:58:43 +03:00
Martin Milata
469f093b8a feat(core): include pairing code in BLE_ALLOW_PAIRING command
[no changelog]
2025-04-02 17:08:34 +02:00
Martin Milata
88706d12f8 feat(core): ble: expose allow/reject pairing in micropython
[no changelog]
2025-04-02 17:08:34 +02:00
Roman Zeyde
14907ecd88 feat(tools): add an optional output argument to analyze-memory-dump.py
[no changelog]
2025-04-02 17:39:35 +03:00
Roman Zeyde
e6f96974de feat(core): check for sys.modules and main globals reallocations
Rewrite the static comparison in `utils.unimport_end()` in C.

[no changelog]
2025-04-02 16:01:51 +03:00
Roman Zeyde
ec87d2d21d fix(core): presize __main__ module to avoid heap fragmentation
[no changelog]
2025-04-02 16:01:51 +03:00
tychovrahe
101d584aa4 fix(core): fix BLE polling
[no changelog]
2025-04-01 21:53:30 +02:00
cepetr
7248bf2a48 fix(core): fix issue with frame buffer access on D001
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
cfea362cfc fix(core): skip polling in storage callback (workaround)
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
7dcdb54262 feat(core): introduce new polling in coreapp event loop
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
7994a0b93b feat(core): introduce kernel event loop
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
2dff869883 feat(core): add event polling to ble driver
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
edf3f19ef5 feat(core): add event polling to usb hid driver
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
97bb16776d feat(core): add event polling to usb vcp driver
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
f61da5777a feat(core): add event polling to usb webusb driver
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
cd97b8c55b feat(core): add event polling to usb driver
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
4815118a6d feat(core): add event polling to touch driver
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
8d7a25e5eb feat(core): add event polling to button driver
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
b9d15cb343 feat(core): introduce system-level event polling
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
6b045dd43d feat(core): introduce systask id & task count limit
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
24048d7094 fix(core): remove unused function declaration
[no changelog]
2025-04-01 10:00:26 +02:00
cepetr
271f029be7 fix(core): fix emulator build on macOS
[no changelog]
2025-04-01 10:00:26 +02:00
Roman Zeyde
ad73e41080 feat(core): support USB/BLE sessions
All interfaces are sharing a single 8kB buffer.
It is reallocated once per session and is acquired by the first active session.
Other concurrent sessions will respond with an "Another session in progress" error.

[no changelog]
2025-03-31 13:20:53 +03:00
Roman Zeyde
567de7e643 feat(core): increase MicroPython bytecode optimizations
[no changelog]
2025-03-28 19:46:24 +03:00
Roman Zeyde
cc416720f0 build(core): explicitly map PYOPT to MicroPython bytecode optimization level
[no changelog]
2025-03-28 19:46:24 +03:00