TL;DR
This one's mostly about polish and reliability: a long tail of fixes across NFC, storage and the rest of the system, plus a few new additions.
- NFC: Crash and buffer-overflow fixes across MIFARE Ultralight/DESFire, ISO 15693-3, FeliCa and ISO 14443-3A; faster startup from Favorites; improved SEN recovery; and a plugin that identifies some hotel card systems.
- LF RFID: The info readout now shows the remaining ISO 11784 FDX-B fields; fixed the Pyramid Wiegand parity bit and made PAC/Stanley ID parsing safe.
- Sub-GHz: Two new protocols (Elplast, Cardin S449 KeeLoq) and FSK12Kdev modulation.
- Infrared: Fixed uninitialized decoder timings and an off-by-one in a bounds check.
- HID & BadUSB: Fixed keyboard LED state reporting and raised HID report limits for international keyboards, including a new ja-JP layout.
- API & CCID:
canvas_bufferandview_port_send_to_backare now public, plus helpers for renaming variable items and checking view dispatcher IDs; a new date/time input module; and CCID gained interrupt transfers. - System & storage: Code-scan hardening (TAR, bit_lib, iButton, forged RPC launch arguments); no spurious SD mount event at boot; file copies now retry on transient errors.
- JavaScript: UTF-8 support when uploading JS apps, and
eventLoopnow rejects zero or negative timer intervals. - CLI: Quoted paths are handled consistently by the loader and Sub-GHz commands.
- Docs & tooling: Contribution/testing guidelines, App Development and JS docs, clangd setup, new VSCode
fbt format/clear tasks, and CI tidy-up.
What's Changed
- docs: contribution guide update, new testing and discussion guidelines pages by @alexeyzakh in #4391
- Docs: Fix links and other stuff by @turbospok in #4396
- Add date/time input module by @aaronjamt in #4261
- Storage: Dont send mount event if SD mounted at boot by @WillyJL in #4290
- VSCode tasks add fbt format and clear commands by @xMasterX in #4302
- docs: adjusted formatting in README Flipper Zero Firmware section by @egenuise in #4308
- Fix: Use actual spaces instead of empty buffer by @xMasterX in #4397
- CI: Disable automatic merge report workflow by @iMalkav in #4398
- Make FDX-B readout more descriptive by @snowsign in #4297
- SubGHz: Add Elplast protocol by @xMasterX in #4309
- NFC: Make NFC app startup from fav's faster by @xMasterX in #4313
- Improve some documentation in the
view_dispatcherandview_portby @loftyinclination in #4318 - Clangd: Add clangd parameters in IDE agnostic config file by @WillyJL in #4319
- SubGHz: Add FSK12Kdev modulation and Cardin S449 Keeloq support by @xMasterX in #4328
- Update js_gui.md to reflect firmware 1.4 changes and fix a typo by @alexeyzakh in #4329
- NFC: Fix sending 32+ byte ISO 15693-3 commands by @WillyJL in #4333
- NFC: ISO 15693-3 emulation READ_MULTI and GET_BLOCK_SECURITY fixes by @WillyJL in #4334
- SEN recovery optimizations by @noproto in #4337
- Address utf8 support when uploading JavaScript application by @bekindpleaserewind in #4364
- NFC: Fix BusFault in Write to Initial Card by @akrylysov in #4362
- GUI: add canvas_buffer to public api by @apfxtech in #4399
- Make
view_port_send_to_backpublic by @loftyinclination in #4320 - Fix condition for cleaning up dict attack resources by @xMasterX in #4400
- NFC: Fix stack buffer overflows in MFUL FAST_READ and DESFire file settings parsers by @qp-x-qp in #4369
- Fix USB HID keyboard LED state reporting (#4162) by @Caballosanex in #4338
- Fixed side menu in the FZ dev docs by @rnadyrshin in #4403
- Storage: add retry on file copy to Flipper by @ssecsd in #4402
- Fix broken docs links by @Tradeylouish in #4405
- CCID: add interrupt support by @kidbomb in #4198
- NFC Plugin to identify some hotel systems by @bettse in #4323
- Fix User Documentation link in index.dox by @ellyromanova in #4410
- CCID: move USB layer from firmware HAL into ccid_test app by @kidbomb in #4407
- NFC: fix iso1569 emulation dropping Read Multiple Blocks for tags >64 blocks by @SegerEnd in #4420
- Add method for changing variable item label by @loftyinclination in #4421
- Allow for checking if an id is in use before adding to view dispatcher by @loftyinclination in #4422
- Doxygen: Fixed missing line in view_dispatcher_check_id docs by @xMasterX in #4423
- Infrared: initialize timings_cnt on decoder alloc and fix its bounds check by @munzzyy in #4429
- NFC FeliCa: check the poller error before reading the system-code response by @munzzyy in #4428
- LFRFID: NUL-terminate the PAC/Stanley card id before parsing it by @munzzyy in #4427
- LFRFID: fix the Pyramid trailing Wiegand parity bit by @munzzyy in #4426
- js_event_loop: reject a zero or negative timer interval by @munzzyy in #4425
- bit_lib: don't read past the buffer when the requested bits fit one byte by @munzzyy in #4424
- CLI: consistent quoted path handling for loader and Sub-GHz by @drkemp187 in #4430
- CCID: move the debug app out of the firmware repository by @kidbomb in #4431
- Fix USB/BLE HID limits to support international keyboards and add ja-JP keyboard layout for BadUSB by @d3npa in #4361
- NFC DESFire: Fix crash when reading card with a zero-key application by @jcz0 in #4439
- Update the App Development documentation section by @ellyromanova in #4412
- Fix typo in BT HAL source by @portasynthinca3 in #4443
- Disable license expiration check in PVS options & update PR template by @xMasterX in #4445
- Fixes of various valid issues found by code scan by @xMasterX in #4445
New Contributors
- @turbospok made their first contribution in #4396
- @aaronjamt made their first contribution in #4261
- @egenuise made their first contribution in #4308
- @iMalkav made their first contribution in #4398
- @snowsign made their first contribution in #4297
- @loftyinclination made their first contribution in #4318
- @bekindpleaserewind made their first contribution in #4364
- @akrylysov made their first contribution in #4362
- @apfxtech made their first contribution in #4399
- @qp-x-qp made their first contribution in #4369
- @Caballosanex made their first contribution in #4338
- @Tradeylouish made their first contribution in #4405
- @SegerEnd made their first contribution in #4420
- @munzzyy made their first contribution in #4429
- @drkemp187 made their first contribution in #4430
- @d3npa made their first contribution in #4361
- @jcz0 made their first contribution in #4439
Full Changelog: 1.4.3...1.5.1-rc