1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-04-26 12:09:02 +00:00
Commit Graph

972 Commits

Author SHA1 Message Date
obrusvit
8cb0cbcfe5 fix(tests): handle layout-specific translations 2025-04-16 17:11:07 +02:00
obrusvit
3a7e275fce 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-16 17:11:06 +02:00
matejcik
0db727b21b chore(core): include T3W1 certificate for the emulator 2025-04-15 12:37:25 +02:00
tychovrahe
4adf6d087d feat(core): add BLE unpair command & message
[no changelog]
2025-04-03 16:17:12 +02:00
Roman Zeyde
f1d3f835b8 chore(python): replace 'pytest-rerunfailures' with 'pytest-retry'
[no changelog]
2025-03-26 14:15:29 +02:00
obrusvit
419737db7c chore(core): remove obsolete font names from blobs
[no changelog]
2025-03-25 18:26:15 +01:00
Roman Zeyde
f43954e672 test(python): don't send extra InitDevice and EndSession during setup
[no changelog]
2025-03-18 17:45:34 +02:00
Vadim Anufriev
40d8760666 chore(python): update cli docs for reboot-to-bootloader command 2025-03-18 11:35:11 +01:00
matejcik
2e72a8ce1b fix(python/debuglink): time out after waiting for empty-state response
...avoiding a problem where, if the timing is unfortunate, the reply may
get lost when a workflow is ending

(cherry picked from commit 3056b4934e)

[no changelog]
2025-03-17 20:16:14 +02:00
Roman Zeyde
49c9ad04cd feat(python): ignore unrelated responses
Old responses may be still in the receive queue
(blocking the device from handling new requests).

Let's "flush" them before starting the test.

[no changelog]
2025-03-17 20:16:14 +02:00
matejcik
e1ce484ba7 feat(python): add a timeout argument to read() from transport
also take the opportunity to switch to new style typing annotations
syntax

[no changelog]
2025-03-17 20:16:14 +02:00
Lukas Bielesch
17603ffe41 refactor(python): move Screen Buttons to debuglink 2025-03-12 14:34:25 +01:00
M1nd3r
ec4fbecc1d chore(python): add description to nostr commands group
[no changelog]
2025-03-11 16:11:33 +01:00
Roman Zeyde
d6c0e7e203 test(python): rerun tests when first response chunk is lost
Also, make sure that Python tests are using `python/setup.cfg`.

[no changelog]
2025-03-10 23:10:40 +02:00
Martin Milata
b765cb1e2c fix(python): runaway emulator process
[no changelog]
2025-03-10 15:06:05 +01:00
Ioan Bizău
d515153ca5 docs: fix link to examples
[no changelog]
2025-02-28 14:15:45 +01:00
Ioan Bizău
5282321fba chore(core): improve error message
[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
9a62cbd781 chore(python): include the invalid chunk in RuntimeError message
[no changelog]
2025-02-12 15:55:44 +01:00
matejcik
4a9ac3a956 chore(python): bump version after release 2025-02-12 14:26:15 +01:00
matejcik
b2098ff03f docs(python): regenerate OPTIONS.rst 2025-02-12 14:26:15 +01:00
matejcik
535950ac29 docs(python): generate changelog for 0.13.10 2025-02-12 14:26:15 +01:00
matejcik
f1c33e2f06 fix(python): make cryptography a required dependency
fixes #4493
2025-02-12 14:26:15 +01:00
matejcik
dabc5546b5 fix(python): support T3B1 in trezorctl fw download
[no changelog]
2025-02-12 11:17:38 +01:00
matejcik
fcb76df9f5 style(python): update trezorlib.firmware to new-style type annotations
[no changelog]
2025-02-12 11:17:38 +01:00
matejcik
72d14a370c feat(python): allow trezorctl firmware commands to work with unknown models
[no changelog]
2025-02-12 11:17:38 +01:00
matejcik
cba5e60c96 docs(python): document trezorlib exception classes 2025-02-12 11:17:38 +01:00
matejcik
1b45c0d491 feat(python): support future Trezor models
fixes #3993
2025-02-12 11:17:38 +01:00
matejcik
d9495bc76b refactor(python): improve models.py
* update typing annotations
* extract usb ids to common constants
2025-02-12 11:17:38 +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
tychovrahe
25ce4e3fc9 fix(python): prevent regeneration of JPEG homescreen image if not necessary
[no changelog]
2025-02-06 12:40:23 +01:00
tychovrahe
d9c547c590 fix(core): calculate image hash including padding between header and code
[no changelog]
2025-01-29 16:56:11 +01:00
Roman Zeyde
5cdd0e7e74 feat(python): check that translations are using correct layout names
[no changelog]
2025-01-28 15:18:12 +02:00
matejcik
89dc753c6e chore(python): add production keys for T3W1
[no changelog]
2025-01-23 14:13:57 +01:00
Roman Zeyde
206119953d feat(python): support per-layout translated text strings
[no changelog]
2025-01-22 10:41:35 +02:00
Roman Zeyde
7ee1259aaa refactor(core): use layout name for translation font keys
It would simplify `TranslationsDir.load_lang` method.

[no changelog]
2025-01-22 10:41:35 +02:00
Roman Zeyde
e9aca68612 docs: make sure changelog fragments end with a period
Also, run `generate-changelog.py` over prodtest changelog.

[no changelog]
2025-01-20 14:54:27 +02: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
79cc7a9693 style(python): improve type hints for input flows 2025-01-17 11:28:12 +01:00
matejcik
6a5836708f refactor(python): replace usages of @expect 2025-01-17 11:28:12 +01:00
matejcik
53bdef5bb4 feat(python): introduce device.setup() for entropy check
this deprecates `device.reset()`, and moves the new arguments to
`device.setup()`.

Also it changes default backup type on core devices to SLIP39-single,
same as Suite, and randomizes the number of entropy check rounds, if not
provided from outside.
2025-01-17 11:28:12 +01:00
matejcik
4610655d77 feat(python): introduce a deprecation helper
it's a Python class that emits a DeprecationWarning if you try to use it
for almost anything
(two exceptions that can't be overriden from the wrapper:
 * isinstance(depr, SomeOtherClass)
 * depr is None)

we will return instances of this class to indicate that a return value
of something will be going away
2025-01-17 11:28:12 +01:00
matejcik
0cae2ab2d0 deprecation(python): deprecate @expect 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
matejcik
c7231e5de9 feat(python): introduce expect argument to client.call 2025-01-17 11:28:12 +01:00
Roman Zeyde
cbfbd48e3a docs: use 'trezorctl firmware update'
Following #1258.

[no changelog]
2025-01-10 10:49:39 +01:00
obrusvit
862c987779 refactor(core): consistent naming of UI layouts
- UI layouts name changes:
  - model_tt -> layout_bolt
  - model_tr -> layout_samson
  - model_mercury -> layout_quicksilver
- rust features `model_xyz` freed for different use, now it's
`layout_xyz`
- input_flow function names are based on UI layout and not internal
model name (i.e. quicksilver instead of t3t1)
- directory names and commentary changed accordingly

[no changelog]
2025-01-09 22:57:14 +01:00
Andrew Kozlik
f573db6953 feat(python): Implement entropy check workflow in device.reset(). 2025-01-02 13:44:36 +01:00
Andrew Kozlik
5d2fa78b3f chore(python): Add shamir-mnemonic and SLIP10 packages. 2025-01-02 13:44:36 +01:00
Andrew Kozlik
df97d8d958 feat(common): Add messages for entropy check workflow.
[no changelog]
2025-01-02 13:44:36 +01:00
tychovrahe
a8e5d471fe fix(python): fix toif generation from grayscale
[no changelog]
2024-12-30 16:12:48 +01:00
M1nd3r
0643d95a67 style: fix article
[no changelog]
2024-12-02 12:39:15 +01:00
Ondřej Vejpustek
36c7423889 feat(python): support sortedmulti 2024-12-02 12:21:24 +01:00
Ondřej Vejpustek
94cf3a29a0 feat(core,python,rust): add autogenerated files 2024-12-02 12:21:24 +01:00
M1nd3r
2ef0071611 fix(python): remove unused type ignore after click version bump
[no changelog]
2024-11-19 11:02:23 +01:00
tychovrahe
fa953d7296 chore(core): switch T3W1 support to U5
[no changelog]
2024-11-14 09:30:20 +01:00
Lukas Bielesch
a4da695430 chore(core): Use enum for for dealing with device rotations 2024-11-13 11:08:56 +01:00
matejcik
dd770ba715 fix(python): do not take legacy snapshots on PinRequest and PassphraseRequest
legacy < 1.11.0 will never answer those because PinRequest and
PassphraseRequest block waiting for PinAck / PassphraseAck over wirelink
and ignore debuglink
2024-11-12 16:55:17 +01:00
matejcik
8fb41ee290 feat(core): enforce return type annotations 2024-11-12 16:55:17 +01:00
matejcik
dfac2ae4dd style(python): upgrade debuglink.py to 3.10 style type annotations 2024-11-12 16:55:17 +01:00
matejcik
3a8f92f64d tests(core): fix upgrade tests 2024-11-12 16:55:17 +01:00
matejcik
8d2f0a6566 style: make style_check passing 2024-11-12 16:55:17 +01:00
matejcik
ef90546324 fix(python): opportunistically catch a debuglink desync
In certain cases a DebugLinkState response can get stalled and debuglink
will not read it -- i.e., a situation analogous to wirelink de-sync.
There doesn't seem to be a good way to force-sync debuglink the same way
wirelink does it, but we can detect a wrong response to a
DebugLinkGetState and skip it.
2024-11-12 16:55:17 +01:00
matejcik
f4240d6309 chore(python): improve recovery type deprecation warning 2024-11-12 16:55:17 +01:00
matejcik
b48c36c2bf fix(python): improve robustness of TrezorClientDebugLink setup
* improve sync_responses to work on uninitialized instance
* sync responses at construction time
2024-11-12 16:55:17 +01:00
matejcik
d385667b4a fix(tests): restore test functionality on legacy
The global layout related changes were wrong for T1 where debuglink
behavior is significantly different; in particular, it is not always
possible to communicate over debuglink.

This change reverts to the old behavior for T1B1 and keeps the new one
only for core-based models.
2024-11-12 16:55:17 +01:00
matejcik
11ae7a92ab style: fix complaining lints & formatters 2024-11-12 16:55:17 +01:00
matejcik
0e8dcbb498 feat(core): unify RustLayout, implement single global layout 2024-11-12 16:55:17 +01:00
Lukas Bielesch
31e0518588 chore(python): add shortcut in trezorlib for academic seed 2024-11-01 16:44:31 +01:00
obrusvit
b2b93d73f4 fix(cli/cardano): chunkify click option 2024-10-30 09:15:10 +01:00
M1nd3r
16da9a8889 chore(common): separate definitions of protobuf options
[no changelog]
2024-10-23 22:27:48 +02:00
Ondřej Vejpustek
c8faac952a feat(python): implement benchmark application interface 2024-10-11 16:35:34 +02:00
Ondřej Vejpustek
b436b39091 chore(core): add benchmark messages
[no changelog]
2024-10-11 16:35:34 +02:00
tychovrahe
915d4fca94 feat(core): add support for T3W1, on F4
[no changelog]
2024-10-09 15:06:40 +02:00
M1nd3r
c99988312a feat(core): add pairing credential manager
[no changelog]
2024-10-09 10:44:30 +02:00
Darsey Litzenberger
9416caade4 feat(python): add pretty-printing of protobuf messages in IPython 2024-10-02 10:38:27 +02:00
Ioan Bizău
c82fad68e7 fix: clarify how to break out of build_tx loops
[no changelog]
2024-09-19 10:17:21 +03:00
tychovrahe
954c7f422b feat(tools): support odd-wide greyscale icon conversion
[no changelog]
2024-09-17 17:46:11 +02:00
matejcik
abe51b93a8 fix(python): prevent accidental modification of models.TREZORS 2024-09-11 12:59:04 +02:00
matejcik
6506b02e2e feat(python/debuglink): introduce layout type awareness
[no changelog]
2024-09-11 12:59:04 +02:00
matejcik
21988d6ef4 style(python): fix flake8 warning on python 3.12
[no changelog]
2024-08-29 10:56:21 +02:00
matejcik
ed79d35de9 feat(python): make webusb transport more resilient
* convert more USB errors into TransportExceptions
* add a timeout + infinite loop for read/write operations,
  so that they are interruptible by Python, instead of leaving
  the interface in a bad state when hard-killed
* (also ctrl+c now works if the process is waiting for usb)
2024-08-28 00:08:48 +02:00
Andrew Kozlik
2a567f3a0c feat: Remove display_random feature. 2024-08-27 19:33:23 +02:00
Ioan Bizău
522d33a71f refactor(core): send out ButtonRequest name
[no changelog]
2024-07-19 11:28:07 +03:00
tychovrahe
354dad617d fix(core): fix vector table alignment on STM32U5
[no changelog]
2024-07-16 16:38:48 +02:00
tychovrahe
7c94080227 refactor(core): move vendor headers to model specific directories
[no changelog]
2024-07-16 15:56:28 +02:00
tychovrahe
11b1d5ca41 chore(core): add T3B1 production keys
[no changelog]
2024-07-16 15:56:28 +02:00
tychovrahe
78b4017859 feat(core): add support for T3B1 2024-07-16 15:56:28 +02:00
Andrew Kozlik
b6b1ad8825 feat(python): Implement DebugLinkOptigaSetSecMax. 2024-07-09 16:52:50 +02:00
Andrew Kozlik
b71a809da3 feat(common): Add DebugLinkOptigaSetSecMax message.
[no changelog]
2024-07-09 16:52:50 +02:00
obrusvit
2de8acc141 chore(core): remove CoSi functionality
trezorctl CoSi feature is removed from all models
2024-07-01 09:32:38 +02:00
matejcik
3a039c505f chore(python): bump version after release 2024-06-25 13:43:13 +02:00
matejcik
58b1a95052 docs(python): update README 2024-06-25 13:43:13 +02:00
matejcik
9b1bffca3b docs(python): changelog for 0.13.9 2024-06-25 13:43:13 +02:00
matejcik
d1981e745e fix(python): fallback for trezorctl device setup on older firmwares
fixes #3956
[no changelog] because the slip39-single feature was not yet released
2024-06-25 13:43:13 +02:00
matejcik
32d26933a6 style(python): modernize type annotations in cli/device.py 2024-06-25 13:43:13 +02:00
matejcik
92e8bf5e60 chore(python): regenerate documentation 2024-06-25 13:43:13 +02:00
matejcik
e5686c24e3 build(python): update setuptools manifest 2024-06-25 13:43:13 +02:00
matejcik
cd55d32407 refactor(python/protobuf): allow field types imported in the same module 2024-06-25 13:43:13 +02:00
matejcik
27fef37cc9 style(python): modernize type annotations in protobuf.py 2024-06-25 13:43:13 +02:00