1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-07-25 16:08:32 +00:00
Commit Graph

2067 Commits

Author SHA1 Message Date
Martin Milata
241fcc0044 feat(core): homescreen streaming
[no changelog]
2025-05-14 23:57:03 +02:00
Martin Milata
846dd3b934 refactor(common/protob): rename TranslationDataRequest to DataChunkRequest
[no changelog]
2025-05-14 23:57:03 +02:00
Roman Zeyde
78227ed20f perf(core): remove more local imports from Bitcoin signing flow
[no changelog]
2025-05-13 11:58:36 +03:00
Martin Milata
46c53bc30c feat(core): add Capability.NFC to Features 2025-05-13 10:48:13 +02:00
Martin Milata
a04525c6de feat(core): add Capability.BLE to Features 2025-05-13 10:48:13 +02:00
Roman Zeyde
3a7850f6a0 chore: remove BNB Beacon Chain support 2025-05-13 09:04:48 +03:00
Roman Zeyde
bff1ba454b fix(core): clear loop.this_task before restart
[no changelog]
2025-05-10 11:19:51 +03:00
Roman Zeyde
1f8ebc3562 fix(core): use bool for _ignore_loader_messages
Since `trezor.pin` is persisted across sessions, it should use constant-size globals.

[no changelog]
2025-05-10 10:28:23 +03:00
tychovrahe
3fe0c90c1c feat(core): change internal communication with NRF to SPI only
[no changelog]
2025-05-07 16:36:40 +02:00
tychovrahe
54202b9f53 feat(nordic): send busy response when trezor is not listening to BLE messages
[no changelog]
2025-05-07 16:08:46 +02:00
Roman Zeyde
7661c13a22 feat(vendor): reimplement utils.presize_module() in C
[no changelog]
2025-05-07 12:18:52 +03:00
Roman Zeyde
ed89a99fa6 fix(core): handle empty 'info_items' in Caesar 'confirm_value'
[no changelog]

(cherry picked from commit bf2a588a25)
2025-05-06 08:41:40 +02:00
Roman Zeyde
bf2a588a25 fix(core): handle empty 'info_items' in Caesar 'confirm_value'
[no changelog]
2025-05-05 15:31:11 +03:00
Roman Zeyde
d3df16e84e fix(core): propagate exceptions via unimport.__exit__
[no changelog]
2025-05-02 10:45:55 +03:00
Ioan Bizău
23058e10df chore(build): update definitions timestamps 2025-04-30 09:15:20 +02:00
matejcik
17990e1c80 style: fix linter complaints 2025-04-29 14:54:41 +02:00
matejcik
4e7d265312 fix(core/solana): fix UI for Solana transactions after recent changes 2025-04-29 14:54:41 +02:00
matejcik
7e10e25514 fix(core/solana): improve token info display 2025-04-29 14:54:41 +02:00
matejcik
dd5a3365a9 fix(core/solana): avoid looking at not-exposed instruction ids 2025-04-29 14:54:41 +02:00
matejcik
e4e6d60e64 refactor(core/solana): restructure programs.json and related code 2025-04-29 14:54:41 +02:00
Eugene Rossokha
e3af93e89f feat(core): display correct rent information 2025-04-29 14:54:41 +02:00
Eugene Rossokha
ffbdea202a feat(core): add loadable solana tokens 2025-04-29 14:54:41 +02:00
Eugene Rossokha
1d444c3845 fix(core): add display_name for missing token_mint 2025-04-29 14:54:41 +02:00
M1nd3r
b420f1d434 chore(core): add wire logging with interface
[no changelog]
2025-04-28 23:52:47 +02:00
M1nd3r
b6e0940ad7 chore(core): simplify exception func in log.py
[no changelog]
2025-04-28 23:52:47 +02:00
Roman Zeyde
09a323e578 fix(core): remove debug-related data from PYOPT=1 firmware builds
It reduces T3T1 release universal firmware size by ~2kB:
```
Memory region         Used Size  Region Size  %age Used
           FLASH:     1580304 B      1664 KB     92.74%
```

Before this PR:
```
Memory region         Used Size  Region Size  %age Used
           FLASH:     1578256 B      1664 KB     92.62%
```

(Tested with `TREZOR_MODEL=T3T1 PYOPT=1 make -C core build_firmware`)

[no changelog]
2025-04-24 17:27:21 +03:00
Roman Zeyde
41db573ef9 feat(core): check that GC restores free heap memory
Enabled only for frozen debug builds.

[no changelog]
2025-04-24 16:26:36 +03:00
Roman Zeyde
a787d21b3f fix(core): preallocate save_screen_directory to allow heap checking
Otherwise, free heap memory will decrease after handling `DebugLinkRecordScreen`.

[no changelog]
2025-04-24 16:26:36 +03:00
Roman Zeyde
46d6732462 feat(core): don't use heap for storing coverage data
[no changelog]
2025-04-24 07:39:46 +03:00
Pavol Rusnak
9037c398eb
chore(crypto): use new email for stick 2025-04-20 22:04:38 +02:00
Roman Zeyde
c48cfbc59e chore(core): update coverage to 5.5
Because `coverage` 4.5.4 requires Python <=3.8 (EOL).

[no changelog]
2025-04-16 15:14:53 +03:00
Martin Milata
2a40d91790 refactor(core): convert modtrezorio.ble to rust
[no changelog]
2025-04-15 13:08:37 +02:00
Roman Zeyde
9bd81926af feat(core): check for runtime QSTR allocations
[no changelog]
2025-04-14 22:42:16 +03:00
Roman Zeyde
c2dd63a6bd chore(core): move core/prof into core/src/prof
It would allow interning profiling-related QSTRs in debug emulator builds.

[no changelog]
2025-04-14 22:40:52 +03:00
Roman Zeyde
c90b30fbf7 chore(core): intern Monero-related QSTRs
[no changelog]
2025-04-14 22:39:24 +03:00
Roman Zeyde
07ad01220c perf(core): remove imports from hot path
[no changelog]
2025-04-10 14:19:34 +03:00
Martin Milata
93f23e6318 feat(core): start BLE advertising on boot
[no changelog]
2025-04-09 21:25:37 +02:00
Roman Zeyde
8df465d7e8 build(core): replace all_modules.py by qstrdefsport.h
[no changelog]
2025-04-07 20:19:31 +03:00
tychovrahe
4adf6d087d feat(core): add BLE unpair command & message
[no changelog]
2025-04-03 16:17:12 +02: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
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
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
tychovrahe
aa682bcc6e fix(core): generate coin support for discovery kits
[no changelog]
2025-03-27 15:46:46 +01:00
Roman Zeyde
aecaf306f3 fix(core): don't handle nostr-related messages in BTC-only firmware
[no changelog]
2025-03-27 12:30:02 +02:00
Roman Zeyde
3a24945de9 fix(core): allow firmware upgrade even if language change failed 2025-03-26 13:12:38 +02:00
Roman Zeyde
8b4936926c fix(core): preallocate storage.debug.reset_internal_entropy
It should allow GC to cleanup `int_entropy`, which can be
allocated in random heap position, causing fragmentation.

[no changelog]
2025-03-25 12:05:52 +02:00
Roman Zeyde
f942d13748 fix(core): alloc GC to free _previous_remaining in trezor.pin
[no changelog]
2025-03-25 12:05:52 +02:00
tychovrahe
283561c073 fix(core: fix homescreen ble checker task
[no changelog]
2025-03-23 17:04:05 +01:00
Roman Zeyde
52f5593f28 feat(core): add BLE checker task to Homescreen
[no changelog]
2025-03-20 15:22:32 +02:00
Roman Zeyde
2f97b61870 fix(core): correct confirmation title on Caesar 2025-03-18 12:32:36 +02:00
Roman Zeyde
2333a6a262 feat(core): log GC info in case of OOM
Enabled on debug firmware and non-frozen emulator.

[no changelog]
2025-03-17 20:17:42 +02:00
Ioan Bizău
3efa0480c6 feat(core): add libtropic to the unix build
[no changelog]
2025-03-13 15:08:48 +01:00
Roman Zeyde
41096b5ffd
fix(core): use smaller button for upgrade cancellation 2025-03-13 12:07:07 +01:00
obrusvit
29d69db300 Merge branch 'release/25.03' into obrusvit/merge-release-25.03 2025-03-10 11:17:26 +01:00
Roman Zeyde
2400fcb95d fix(core): scope Cardano confirmation to allow GC
Otherwise, we may run out of heap due to recursion.

[no changelog]
2025-03-09 21:48:30 +02:00
Roman Zeyde
f67a506e9c fix(core): use correct fonts for staking confirmation on Delizia
[no changelog]
2025-03-05 12:23:03 +02:00
Roman Zeyde
6f3e5a6cd7 feat(core): estimate workflow stack usage
By zeroing the stack memory before the workflow runs,
we can estimate how much of it has been used (by reading
the stack memory and looking for the first non-zero value).

[no changelog]
2025-03-04 14:18:15 +02:00
Andrew Kozlik
b2701596cc chore: Add emulator warnings.
[no changelog]
2025-03-04 12:49:30 +01:00
Roman Zeyde
e08b15ecaf feat(core): use Account info instead of Send from in Delizia staking UI
[no changelog]
2025-03-04 13:35:08 +02:00
Ioan Bizău
dcf65b1d8f chore(core): remove unnecessary check
[no changelog]
2025-02-28 14:15:45 +01:00
Ioan Bizău
d0681212b0 fix(core): use BIP-340 to sign Nostr events
[no changelog]
2025-02-28 14:15:45 +01:00
Ioan Bizău
50879cd4da chore(core/nostr): remove Nostr from production build
[no changelog]
2025-02-28 14:15:45 +01:00
Ioan Bizău
aabd4ee9b7 feat(core/ui): add basic confirmation for Nostr signing
[no changelog]
2025-02-28 14:15:45 +01:00
Ioan Bizău
073038771e feat(core): introduce Nostr
[no changelog]
2025-02-28 14:15:45 +01:00
Roman Zeyde
0b5dbcae1b feat(core): confirm multiple Solana Deactivate/Withdraw instructions
[no changelog]

(cherry picked from commit 1954c7cbc2)
2025-02-28 12:56:10 +01:00
Roman Zeyde
1954c7cbc2 feat(core): confirm multiple Solana Deactivate/Withdraw instructions
[no changelog]
2025-02-28 13:51:37 +02:00
Roman Zeyde
8568378a8a fix(core): confirm only visible Solana staking instructions
[no changelog]

(cherry picked from commit ee1cc4ae81)
2025-02-26 20:47:18 +01:00
Roman Zeyde
ee1cc4ae81 fix(core): confirm only visible Solana staking instructions
[no changelog]
2025-02-26 15:25:31 +02:00
obrusvit
331f71dc91 chore(common): set definitions timestamp 2025-02-26 01:24:30 +01:00
Ioan Bizău
6c38f0d63d feat(core): friendlier way to confirm long messages 2025-02-25 22:51:16 +01:00
Ioan Bizău
64b9084b6c feat(core/ui): ability to cancel recovery on word count selector 2025-02-25 20:30:39 +01:00
Roman Zeyde
1857612a37 feat(core): add Solana staking layouts 2025-02-25 11:55:03 +01:00
Roman Zeyde
803955b047 feat(core): add description to Delizia confirm_output()
It will allow confirming the vote account for Solana staking.

[no changelog]
2025-02-25 11:55:03 +01:00
Roman Zeyde
8a5373c733 feat(core): add extra info item to summary menu on Delizia
It will allow confirming the blockhash for Solana transactions.

Also, simplify arguments passing into `new_confirm_output()`.

[no changelog]
2025-02-25 11:55:03 +01:00
Roman Zeyde
d33244912b refactor(core): separate base and priority Solana fees
Move fee calculation into `Transaction` class.

Also, replace floating-point division by integer division in fee calculation.

[no changelog]
2025-02-25 11:55:03 +01:00
matejcik
02190b5871 fix(core): do not repeat "cancel backup check" twice on screen 2025-02-20 16:09:14 +01:00
matejcik
87b7eccb6a fix(core): do not use local import for RecoveryAborted
This side-steps a double-import problem that is triggered when we
perform an unimport in a particularly unfortunate order. (don't ask)

The root cause of the problem still exists: we can get into a situation
where a live recovery_homescreen is running from an unimported module,
meaning that any new import of anything from the recovery_device
namespace will _also_ be a double-import. We don't have a fix for that
situation yet, so instead we avoid this particular local import, which
would cause homescreen_dialog to have its own copy of the `recover`
module.
2025-02-20 16:09:14 +01:00
matejcik
2ee0f7028c fix(core): update exception name in layout shutdown reporting
also return after the exception branch, so that the "value" is not
reported twice, once as an exception and a second time as a "non-none
return"
2025-02-20 16:09:14 +01:00
Ioan Bizău
609e14264f fix(core/ui): back button
[no changelog]
2025-02-19 16:14:08 +01:00
Roman Zeyde
f4ebc0d9d8 docs(core): fix get_bytes_as_str docstring
[no changelog]
2025-02-18 11:56:42 +01:00
obrusvit
c69d2c9aff Merge branch 'release/25.02' into obrusvit/merge-release-25.02 2025-02-13 11:42:08 +01:00
Ioan Bizău
b8e2709ca8 fix(core): fix br_code inconsistency in sign-tx
[no changelog]
2025-02-11 16:10:58 +01:00
Ioan Bizău
c8210056da fix(core/ui): fix back button
[no changelog]
2025-02-11 16:10:58 +01:00
Ioan Bizău
d487f97ecf feat(core): show ETH account info on model T 2025-02-11 16:10:58 +01:00
Roman Zeyde
061e71213e test(core): don't fetch full DebugLinkState by default
In case the main workflow is restarting after a `DebugLinkDecision`,
sending the response of `DebugLinkGetState` may get interrupted.

We are making the state fetching explicit, in order to avoid the
"restart" race condition (as described in #4401).

Following the above change, text-based layout recording is removed.

[no changelog]
2025-02-07 11:21:44 +01:00
obrusvit
cf5b89f90a refactor(core): get rid of font IDs in micropython
- application layer should not deal with fonts at all
- distinction between MONO and others is preserved by bool argument in
`should_show_more` interpreted as `is_data`

[no changelog]
2025-02-06 13:32:29 +01:00
tychovrahe
566f82ccd8 refactor(core): make homescreen max size model dependent
[no changelog]
2025-02-06 12:40:23 +01:00
obrusvit
fa9e5338c3 chore(common): set definition timestamps
[no changelog]
2025-01-29 11:55:35 +01:00
tomasklim
78768950fd chore(core): use label for evm networks generation 2025-01-28 14:17:46 +01:00
obrusvit
15967a312b fix(core): explicitly delete keyboard layout
- seems that keyboard LayoutObj was not properly deallocated resulting
in MemoryError. Fix by calling the dunder `del` method explicitly fixes
the issue
- the problem was on Model T (Bolt), but applying it for all layouts to
prevent similar problem
2025-01-27 23:43:33 +01:00
tychovrahe
69a61e98e0 feat(core): adjust codec_v1 to work with differently sized RX and TX packets
[no changelog]
2025-01-23 16:46:12 +01:00
tychovrahe
5fd773757c fix(core): fix fading issues 2025-01-23 15:24:00 +01:00
Ioan Bizău
5a13b4560d fix(core): get rid of colon in some TS5 descriptions
[no changelog]
2025-01-23 12:46:54 +01:00
Ioan Bizău
e99beaf486 refactor(core): merge confirm_blob and confirm_value
[no changelog]
2025-01-23 12:46:54 +01:00
obrusvit
00740b560c refactor(core): consistent naming of UI layouts
- follow-up on 862c987779
- layout_bolt stays the same
- layout_samson -> layout_caesar
- layout_quicksilver -> layout_delizia
- use super for importing rust modules in layout code

[no changelog]
2025-01-20 12:29:24 +01:00
matejcik
38e362cd5b fix(core): improve ButtonRequest.name in backup confirmation
[no changelog]
2025-01-17 11:28:12 +01:00
matejcik
8b6d8e7572 fix(all): make more protobuf fields required
[no changelog]
2025-01-17 11:28:12 +01:00
tychovrahe
b2a4db1463 feat(core): expose BLE functionality to micropython
[no changelog]
2025-01-14 09:15:12 +01:00
tychovrahe
eef2f4113f refactor(core): improve USB events handling, more extensible implementation
[no changelog]
2025-01-13 18:46:11 +01:00