089db2cadf
[no changelog] |
||
---|---|---|
.. | ||
codegen | ||
dialog-designer | ||
gdb_scripts | ||
hid-bridge | ||
size | ||
snippets | ||
translations | ||
trezor_core_tools | ||
.gitignore | ||
alloc.py | ||
analyze-memory-dump.py | ||
bootloader_hashes.py | ||
build_icons.py | ||
build_mocks | ||
build_templates | ||
build_vendorheader | ||
coverage-report | ||
frozen_mpy_translator.py | ||
generate_vendorheader.sh | ||
jpg_to_h.py | ||
make_cmakelists.py | ||
provision_device.py | ||
pyproject.toml | ||
README.md | ||
rust_api_check.py | ||
rust_api_models_unification.py | ||
upysize_ignore.json |
Scripts for managing the project
This directory contains various scripts that are used either in some of the make targets, or manually, to generate code, check its size, etc.
Most used tools
headertool
Lives in trezor_core_tools/headertool.py
and is exposed as a CLI tool by the same
name.
Headertool can generate, analyze, and modify vendor and firmware headers. Use
headertool --help
to get the full list of commands.
The most common usage is headertool somefile.bin
that will dump header information.
Another useful feature is headertool -V vendor_header.bin firmware.bin
, which will
replace the embedded vendor header in firmware.bin
with the one in
vendor_header.bin
.
build_mocks
Generate .pyi
stubs from C and Rust source files.
build_templates
Regenerate sources from Mako templates.
build_vendorheader
Generate a vendor header binary from a json description.
combine_firmware
Combine a flashable image from a boardloader, bootloader, and firmware.
Everything else
codegen
Code generation tool for fonts, the loader graphic (deprecated) and cryptographic keys (also deprecated).
dialog-designer
Deprecated tool to visually preview multi-line dialogs in the old Trezor T UI.
gdb_scripts
Scripts for GDB debugger.
hid-bridge
Tool that creates a virtual HID device bridged to a UDP. This allows using the emulator as a FIDO/U2F authenticator in a browser.
size
Scripts to examine size of firmware.
snippets
Ad-hoc scripts for various one-off tasks that could become useful again.
(the whole thing is prooobably deprecated by LLMs, which will regenerate any script on demand).
translations
Tools for checking validity of translation data and its usage.
trezor_core_tools
A Python package that exposes certain functionalities as CLI commands.
headertool
and combine_firmware
live here, more may be moved or added.
Additional tools are layout_parser
, which is used to extract memory layout
information from a model .h
file, and related tool lsgen
to generate linker script files
from the model .h
.
alloc.py
Generate a HTML report of allocation count per line of code, as captured when running
emu.py -p
.
analyze-memory-dump.py
Generate a HTML report of a state of the Micropython GC heap, as captured by
trezor.utils.mem_dump
at some execution point.
build_icons.py
Regenerate embedded TOIF icons for webauthn apps from png files.
coverage-report
Combine coverage reports from multiple CI jobs and generate a report.
frozen_mpy_translator.py
Translate bytecode instructions in frozen_mpy.c to human readable form.
generate_vendorheader.sh
Uses build_vendorheader
to rebuild all vendor headers for all models.
jpg_to_h.py
Convert a JPG image to a C array that can be embedded into the firmware.
(TODO could we replace it with xxd -i?)
make_cmakelists.py
Generate a CMakeLists.txt file for the core.
provision_device.py
Run the provisioning flow on a prodtest firmware, against a staging provisioning server.
rust_api_checks.py
Check that the Rust UI API is consistent with the Python UI API.
rust_api_models_unification.py
Checks the consistency of the Rust API between models.