13 KiB
Main changes
- SubGHz:
- Frequency analyzer fixes and improvements:
- Enforce int module (like in OFW) usage due to lack of required hardware on external boards (PathIsolate (+rf switch for multiple paths)) and incorrect usage and/or understanding the purpose of frequency analyzer app by users, it should be used only to get frequency of the remote placed around 1-10cm around flipper's left corner
- Fix possible GSM mobile towers signal interference by limiting upper frequency to 920mhz max
- Fix duplicated frequency lists and use user config for nearest frequency selector too
- Fix buttons logic, fix crash
- Protocol improvements:
- Keeloq: Monarch full support, with add manually option (thanks @ashphx !)
- Princeton support for second button encoding type (8bit)
- GangQi fix serial check and remove broken check from UI
- Hollarm add more button codes (thanks to @mishamyte for captures)
- Misc:
- Add extra settings to disable GPIO pins control used for external modules amplifiers and/or LEDs (in radio settings menu with debug ON)
- Code cleanup and fix for rare dupicated "Data" field cases
- Frequency analyzer fixes and improvements:
- NFC:
- Read Ultralight block by block (fix password protected MFUL reading issue) (by @mishamyte | PR #825 #826)
- Update NDEF parser (SLIX and MFC support) (by @luu176 and @jaylikesbunda and @Willy-JL)
- OFW PR 3822: MIFARE Classic Key Recovery Improvements (by @noproto)
- OFW PR 3930: NFC Emulation freeze (by @RebornedBrain)
- OFW PR 3885: Add API to enforce ISO15693 mode (by @aaronjamt)
- OFW: iso14443_4a improvements (by @RebornedBrain)
- OFW: Plantain parser improvements (by @assasinfil) & fixes (by @mxcdoam)
- OFW: Moscow social card parser (by @assasinfil)
- OFW: NFC: H World Hotel Chain Room Key Parser
- OFW: NFC Parser for Tianjin Railway Transit
- OFW: NFC TRT Parser: Additional checks to prevent false positives
- New keys in system dict
- Infrared:
- Add LEDs universal remote (DB by @amec0e)
- Update universal remote assets (by @amec0e | PR #813 #816)
- JS:
- OFW: JS modules -> Breaking API change
- Backporting custom features (read about most of the changes after other changes section) (by @xMasterX and @Willy-JL)
- Add i2c module (by @jamisonderek)
- Add SPI module (by @jamisonderek)
- OFW: FuriHal, drivers: rework gauge initialization routine -> Downgrade to older releases will break battery UI percent indicator, upgrade to this or newer version to restore
- OFW: heap: increased size -> More free RAM!!
- OFW: New layout for BadUSB (es-LA)
- OFW: Require PIN on boot
- Apps: Check out more Apps updates and fixes by following this link
Other changes
- OFW: fix: npm deps
- OFW: 目覚め時計
- OFW: JS: Backport and more additions & fixes
- OFW: nfc: add Caltrain zones for Clipper
- OFW: Update unit tests docs
- OFW: Fix JS memory corruption (in gpio module)
- OFW: Full-fledged JS SDK + npm packages
- OFW: FurEventLoop: add support for FuriEventFlag, simplify API
- OFW: lib: digital_signal: digital_sequence: add furi_hal.h wrapped in ifdefs
- OFW: Add warning about stealth mode in vibro CLI
- OFW: Small fixes in the wifi devboard docs
- OFW: BadUSB - Improve ChromeOS and GNOME demo scripts
- OFW: Small JS fixes
- OFW: Canvas: extended icon draw.
- OFW: Fixes Mouse Clicker Should have a "0" value setting for "as fast as possible"
- OFW: Wi-Fi Devboard documentation rework
- OFW: Furi: A Lot of Fixes
- OFW PR 3933: furi_hal_random: Wait for ready state and no errors before sampling (by @n1kolasM)
- OFW: nfc/clipper: Update BART station codes
- OFW: FuriThread: Improve state callbacks
- OFW: Documentation: update and cleanup
- OFW: Improve bit_buffer.h docs
- OFW: Prevent idle priority threads from potentially starving the FreeRTOS idle task
- OFW: IR universal remote additions
- OFW: Fix EM4100 T5577 writing block order (was already done in UL)
- OFW: kerel typo
- OFW: Folder rename fails
- OFW: Put errno into TCB
- OFW: Fix USB-UART bridge exit screen stopping the bridge prematurely More details on JS changes (js changelog written by @Willy-JL , thanks!):
- Non-exhaustive list of changes to help you fix your scripts:
badusb
:setup()
:mfr_name
,prod_name
,layout_path
parameters renamed tomfrName
,prodName
,layoutPath
- effort required to update old scripts using badusb: very minimal
dialog
:- removed, now replaced by
gui/dialog
andgui/file_picker
(see below)
- removed, now replaced by
event_loop
:- new module, allows timer functionality, callbacks and event-driven programming, used heavily alongside gpio and gui modules
gpio
:- fully overhauled, now you
get()
pin instances and perform actions on them like.init()
- now supports interrupts, callbacks and more cool things
- effort required to update old scripts using gpio: moderate
- fully overhauled, now you
gui
:- new module, fully overhauled, replaces dialog, keyboard, submenu, textbox modules
- higher barrier to entry than older modules (requires usage of
event_loop
andgui.viewDispatcher
), but much more flexible, powerful and easier to extend - includes all previously available js gui functionality (except
widget
), and also addsgui/loading
andgui/empty_screen
views - currently
gui/file_picker
works different than other new view objects, it is a simple.pickFile()
synchronous function, but this may change later - effort required to update old scripts using gui: extensive
keyboard
:- removed, now replaced by
gui/text_input
andgui/byte_input
(see above)
- removed, now replaced by
math
:is_equal()
renamed toisEqual()
storage
:- fully overhauled, now you
openFile()
s and perform actions on them like.read()
- now supports many more operations including different open modes, directories and much more
- effort required to update old scripts using storage: moderate
- fully overhauled, now you
submenu
:- removed, now replaced by
gui/submenu
(see above)
- removed, now replaced by
textbox
:- removed, now replace by
gui/text_box
(see above)
- removed, now replace by
widget
:- only gui functionality not ported to new gui module, remains unchanged for now but likely to be ported later on
- globals:
__filepath
and__dirpath
renamed to__filename
and__dirname
like in nodejsto_string()
renamed and moved to number class asn.toString()
, now supports optional base parameterto_hex_string()
removed, now usen.toString(16)
parse_int()
renamed toparseInt()
, now supports optional base parameterto_upper_case()
andto_lower_case()
renamed and moved to string class ass.toUpperCase()
ands.toLowerCase()
- effort required to update old scripts using these: minimal
- Added type definitions (typescript files for type checking in IDE, Flipper does not run typescript)
- Documentation is incomplete and deprecated, from now on you should refer to type definitions (
applications/system/js_app/types
), those will always be correct - Type definitions for extra modules we have that OFW doesn't will come later
Known NFC post-refactor regressions list:
- Mifare Mini clones reading is broken (original mini working fine) (OFW)
- NFC CLI was removed with refactoring (OFW) (will be back soon)
-> Download qFlipper (official link)
Please support development of the project
Service | Remark | QR Code | Link/Wallet |
---|---|---|---|
Patreon | https://patreon.com/mmxdev | ||
Boosty | patreon alternative | https://boosty.to/mmxdev | |
cloudtips | only RU payments accepted | https://pay.cloudtips.ru/p/7b3e9d65 | |
YooMoney | only RU payments accepted | https://yoomoney.ru/fundraise/XA49mgQLPA0.221209 | |
USDT | (TRC20) | TSXcitMSnWXUFqiUfEXrTVpVewXy2cYhrs |
|
ETH | (BSC/ERC20-Tokens) | 0xFebF1bBc8229418FF2408C07AF6Afa49152fEc6a |
|
BTC | bc1q0np836jk9jwr4dd7p6qv66d04vamtqkxrecck9 |
||
SOL | (Solana/Tokens) | DSgwouAEgu8iP5yr7EHHDqMNYWZxAqXWsTEeqCAXGLj8 |
|
DOGE | D6R6gYgBn5LwTNmPyvAQR6bZ9EtGgFCpvv |
||
LTC | ltc1q3ex4ejkl0xpx3znwrmth4lyuadr5qgv8tmq8z9 |
||
BCH | qquxfyzntuqufy2dx0hrfr4sndp0tucvky4sw8qyu3 |
||
XMR | (Monero) | 41xUz92suUu1u5Mu4qkrcs52gtfpu9rnZRdBpCJ244KRHf6xXSvVFevdf2cnjS7RAeYr5hn9MsEfxKoFDRSctFjG5fv1Mhn |
|
TON | UQCOqcnYkvzOZUV_9bPE_8oTbOrOF03MnF-VcJyjisTZmsxa |
Thanks to our sponsors who supported project in the past and special thanks to sponsors who supports us on regular basis:
@mishamyte, ClaraCrazy, Pathfinder [Count Zero cDc], callmezimbra, Quen0n, MERRON, grvpvl (lvpvrg), art_col, ThurstonWaffles, Moneron, UterGrooll, LUCFER, Northpirate, zloepuzo, T.Rat, Alexey B., ionelife, ... and all other great people who supported our project and me (xMasterX), thanks to you all!
Recommended update option - Web Updater
What r
, e
,
, c
means? What I need to download if I don't want to use Web updater?
What build I should download and what this name means - flipper-z-f7-update-(version)(r / e / c).tgz
?
flipper-z
= for Flipper Zero device
f7
= Hardware version - same for all flipper zero devices
update
= Update package, contains updater, all assets (plugins, IR libs, etc.), and firmware itself
(version)
= Firmware version
Designation | Base Apps | Extra Apps | ⚠️RGB mode* |
---|---|---|---|
|
✅ | ||
c |
|||
e |
✅ | ✅ | |
r |
✅ | ✅ | ⚠️ |
⚠️This is hardware mod, works only on modded flippers! do not install on non modded device!
Firmware Self-update package (update from microSD) - flipper-z-f7-update-(version).tgz
for mobile app / qFlipper / web
Archive of scripts
folder (contains scripts for FW/plugins development) - flipper-z-any-scripts-(version).tgz
SDK files for plugins development and uFBT - flipper-z-f7-sdk-(version).zip