TZ
← All projectsTrezor

Trezor firmware

Firmware monorepo for Trezor One, Model T, and Safe devices.

BitcoinHardware walletsNormal
Repository coverage

2650 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

915security candidates307second-pass queue287AI analyses
338commits · 30 days
577commits · 60 days
1352commits · 180 days
2649commits · 365 days
Backfill bands
Aug 5 → Feb 61298 seen115 candidatesComplete
Feb 6 → Jun 6775 seen58 candidatesComplete
Jun 6 → Jul 6217 seen13 candidatesComplete
Jul 6 → Aug 5360 seen54 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

66/100 average clarity
470Strong · 80–100
1316Adequate · 60–79
859Thin · 40–59
5Opaque · 0–39
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
Jakub Janků1997184
Martin Pastyřík2384173
Roman Zeyde56617652071
tychovrahe29210440061
cepetr1968215059
Ioan Bizău2307622059
obrusvit2137614064
M1nd3r2067121071
Lukas Bielesch846719067
PrisionMike945941073
Martin Milata1744612063
Ondřej Vejpustek95342060
Analysis record

Published AI watches

Last scanned 1 hour, 2 minutes ago

Low 33 AI analysisMessage 67 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(python/trezorlib): enable entropy check on T1 by default

This commit changes the Trezor Python library so that, when setting up a Trezor Model One (the original Trezor 1 device), it now performs an entropy check by default if the device runs firmware 1.13.1 or newer. Previously, the library only…

Enables a previously disabled security/validation feature (entropy check) for a specific device modelAdds version-gated behavior to avoid errors on older firmwareDefensive hardening of wallet setup randomness verification
a4af9107by Andrew Kozlik+10−42 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): remove scons related files

This commit is a routine cleanup that removes the old SCons build system files from the Trezor Core firmware repository. It deletes Makefiles, SConscripts, and related Python helper scripts, but does not change any firmware source code, cr…

a4b25c31by cepetr+5−927554 files
No security note in commit
Informational 22 AI analysisMessage 80 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): assorted micropython-1.28.0 fixes

This commit updates Trezor's embedded MicroPython interpreter from an older version to 1.28.0. It pulls in several upstream MicroPython bug fixes, including stricter buffer-size checks for converting integers to bytes, a new stack-safety A…

Synchronizes upstream MicroPython fixes that include buffer-size and stack-safety hardeningPrevents Ctrl+C interruption of frozen boot code, reducing denial-of-service/control-flow risk during bootFixes sys.stdout.buffer.write() return value, which could affect code relying on correct I/O semantics
7ba7879dby Martin Milata+36−4012 files
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): replace hexlify with bytes.hex()

This is a large but straightforward internal cleanup: the project switched from using the MicroPython `ubinascii` module's `hexlify`/`unhexlify` functions to the standard Python `bytes.hex()` and `bytes.fromhex()` methods. The change remov…

44aa469eby Martin Milata+1334−1383120 files
No security note in commit
Informational 17 AI analysisMessage 70 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): use mp_obj_new_str_from_vstr

This is a code cleanup change in Trezor's firmware that swaps one MicroPython internal helper for another. It replaces calls that create byte or string objects from a vstr buffer with newer, purpose-built helpers. The commit message says t…

Refactor only: helper function renames with equivalent semanticsNew str helper adds UTF-8 validation; bytes helper does not validateNo input validation, length, or error-handling changes observed
7ea11191by Martin Milata+72−7433 files
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): get rid of the STATIC macro

This commit is a large but purely mechanical code cleanup: it replaces the custom STATIC macro with the standard C keyword static across many MicroPython module files. There is no change to program logic, security boundaries, or behavior. …

053def4cby Martin Milata+789−79757 files
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core): fix renamed micropython modules

This commit is a routine code cleanup that updates Trezor firmware to match a newer MicroPython version where built-in module names dropped the 'u' prefix (for example, 'uos' became 'os' and 'ustruct' became 'struct'). It renames imports, …

e1edbee0by Martin Milata+86−11727 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core/rust): separate trezor-crypto to its own Rust crate

This commit is a large but straightforward internal refactoring: the cryptographic code is moved from one Rust crate (`rtl`) into a new dedicated crate (`crypto`), and all project dependencies are updated to point to the new crate. The act…

No security-relevant code changes detectedRefactoring only: moving existing crypto wrappers and build logic into a new crateFeature flags and C source lists preserved from the original `rtl` crate
836142c7by matejcik+2213−195139 files
No security note in commit
Informational 17 AI analysisMessage 90 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(core/embed): reorganize error handling

This commit is a code cleanup that moves how Trezor firmware handles fatal errors and shutdowns between its internal software layers. It does not add new user-facing features or change security protections. The main risk is that reorganizi…

Refactor of fatal-error and shutdown code pathsNew noreturn annotations on systask_exit, systask_exit_error, systask_exit_fatal, systask_killRemoval of duplicated test-only system_exit_error/system_exit_fatal implementations
a9dbab53by matejcik+408−32227 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core/bootloader): correct "Change FW vendor" title

This commit changes a single on-screen label in the Trezor bootloader from lowercase 'Change fw vendor' to uppercase 'Change FW vendor'. It is purely a cosmetic wording fix with no security relevance.

5f756282by Roman Zeyde+1−11 file
No security note in commit
Low 30 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(clear_signing): calldata array support

This commit adds support in Trezor's Ethereum clear-signing feature for transactions that contain multiple embedded subcalls (like a multicall). Previously, only a single embedded call could be clearly displayed. The change lets the device…

New input validation added: callee array length must match subcall array lengthType validation enforced: each subcall blob must be bytes, each callee must be a 20-byte addressGraceful degradation preserved: unparseable subcalls fall back to raw hex display rather than failing the whole transaction
0feb0b96by PrisionMike+186−162 files
No security note in commit
Informational 15 AI analysisMessage 67 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

test(clear signing): multiple calldata

This commit only adds new automated tests for Trezor's Ethereum 'clear signing' feature. It includes a test case for an Aave multi-call transaction, a matching test data blob, and expected screen snapshots for different device models and l…

0de94b8aby PrisionMike+46−64 files
No security note in commit
Informational 19 AI analysisMessage 82 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(clear_signing): double display of amount.

This commit fixes a user-interface bug in Trezor's Ethereum 'clear signing' flow where the transaction's native ETH amount could be shown twice on the device screen. The old code tried to avoid duplication by checking whether an 'AmountFor…

No cryptographic, authorization, memory-safety, or input-validation changesChange is limited to on-screen display deduplication logicNo changelog entry requested by the vendor ('[no changelog]')
ce2282bdby PrisionMike+14−172 files
No security note in commit
Informational 21 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(clear_signing): Add enum formatter - core

This commit adds a new display formatter for Ethereum clear signing. It lets a transaction descriptor map numeric enum values (like 1 or 2) to human-readable labels (like 'stable' or 'variable') on the Trezor screen. The change is purely a…

New formatter raises InvalidFormatDefinition on unexpected/missing enum values, causing fallback to blind signing rather than displaying an untrusted labelDuplicate enum keys are rejected at descriptor decode timeNon-integer enum values are rejected at format time
4b25321cby PrisionMike+131−42 files
No security note in commit
Informational 15 AI analysisMessage 72 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

test(clear_signing): add device test for calldata formatter.

This commit only adds a new automated test case for an existing Ethereum transaction display feature. It does not change any production firmware code, so it cannot introduce a security vulnerability or fix one. It is purely a test-data add…

701624d3by PrisionMike+21−02 files
No security note in commit
Low 39 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(clear_signing): support for calldata formatter. - core changes

This commit adds a new Trezor firmware feature called 'clear signing' for nested Ethereum calls. It lets the device understand when a transaction wraps another contract call (like a router or multicall) and tries to show the user readable …

New nested calldata parsing path with explicit depth cap of 1@.to override to callee to prevent token resolution from pointing at the wrapper contract@.from and @.value rejected in nested parse to avoid displaying confidently wrong sender/value
570eb868by PrisionMike+627−503 files
No security note in commit
Informational 23 AI analysisMessage 72 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

test(clear_signing): add enum formatter device test.

This commit is a test-only addition for Trezor's Ethereum 'clear signing' feature. It adds new test cases and makes a small production-code tweak so that enum display-formatters can accept byte values (converted to integers). The change is…

Production code change is a type-handling relaxation in display formatting onlyNo changelog entry; commit is explicitly test-focusedNo vendor security disclosure or advisory referenced
b2d82435by PrisionMike+103−217 files
No security note in commit
Low 34 AI analysisMessage 77 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(crypto): replace `int` by `size_t` for nonnegative parameters

This commit is a code-quality cleanup that changes many function parameters from signed integers (`int`) to unsigned size types (`size_t`) where only non-negative lengths or sizes make sense. It also removes some now-unnecessary negative-v…

Defensive type narrowing from signed `int` to unsigned `size_t` for buffer lengths and sizesRemoval of negative-length checks that become logically unnecessary with `size_t`Assertion added in `bn_format` to guard pointer/length arithmetic
78f83c9aby M1nd3r+159−14825 files
No security note in commit
Low 36 AI analysisMessage 100 · Strong
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(common,core,python,tests): support signing Stellar Soroban authorization entries.

This commit adds a new Trezor feature that lets users sign Stellar Soroban smart-contract authorization entries. The device now supports a new message type where it derives the user's Stellar address, shows confirmation screens, and produc…

New signing surface added for Stellar Soroban authorization entriesUser confirmation flow implemented before signingAuthorization payload binds signature to network, nonce, expiration ledger, address, and invocation tree
6008cc25by Jun Luo+1641−30325 files
No security note in commit
Informational 15 AI analysisMessage 77 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

test(stellar): add Soroban authorization signing tests.

This commit only adds new automated tests for signing Stellar Soroban authorizations. It does not change any production firmware, wallet logic, or cryptographic code. There is no security vulnerability here.

72511927by Jun Luo+538−04 files
No security note in commit
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Security candidatechore(core): remove sha1 from regular FWby M1nd3r · 16d15774 · Aug 5, 2026 · 6 filesMessage 57 · ThinTriage 15Details
Commit message · M1nd3r

chore(core): remove sha1 from regular FW

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
Security candidaterefactor(crypto): prefix enumsby Ondřej Vejpustek · f1c74046 · Aug 5, 2026 · 2 filesMessage 47 · ThinTriage 15Details
Commit message · Ondřej Vejpustek

refactor(crypto): prefix enums

[no changelog]

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
Security candidaterefactor(crypto): change order of parametersby Ondřej Vejpustek · 33a119ee · Aug 5, 2026 · 1 fileMessage 57 · ThinTriage 15Details
Commit message · Ondřej Vejpustek

refactor(crypto): change order of parameters

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
Security candidatefix(crypto): prevent calling `memzero(NULL, ...)`by Ondřej Vejpustek · 0394e934 · Aug 5, 2026 · 1 fileMessage 57 · ThinTriage 15Details
Commit message · Ondřej Vejpustek

fix(crypto): prevent calling `memzero(NULL, ...)`

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
Security candidaterefactor(crypto): pass static public key to `noise_xxpsk3_*_init()`by Ondřej Vejpustek · 1b3128a4 · Aug 5, 2026 · 2 filesMessage 62 · AdequateTriage 15Details
Commit message · Ondřej Vejpustek

refactor(crypto): pass static public key to `noise_xxpsk3_*_init()`

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
Security candidaterefactor(crypto): return remote static key from `noise_xxpsk3_*_handle_*()`by Ondřej Vejpustek · 3ead1aa6 · Aug 5, 2026 · 3 filesMessage 62 · AdequateTriage 15Details
Commit message · Ondřej Vejpustek

refactor(crypto): return remote static key from `noise_xxpsk3_*_handle_*()`

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
Lower-priorityrefactor(xtask): rename ProjectProfile to ProjectConfigby cepetr · 581b37bc · Aug 5, 2026 · 2 filesMessage 62 · AdequateTriage 0Details
Commit message · cepetr

refactor(xtask): rename ProjectProfile to ProjectConfig

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityrefactor(xtask): simplify dependenciesby cepetr · 6268349f · Aug 5, 2026 · 3 filesMessage 47 · ThinTriage 0Details
Commit message · cepetr

refactor(xtask): simplify dependencies

[no changelog]

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityrefactor(xtask): introduce ResolvedBuildArgsby cepetr · c24d1be8 · Aug 5, 2026 · 5 filesMessage 47 · ThinTriage 0Details
Commit message · cepetr

refactor(xtask): introduce ResolvedBuildArgs

[no changelog]

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityrefactor(xtask): make build args tristateby cepetr · 271e249a · Aug 5, 2026 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · cepetr

refactor(xtask): make build args tristate

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityrefactor(xtask): introduce build optionsby cepetr · 75085e2a · Aug 5, 2026 · 7 filesMessage 57 · ThinTriage 0Details
Commit message · cepetr

refactor(xtask): introduce build options

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityfeat(xtask): introduce build presetsby cepetr · eefe8f7f · Aug 5, 2026 · 9 filesMessage 57 · ThinTriage 0Details
Commit message · cepetr

feat(xtask): introduce build presets

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-prioritydocs: add xtask documentationby cepetr · 4879daba · Aug 5, 2026 · 3 filesMessage 47 · ThinTriage 0Details
Commit message · cepetr

docs: add xtask documentation

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
Lower-priorityfeat(xtask): upgrade manifest.yaml for tf-tools 0.3.0by cepetr · 57b28b89 · Aug 5, 2026 · 1 fileMessage 62 · AdequateTriage 0Details
Commit message · cepetr

feat(xtask): upgrade manifest.yaml for tf-tools 0.3.0

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityfeat(core): add tf-tools 0.3.1+ configuration fileby cepetr · e554f618 · Aug 5, 2026 · 1 fileMessage 62 · AdequateTriage 0Details
Commit message · cepetr

feat(core): add tf-tools 0.3.1+ configuration file

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityfix(core): fix up clippy warnings in storage.rsby cepetr · 62354461 · Aug 5, 2026 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · cepetr

fix(core): fix up clippy warnings in storage.rs

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityrefactor(xtask): rename ResolvedBuild to ResolvedBuildFeaturesby cepetr · aaa2780b · Aug 5, 2026 · 2 filesMessage 62 · AdequateTriage 0Details
Commit message · cepetr

refactor(xtask): rename ResolvedBuild to ResolvedBuildFeatures

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Security candidatefeat(xtask): introduce project-toml build-optionsby cepetr · d44de007 · Aug 5, 2026 · 17 filesMessage 57 · ThinTriage 12Details
Commit message · cepetr

feat(xtask): introduce project-toml build-options

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
Lower-priorityci(core): fix nightly ARM emulator filenameby Martin Milata · ab95f08f · Aug 4, 2026 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · Martin Milata

ci(core): fix nightly ARM emulator filename

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
Lower-prioritychore(vendor): avoid micropython submodule noise in git statusby Martin Milata · 06cab32b · Aug 4, 2026 · 1 fileMessage 62 · AdequateTriage 0Details
Commit message · Martin Milata

chore(vendor): avoid micropython submodule noise in git status

[no changelog]

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityfix(core): speed up tropic startupby Ondřej Vejpustek · 91046b78 · Aug 4, 2026 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · Ondřej Vejpustek

fix(core): speed up tropic startup

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Security candidatetest(ethereum): fix incorrect address checksumby Tomas Martykan · 2b1938cc · Aug 4, 2026 · 3 filesMessage 67 · AdequateTriage 22Details
Commit message · Tomas Martykan

test(ethereum): fix incorrect address checksum

67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathauthentication path
Security candidatefix(python/trezorlib): enable entropy check on T1 by defaultby Andrew Kozlik · a4af9107 · Aug 4, 2026 · 2 filesMessage 67 · AdequateLow 33Details
Commit message · Andrew Kozlik

fix(python/trezorlib): enable entropy check on T1 by default

67/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
entropy or randomnessseed or entropy path
AI analysis · Low 33/100

This commit changes the Trezor Python library so that, when setting up a Trezor Model One (the original Trezor 1 device), it now performs an entropy check by default if the device runs firmware 1.13.1 or newer. Previously, the library only enabled this check on newer Trezor models and treated all Model One devices as not supporting it. An entropy check helps verify the device is generating randomness properly during wallet setup. The change is a defensive fix to enable a security feature on a previously excluded device line, not a patch for an active vulnerability.

Security candidatechore(core): remove scons related filesby cepetr · a4b25c31 · Aug 4, 2026 · 54 filesMessage 57 · ThinInformational 15Details
Commit message · cepetr

chore(core): remove scons related files

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathboot or update path
AI analysis · Informational 15/100

This commit is a routine cleanup that removes the old SCons build system files from the Trezor Core firmware repository. It deletes Makefiles, SConscripts, and related Python helper scripts, but does not change any firmware source code, cryptographic logic, or runtime behavior. The commit message explicitly says it is a chore with no changelog entry, indicating it is not a security fix.

Security candidaterefactor(core): assorted micropython-1.28.0 fixesby Martin Milata · 7ba7879d · Aug 3, 2026 · 12 filesMessage 80 · StrongInformational 22Details
Commit message · Martin Milata

refactor(core): assorted micropython-1.28.0 fixes

Relevant micropython commits:
908ab1ceca15ee6fd0ef82ca4cba770a3ec41894 py/objint: Fix int.to_bytes() buffer size checks.
86f2c285eb222f30c24df187ac66d3e0c80caf61 py: Add new cstack API for stack checking, with limit margin macro.
c046b23ea29e0183c899a8dbe1da3bed3440a255 shared/runtime/pyexec: Don't allow Ctrl+C to interrupt frozen boot code.
3bca93b2d00dec37b3770c3e4fac15f07e0b9f15 ports: Fix sys.stdout.buffer.write() return value.
2c8dab7ab4ec0884c6428afc613d9dcc322d8c6d py/objarray: Detect bytearray(str) without an encoding.

[no changelog]

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
cryptography-sensitive pathboot or update path
AI analysis · Informational 22/100

This commit updates Trezor's embedded MicroPython interpreter from an older version to 1.28.0. It pulls in several upstream MicroPython bug fixes, including stricter buffer-size checks for converting integers to bytes, a new stack-safety API, preventing Ctrl+C from interrupting frozen boot code, fixing a stdout write return value, and blocking accidental creation of bytearrays from plain strings without an encoding. The changes are mostly defensive hardening and compatibility fixes rather than a single known exploit patch. There is no vendor statement that this is a security fix, no CVE, and no credited researcher.