github Next-Flip/Momentum-Firmware mntm-008

2 days ago

⬇️ Download

🖥️ Web Updater (chrome) [recommended]

☁️ Flipper Lab/App (chrome/mobile)

🐬 qFlipper Package (.tgz)

📦 Zipped Archive (.zip)

Check the install guide if you're not sure, or join our Discord if you have questions or encounter issues!

❤️ Support

If you enjoy the firmware please spread the word! And if you really love it, maybe consider donating to the team? :D

Ko-fi: One-off or Recurring, No signup required

PayPal: One-off, Signup required

BTC: 1EnCi1HF8Jw6m2dWSUwHLbCRbVBCQSyDKm

Thank you <3

🚀 Changelog

Breaking Changes:

  • OFW: Battery: Rework gauge driver initialization routine (by @skotopes)
    • Reworks how communication with battery guage is done, improves reliability and fixes issues with battery percentage not showing
    • After installing firmware with this change, downgrading to old firmware will cause battery percentage to be blank
    • If you must downgrade firmware, use the Guage Tool app to unseal the guage
  • OFW: Furi: RTC Alarm support (目覚め時計) (by @skotopes)
    • Reworks RTC initialization to support Alarms functionality
    • Older firmware will be unable to handle alarm, downgrading might be problematic
    • If you must downgrade firmware, disable Alarm in Settings > Clock & Alarm first
  • OFW: JS: Modules backport & overhaul (by @portasynthinca3), backport of backport (by @Willy-JL & @xMasterX)
    • OFW backported some modules we had, added lots of new stuff, and overhauled many other things
    • Non-exhaustive list of changes to help you fix your scripts:
      • badusb:
        • setup(): mfr_name, prod_name, layout_path parameters renamed to mfrName, prodName, layoutPath
        • effort required to update old scripts using badusb: very minimal
      • dialog:
        • removed, now replaced by gui/dialog and gui/file_picker (see below)
      • 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
      • gui:
        • new module, fully overhauled, replaces dialog, keyboard, submenu, textbox modules
        • higher barrier to entry than older modules (requires usage of event_loop and gui.viewDispatcher), but much more flexible, powerful and easier to extend
        • includes all previously available js gui functionality (except widget), and also adds gui/loading and gui/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 and gui/byte_input (see above)
      • math:
        • is_equal() renamed to isEqual()
      • 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
        • virtualInit(), virtualMount(), virtualQuit() still work the same
        • effort required to update old scripts using storage: moderate
      • submenu:
        • removed, now replaced by gui/submenu (see above)
      • textbox:
        • removed, now replace by gui/text_box (see above)
      • 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 nodejs
        • to_string() renamed and moved to number class as n.toString(), now supports optional base parameter
        • to_hex_string() removed, now use n.toString(16)
        • parse_int() renamed to parseInt(), now supports optional base parameter
        • to_upper_case() and to_lower_case() renamed and moved to string class as s.toUpperCase() and s.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/packages/fz-sdk), those will always be correct
  • GUI: Refactored TextInput illegal symbols (by @Willy-JL)
    • If your app used text_input_add_illegal_symbols(text_input) it should change to text_input_show_illegal_symbols(text_input, true)

Added:

  • Apps:
  • Sub-GHz:
    • Show satellites count with an icon (#215 by @m7i-org)
    • Add Bresser 3CH weather station protocol (#217 #245 by @m7i-org)
    • Add Vauno-EN8822 weather station protocol (#262 by @m7i-org)
    • UL: Add Marantec24 protocol (static 24 bit) with add manually (by @xMasterX)
    • UL: Add GangQi protocol (static 34 bit) with button parsing and add manually (by @xMasterX & @Skorpionm)
    • UL: Add Hollarm protocol (static 42 bit) with button parsing and add manually (by @xMasterX & @Skorpionm)
    • UL: Add Hay21 protocol (dynamic 21 bit) with button parsing (by @xMasterX)
    • UL: Add Keeloq Monarch full support, with add manually (by @ashphx & @xMasterX)
    • UL: Princeton custom buttons support (by @xMasterX)
  • NFC:
    • OFW: MIFARE Classic Key Recovery Improvements (PR 3822 by @noproto)
      • Accelerated dictionary attack: dictionary attacks reduced to several seconds - checks ~3500 keys per second
      • Nested attack support: collects nested nonces to be cracked by MFKey, no longer requiring Flipper Nested app
      • Static encrypted backdoor support: collects static encrypted nonces to be cracked by MFKey using NXP/Fudan backdoor, allowing key recovery of all non-hardened MIFARE Classic tags on-device
    • Add SmartRider Parser (#203 by @jaylikesbunda)
    • Add API to enforce ISO15693 mode (#225 by @aaronjamt)
    • OFW: H World Hotel Chain Room Key Parser and MFC keys (by @zinongli)
    • OFW: Parser for Tianjin Railway Transit (by @zinongli)
  • Infrared:
  • Updater: New Yappy themed icon while updating (#253 by @the1anonlypr3 & @Kuronons & @Nescap)
  • JS:
    • OFW: JS: Modules backport & overhaul (by @portasynthinca3)
      • See above for list of breaking changes, here are listed strictly new functionalities
      • New event_loop module for event-driven interactivity
      • Interrupt and callback support for gpio module
      • New gui module that allows much more developed interfaces, also new gui/loading and gui/empty_screen views
      • Directory operations and many more file operations for storage module
    • OFW: Full-fledged JS SDK + npm packages (by @portasynthinca3)
    • New i2c module (#259 by @jamisonderek)
    • New spi module (#272 by @jamisonderek)
    • Added illegalSymbols prop for gui/text_input view (#290 by @Willy-JL)
    • Added typedocs for all extra JS modules in Momentum (by @Willy-JL)
  • RPC: Added ASCII event support (#284 by @Willy-JL)
  • FBT/SDK: New app flag UnloadAssetPacks to free RAM in heavy apps like NFC, MFKey, uPython (#260 by @Willy-JL)
  • Settings:
    • OFW: Clock editing & Alarm function (目覚め時計) (by @skotopes)
    • Add warnings for some settings you shouldn't touch like Debug, Sleep Method, Heap Trace (#296 by @Willy-JL)
  • BadKB:
  • OFW: Dolphin: Happy mode in Desktop settings (by @portasynthinca3)
  • OFW: CLI: Improvements part I, neofetch command (by @portasynthinca3), fix for lab.flipper.net (by @xMasterX)
  • GUI:
    • ByteInput supports ASCII input (by @Willy-JL)
    • OFW: Add up and down button drawing functions to GUI elements (by @derskythe)
    • OFW: Extended icon draw function in Canvas (by @RebornedBrain)
  • OFW: RPC: Support 5V on GPIO control for ext. modules (by @gsurkov)
  • OFW: Toolbox: Proper integer parsing library strint (by @portasynthinca3)
  • Furi:
    • OFW: Add FuriEventLoop support for FuriEventFlag, simplify API (by @Skorpionm)
    • OFW: Put errno into TCB, better integration with libc (by @portasynthinca3)

Updated:

  • Apps:
    • MFKey: Added Static Encrypted Nested key recovery, Added NFC app support, Dropped FlipperNested support (by @noproto)
    • WAV Player: Better fix for unresponsiveness, handle thread exit signal (by @CookiePLMonster)
    • Laser Tag: External Infrared board support, crash fixes (by @RocketGod-git), RFID support for ammo reload, thread leak fix (by @jamisonderek)
    • ESP Flasher: Add FlipperHTTP firmware (by @jblanked), update blackmagic bin with WiFi Logs (by @DrZlo13), support more board types (by @xMasterX)
    • Picopass: File loading improvements and fixes (by @bettse), force ISO15693 1OutOf4 mode (by @aaronjamt)
    • Quac!: External IR board support (by @daniilty), import all IR from file, iButton support, code improvements (by @rdefeo)
    • DTMF Dolphin: Add EAS tone support (by @JendrBendr)
    • NFC Playlist: Better error handling with many new error screens, general improvements (by @acegoal07), refactor rename/new scene without thread (by @Willy-JL)
    • CLI-GUI Bridge: Fixes and improvements (by @ranchordo)
    • Seader: Enable T=1, show error for timeout, fix wrong LRC logging, fix crash scanning NTAG215 with MFC option (by @bettse)
    • BLE Spam: Fix menu index callback (by @Willy-JL)
    • Solitaire: App rewrite, Added quick solve, New effects and sounds, Removed hacky canvas manipulation (by @doofy-dev)
    • Flappy Bird: Yappy Bird and Yappy Ghost characters, highscore system and bugfixes (by @jaylikesbunda & @the1anonlypr3)
    • CLI-GUI Bridge: Add more symbols to keyboard (#222 by @Willy-JL)
    • NRF24 Batch: Add Aeropac SN board txt file (by @vad7)
    • UL: Sub-GHz Bruteforcer: Add new protocols for existing dump option (by @xMasterX), use FW functions for top buttons (by @derskythe)
    • UL: RFID/iButton Fuzzer: Add protocols Electra, Idteck, Gallagher, Nexwatch, refactor to make RFID protocols easier to add (by @SkeletonMan03), add more Dallas 1990 IDs (by @eblis)
    • UL: NRF24 Apps: Use string library compatible with OFW SDK (by @xMasterX)
    • UL: W5500 Ethernet: Various fixes and improvements (by @xMasterX)
    • OFW: SPI Mem Manager: Fixed UI rendering bug related to line breaks (by @portasynthinca3)
    • OFW: USB/BT Remote: Mouse clicker option to click as fast as possible (by @sumukhj1219)
  • NFC:
    • NDEF Parser:
    • Updated MFC dict, +100 keys from RRG proxmark3, +17 keys from Mifare Classic Tool
    • Added 6 new Mifare Classic keys from Bulgaria Hotel (#216 by @z3r0l1nk)
    • UL: Add iq aparts hotel key (by @xMasterX)
    • OFW/UL: Rename 'Detect Reader' to 'Extract MFC Keys' (by @bettse & @xMasterX)
    • OFW: Plantain parser improvements (by @assasinfil) and fixes (by @mxcdoam)
    • OFW: Moscow social card parser (by @assasinfil)
    • OFW: Fixes and improvements to iso14443_4a listener and poller (by @RebornedBrain)
    • OFW: Update BART station codes in Clipper plugin (by @ted-logan)
    • OFW: Add Caltrain zones for Clipper parser (by @tomholford)
  • Sub-GHz:
    • UL: Frequency analyzer fixes and improvements (by @xMasterX):
      • 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
    • Nexus-TH weather station protocol improvements on detection (#256 by @m7i-org)
  • Infrared:
    • Additions to MNTM specific LED, Digital Sign, Monitor universal remotes from IRDB (#240 by @jaylikesbunda)
    • UL: Replace LEDs universal remote with new one by Unleashed team, includes color options (by @amec0e & @xMasterX)
    • UL: Update universal remote assets (by @amec0e)
    • OFW: IR button operation fails now shows more informative messages (by @RebornedBrain)
    • OFW: Add Airwell AW-HKD012-N91 to univeral AC remote (by @valeraOlexienko)
    • OFW: Add TCL 75S451 to TV universal remote (by @christhetech131)
    • OFW: Universal remote additions (by @jaylikesbunda)
    • OFW: Heavily Expand Universal Remotes (by @jaylikesbunda)
  • CLI:
    • Print plugin name on load fail (by @Willy-JL)
    • Move more commands as plugins on SD, refactor plugin wrapper (#276 by @Willy-JL)
  • FBT: Optimize icons blob, scrub unused icons (#291 by @Willy-JL)
  • OFW: BadKB: Improve ChromeOS and GNOME demo scripts (by @kowalski7cc)
  • GUI:
    • OFW: Change dialog_ex text ownership model (by @skotopes)
    • Improve some error messages to be more clear, like Sub-GHz region missing and Main Menu .fap file missing (#296 by @Willy-JL)
  • OFW: CCID: App changes and improvements (by @kidbomb)
  • OFW: API: Exposed view_dispatcher_get_event_loop (by @CookiePLMonster)
  • Furi:
    • UL: Extra checks for OTG power enable/disable (by @xMasterX)
    • OFW: Replace all calls to strncpy with strlcpy, use strdup more, expose strlcat (by @CookiePLMonster)
    • OFW: Threading, Timers improvements (by @CookiePLMonster)
    • OFW: FuriTimer uses an event instead of a volatile bool to wait for deletion (by @CookiePLMonster)
    • OFW: Improve FuriThread state callbacks (by @CookiePLMonster)
    • OFW: Increased heap size (by @hedger)
  • Documentation:
    • OFW: Update and cleanup (by @rnadyrshin)
    • OFW: Improve bit_buffer.h docs (by @Astrrra)
    • OFW: Wi-Fi Devboard documentation rework (by @rnadyrshin)
    • OFW: Update unit tests docs (by @portasynthinca3)

Fixed:

  • RFID:
    • OFW: Fix detection of GProx II cards and false detection of other cards (by @Astrrra)
    • OFW: Fix Guard GProxII False Positive and 36-bit Parsing (by @zinongli)
    • OFW: GProxII Fix Writing and Rendering Conflict (by @zinongli)
  • Asset Packer: Fix font terminator causing freezes/crashes, like in Marauder AP scan/list (#295 by @Willy-JL)
  • Desktop:
    • Fallback Poweroff prompt when power settings is unavailable (by @Willy-JL)
  • Sub-GHz:
    • Fix GPS "Latitute" typo, switch to "Lat" and "Lon" in .sub files (#246 by @m7i-org)
    • UL: Fix zero issues in Princeton (by @xMasterX)
    • UL: Code cleanup and fix for rare dupicated "Data" field cases (by @xMasterX)
    • UL: Fix Nice One key display (by @xMasterX)
  • Power: Suppress Shutdown on Idle While Charging / Plugged In (#244 by @luu176)
  • Storage:
    • Fallback SD format prompt when storage settings is unavailable (by @Willy-JL)
    • OFW: Fix folder rename fails (by @portasynthinca3)
  • About: Fix BLE stack version string (by @Willy-JL)
  • RPC: Fixed apps not updating and staying at 100% (by @Willy-JL)
  • OFW: Loader: Warn about missing SD card for main apps (by @Willy-JL)
  • NFC:
    • OFW: Fix crash on Ultralight unlock (by @Astrrra)
    • OFW: FeliCa anti-collision fix (by @RebornedBrain)
    • OFW: Emulation freeze fixed when pressing OK repeatedly (by @RebornedBrain)
    • OFW: Fixed bug with reading pwd locked MFULs (by @mishamyte)
  • OFW: RPC: Broken file interaction fixes (by @RebornedBrain)
  • OFW: GPIO: Fix USB-UART bridge exit screen stopping the bridge prematurely (by @portasynthinca3)
  • OFW: GUI: Fix dialog_ex NULL ptr crash (by @Willy-JL)
  • Furi:
    • OFW: Clean up of LFS traces (by @hedger)
    • OFW: Prevent idle priority threads from potentially starving the FreeRTOS idle task (by @CookiePLMonster)
    • OFW: Wait for RNG ready state and no errors before sampling (by @n1kolasM)
    • OFW: A Lot of Fixes (by @skotopes)
  • OFW: CLI: Add warning about stealth mode in vibro command (by @ivanbarsukov)
  • OFW: Debug: Use proper hook for handle_exit in flipperapps (by @skotopes)
  • OFW: API: Fix kerel typo in documentation (by @EntranceJew)

Removed:

  • Apps:
    • Mifare Nested: Superseded by NFC app after OFW PR 3822 (MIFARE Classic Key Recovery Improvements)
    • ESP Flasher:
      • Removed Airtag Scanner and ESP32-S2 Wardriver due to low user interest and to make space for Ghost ESP
  • API: Removed furi_hal_bt_reverse_mac_addr() and implemented in individual apps instead

Don't miss a new Momentum-Firmware release

NewReleases is sending notifications on new releases.