1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-05-29 04:08:46 +00:00
Commit Graph

4708 Commits

Author SHA1 Message Date
cepetr
b9bb71a243 refactor(core): prepare board_capabilities for secmon api
[no changelog]
2025-05-12 07:57:46 +02:00
cepetr
0f0c28404b fix(core): fix exc_return codes for non-secure world
[no changelog]
2025-05-12 07:57:46 +02:00
cepetr
9df360785e fix(core): fix incorrect constants use
[no changelog]
2025-05-12 07:57:46 +02:00
cepetr
1415c40e80 chore(core): remove unnecessary definitions
[no changelog]
2025-05-12 07:57:46 +02:00
cepetr
9fb71f8f81 fix(core): disable MSPLIM before entering next boot stage
[no changelog]
2025-05-12 07:57:46 +02:00
cepetr
adf9872988 refactor(core): prevent incomplete mpu driver build
[no changelog]
2025-05-12 07:57:46 +02:00
cepetr
8a9de0ebec feat(core): add applet feature to SConscript
[no changelog]
2025-05-12 07:57:46 +02:00
cepetr
452e63c4fb feat(core): add display feature to SConscript
[no changelog]
2025-05-12 07:57:46 +02:00
cepetr
daa6ea25fb feat(core): add powerctl feature to SConscript
[no changelog]
2025-05-12 07:57:46 +02: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
a15d2f621f feat(core): increase BLE TX packet size to 244B
[no changelog]
2025-05-07 17:08:40 +02:00
tychovrahe
c319e5fa20 refactor(core/bootloader): streamline initializing & deinitializing communication interfaces in bootloader
[no changelog]
2025-05-07 17:08:40 +02:00
tychovrahe
755cb359bd feat(core): suspend NRF&BLE driver, with or without connection
[no changelog]
2025-05-07 17:08:40 +02:00
tychovrahe
3f6a82ab67 feat(core): add wake up from suspend on NRF/BLE request
[no changelog]
2025-05-07 17:08:40 +02:00
tychovrahe
4f783c0a45 fix(core/prodtest): fix nrf communication tests
[no changelog]
2025-05-07 17:08:40 +02: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
tychovrahe
70014e103a feat(core/bootloader): add power-off item to the bootloader menu
[no changelog]
2025-05-07 15:23:46 +02:00
tychovrahe
37687f1815 feat(core): add BLE to bootloader 2025-05-07 14:54:28 +02:00
tychovrahe
8aaf68f39f feat(core): add BLE pairing complete event
[no changelog]
2025-05-07 14:54:28 +02:00
Roman Zeyde
5aa5d01c71 perf(core): use lookup tables for untranslated strings
Also, simplify `generated/translated_string.rs.mako` a bit.

[no changelog]
2025-05-07 14:15:22 +03:00
Roman Zeyde
2e9dfab8d1 style(core): simplify Rust translation conversions
[no changelog]
2025-05-07 12:40:42 +03:00
Roman Zeyde
7661c13a22 feat(vendor): reimplement utils.presize_module() in C
[no changelog]
2025-05-07 12:18:52 +03:00
Roman Zeyde
ffea765a85 fix(core): disable check_free_heap also in debug firmware
Currently, it may misdetect on-heap buffers' data as valid heap
pointers (resulting in `gc_mark_subtree` false-positives).

[no changelog]
2025-05-07 10:37:38 +03:00
cepetr
010c5adf89 refactor(core): remove firmware_calc_hash callback
[no changelog]
2025-05-06 16:33:36 +02:00
obrusvit
4005e136e0 feat(emu): add LED capability to emulator
[no changelog]
2025-05-06 15:47:04 +02:00
tychovrahe
50411367af refactor(core): unify button polling functionality
[no changelog]
2025-05-06 12:57:39 +02:00
tychovrahe
6860c4be0a refactor(core): unify touch polling functionality
[no changelog]
2025-05-06 12:57:39 +02:00
Roman Zeyde
749c0bc8b2 chore(core): use systick_us for mp_hal_ticks_us
[no changelog]
2025-05-06 09:37:17 +03:00
Martin Milata
8a0cf0e29a build(core): remove LD_LIBRARY_PATH workaround from Makefile
Normal CI workflows seem to work fine with it and it broke
`make upload` on some setups.

[no changelog]
2025-05-05 18:14:03 +02:00
obrusvit
8ba5b4b6b2 fix(core): fix Delizia request_number dialog
- NumberInputDialog now reacts to tap to continue
- change the types there to u16 to be consistent with NumberInputSlider
2025-05-05 14:58:36 +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
tychovrahe
c6dedea7b3 chore(core/prodtest): improve CLI parameter documentation
[no changelog]
2025-05-01 19:53:00 +02:00
tychovrahe
e9b47d1116 chore(core/prodtest): fix time units in readme for NFC commands
[no changelog]
2025-05-01 19:53:00 +02:00
tychovrahe
a22563c01a chore(core/prodtest): fix typos in prodtest
[no changelog]
2025-05-01 19:53:00 +02:00
tychovrahe
3a9315cc58 feat(core/prodtest): allow infinite testing of NFC functionalities
[no changelog]
2025-05-01 19:53:00 +02:00
Ioan Bizău
8ad1069166 chore(core): bump version to 2.8.11
[no changelog]
2025-05-01 08:53:26 +02:00
kopecdav
aa16fa71d6 fix(core): remove backup ram deinit outside of FIXED_HW_DEINIT
[no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
ab8aeaa102 fix(core): let LDO selection to sattle before BREN bit is being set [no changelog] 2025-04-30 15:18:02 +02:00
kopecdav
c9984fabb2 fix(core): fix backup ram prodtest argument parsing
[no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
ae02677ca2 feat(core): add backup ram global initialization in bootloader, prodtest and kernel
[no changelog]
2025-04-30 15:18:02 +02:00
kopecdav
dec252df77 fix(core): Enable Backup SRAM in VBAT mode [no changelog] 2025-04-30 15:18:02 +02:00
kopecdav
dba76ea3e8 feat(core): Add backup ram driver to T3W1 rev A and B [no changelog] 2025-04-30 15:18:02 +02:00
kopecdav
bece935d67 refactor(core): Remove backup ram section from linker [no changelog] 2025-04-30 15:18:02 +02:00
kopecdav
eea75534e5 fix(core): Remove initialized check from backup ram erase function [no changelog] 2025-04-30 15:18:02 +02:00
kopecdav
5ae5d97328 feat(core): Add backup_ram header, version and consistency checks + minor refactor [no changelog] 2025-04-30 15:18:02 +02:00
kopecdav
7f27730b5d feat(core): Add backup driver prodtest [no changelog] 2025-04-30 15:18:02 +02:00
kopecdav
edd72eeaa0 feat(core): Introduce backup_ram driver [no changelog] 2025-04-30 15:18:02 +02:00
kopecdav
bfd78c8d6e feat(core): Update fuel gauge charging mode + Update battery model to separate battery data in standalone header file. [no changelog] 2025-04-30 12:55:49 +02:00
kopecdav
3b407e8dc8 feat(core): Add fuel_gauge prodtest [no changelog] 2025-04-30 12:55:49 +02:00
kopecdav
76cffbc5c6 feat(core): Introduce fuel gauge library [no changelog] 2025-04-30 12:55:49 +02:00
Ioan Bizău
38f51f40b2 chore(core/ui): use better font on Delizia properties
[no changelog]
2025-04-29 16:09:28 +02:00
matejcik
17990e1c80 style: fix linter complaints 2025-04-29 14:54:41 +02:00
matejcik
ff1c9b9f9a tests(core): run make test headless
don't spam the emulator window ^_^
2025-04-29 14:54:41 +02:00
matejcik
f10588b2b6 tests(core): split up definition unit tests and add Solana cross-parseability check 2025-04-29 14:54:41 +02:00
matejcik
c21cc2034b fix(core/protobuf): properly fail on wire type mismatch
otherwise we'd happily mis-parse a length-delimited field as a varint
one, accepting the length as the varint value and consuming garbage from
the length-delimited data for the next fields
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
obrusvit
71cc10a72a fix(delizia): fix a peek-a-boo label
- this commit fixes a minor UX bug in which "Tap to unlock" gesture
showed the device name label for a very brief moment before PIN keyboard
was rendered
- the label is now showed if a user taps outside the lockscreen circles,
"Tap to unlock" gesture is now registered only in the middle similarly
to "Tap to confirm"

[no changelog]
2025-04-29 12:52:05 +02:00
obrusvit
cdc08d1075 feat(delizia): homescreen improvements
- dim inner logo
- show "Unlocked" on Homescreen under device name
- show instruction "Continue in the app"
- register "Tap to unlock" gesture in the middle similarly to "Tap to
confirm". Tapping outside shows the label on lockscreen
- play haptic on "Tap to unlock"
2025-04-29 12:52:05 +02:00
M1nd3r
10f9254f7a chore(core): remove wire_log from non-debug builds
[no changelog]
2025-04-28 23:52:47 +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
obrusvit
be3a7cec62 chore(core): shorten some foreign copy
- shorten some strings related to reset/recovery flows of Delizia

[no changelog]
2025-04-28 19:53:43 +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
65e8f96428 chore(core): update main_clean_exit comment
We are not using `atexit()` handler following #4892.

[no changelog]
2025-04-24 16:26:36 +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
bd9d303310 perf(core): optimize AddressDetails::xpubs layout
[no changelog]
2025-04-24 16:17:17 +03:00
kopecdav
f9dfb3ef1b feat(core): Add max backlight limit to backlight driver. [no changelog] 2025-04-24 12:19:57 +02:00
Roman Zeyde
46d6732462 feat(core): don't use heap for storing coverage data
[no changelog]
2025-04-24 07:39:46 +03:00
Roman Zeyde
2e635a04fc chore(core): fix a few clippy warnings
[no changelog]
2025-04-24 07:39:46 +03:00
cepetr
8b0736c360 fix(prodtest): increase vcp ring buffer size
[no changelog]
2025-04-23 13:32:21 +02:00
Roman Zeyde
f20c2d551d perf(core): encode Timer using a single u32
[no changelog]
2025-04-23 12:38:34 +03:00
Pavol Rusnak
9037c398eb
chore(crypto): use new email for stick 2025-04-20 22:04:38 +02:00
Roman Zeyde
f89e7670c5 fix(core): update EIP-1559 fee-related labels
Translations will be updated in a separate PR.
2025-04-18 20:29:47 +03:00
Roman Zeyde
75700d9f7f fix(core): dump allocated QSTRs also in debug firmware
Otherwise, it's hard to understand which QSTR causes the assertion error.

[no changelog]
2025-04-17 15:59:08 +03:00
cepetr
a05ce8aa70 fix(core): fix USB VCP freeze on T3W1 in prodtest
[no changelog]
2025-04-17 11:45:26 +02:00
Martin Milata
04aeaf0607 build(core/unix): use -g instead of -g3
Prevents flood of warnings on macos.

[no changelog]
2025-04-16 17:27:11 +02:00
Martin Milata
0ec2dbd583 fix(core/unix): HIDPI on macOS 15
[no changelog]
2025-04-16 17:27:11 +02:00
Martin Milata
e81617e1c6 build(core): fix build for GCC14
[no changelog]
2025-04-16 17:27:11 +02:00
Martin Milata
8f37578408 ci(nix): update to latest nixpkgs-unstable, rustc
[no changelog]
2025-04-16 17:27:11 +02:00
Martin Milata
04b9768faa build(core): allow passing HW_REVISION to make 2025-04-16 15:36:05 +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
Roman Zeyde
d50181b7f9 fix(core): check QSTR run-time allocations only for frozen debug builds
[no changelog]
2025-04-15 14:22:47 +03:00
Martin Milata
2a40d91790 refactor(core): convert modtrezorio.ble to rust
[no changelog]
2025-04-15 13:08:37 +02:00
Martin Milata
b35d2f4000 refactor(core/rust): expose RuntimeError
[no changelog]
2025-04-15 13:08:37 +02:00
Martin Milata
1c09490f3b refactor(core/io): add pairing_code to ble_command_data_t
[no changelog]
2025-04-15 13:08:37 +02:00
matejcik
a50e49afa9 chore(core): include T3B1 certificate for the emulator 2025-04-15 12:37:25 +02:00
matejcik
0db727b21b chore(core): include T3W1 certificate for the emulator 2025-04-15 12:37:25 +02:00
Roman Zeyde
9bd81926af feat(core): check for runtime QSTR allocations
[no changelog]
2025-04-14 22:42:16 +03:00
Roman Zeyde
2975a07f1f chore(core): remove unused path definitions from MicroPython emulator
[no changelog]
2025-04-14 22:42:05 +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
04f9ada9bc style(core): annotate prof.py
Also, fix a few style lints.

[no changelog]
2025-04-14 22:39:24 +03:00
Roman Zeyde
c90b30fbf7 chore(core): intern Monero-related QSTRs
[no changelog]
2025-04-14 22:39:24 +03:00
Roman Zeyde
599c17cd29 build(core): refactor qstrdefsport.h generation
Allow excluding debug-related QSTRs.

[no changelog]
2025-04-14 22:39:24 +03:00
Roman Zeyde
6473b3ca48 feat(vendor): update MicroPython to support sorted qstr pools
Requires https://github.com/trezor/micropython/pull/20.

[no changelog]
2025-04-14 21:20:08 +03:00
Andrew Kozlik
e80e979fdd docs(core): Document Optiga configuration.
[no changelog]
2025-04-14 17:10:07 +02:00
cepetr
8a636bd9cf fix(core): make mod_trezorio_poll return False only on timeout
[no changelog]
2025-04-14 12:30:52 +02:00
Roman Zeyde
07ad01220c perf(core): remove imports from hot path
[no changelog]
2025-04-10 14:19:34 +03:00
Martin Milata
3c08ce62b3 build(core): default T3W1 to revision C
[no changelog]
2025-04-09 23:44:12 +02:00
cepetr
75f9821cf1 fix(core): improve rgb_led driver deinitialization
[no changelog]
2025-04-09 22:10:11 +02:00
cepetr
0b673c2772 fix(core): fix ft6x36 interrupt pin deinitialization
[no changelog]
2025-04-09 22:10:11 +02:00
cepetr
ad80d5c1de fix(core): fix tropic driver deinitialization
[no changelog]
2025-04-09 22:10:11 +02:00
cepetr
47d1378d28 refactor(core): simplify display driver deinitialization
[no changelog]
2025-04-09 22:10:11 +02:00
cepetr
2017c5931e feat(core): optimize pmic power consumption
[no changelog]
2025-04-09 22:10:11 +02:00
cepetr
9537c8a80d feat(core): deinitialize tropic driver before suspending
[no changelog]
2025-04-09 22:10:11 +02:00
Martin Milata
23cc83f3ba refactor(core): ble: expose connection state in micropython
[no changelog]
2025-04-09 21:25:37 +02:00
Martin Milata
fe20466ed7 fix(core): modtrezorio-ble cleanup
[no changelog]
2025-04-09 21:25:37 +02:00
Martin Milata
93f23e6318 feat(core): start BLE advertising on boot
[no changelog]
2025-04-09 21:25:37 +02:00
Martin Milata
c5a4eddfc9 build(core): enable button feature in T3W1 emulator
[no changelog]
2025-04-09 21:25:37 +02:00
Martin Milata
0ecff7182b build(core): allow ble feature in emulator
[no changelog]
2025-04-09 21:25:37 +02:00
Ioan Bizău
40756a0941 fix(core/ui): use "..." ellipsis in "show more" 2025-04-09 15:57:01 +02:00
Martin Milata
828e1868ab docs: fix broken changelog links 2025-04-09 10:11:21 +02:00
Roman Zeyde
893bd1e69b chore(core): remove unused all_modules.py
[no changelog]
2025-04-08 17:48:15 +03:00
obrusvit
ad9f85b21d chore(core): remove redundant Error messages
[no changelog]
2025-04-08 15:44:51 +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