TL;DR
- New build system based on SCons and pure python
- Nfc: improvements in NTAG(Full amiibo emulation) and DESFire
- SubGhz: improved frequency analyzer, new protocols, bugfixes
- Infrared: rewrite in C
- Furi: drop CMSIS threads
- Rpc: fix issue with non-ascii symbols in file names
Changelog
- fbt: updater over USB (#1344)
- Scripts: added update package uploader over USB; fbt: added flash_usb target
- fbt: additional dependencies for flash_usb
- Cli: fix cursor_position corruption
- fbt: building
core
with respect for debug flag (#1347)- fbt: building
core
with respect for debug flag - fbt: added size output for firmware elf
- Infrared: fix cli
- fbt: building
- SubGhz: fix protocol scher_khan (#1323)
- [FL-2052] New build system based on scons (#1269)
- SubGhz: add protocol PowerSmart / SolarSmart Roller Shutters (#1335)
- SubGhz: add protocol Power Smart
- SubGhz: parsing protocol Power Smart
- SubGhz: add parsing cannel
- SubGhz: add unit test
- SubGhz: update files unit test_random_raw
- [FL-2603] Infrared: exit app properly if ran from outside the launcher (#1340)
- Exit app if no previous scene was found
- Infrared: correct return logic for started from archive app
- [FL-2602] Infrared: Fix crash when messing with SD card (#1339)
- Fix crash after removing SD card and exiting
- Show an error if SD card was removed on Universal remote screen
- nfc: NTAG21x complete emulation (#1313)
- nfc: Refactor Mifare Ultralight feature flags
Unify them in both reader and emulator to make handling easier - nfc: Refactor MFUL PWD_AUTH and add AUTHLIM counter
- nfc: Add MFUL EV1 VCSL command emulation
- nfc: Enforce message size check in MFUL emulation
Also fix READ_CNT byte order, but it's not fully working - nfc: Add MFUL auth counter serialization
Also fill counter on successful read from tag - nfc: Fix MFUL INCR_CNT emulation
- nfc: Fix MFUL READ_CNT emulation
- nfc: Refactor MFUL emulation and implement full write support
- nfc: Fix Mifare Ultralight serialization
- nfc: Add MFUL OTP/CC handling
- nfc: Make sure MF0UL21 dynamic lock byte 3 also reads 0xBD
- nfc: Small MFUL refactor and fix CFGLCK behavior
- WIP: nfc: MFUL read support with ASCII mirror and auth roll-over
This is too complex and I don't like it - nfc: Simplify MFUL read emulation, fix mirror range check
- nfc: Implement MFUL auth and ASCII mirror for FAST_READ
- nfc: Fix MFUL read roll-over with AUTH0 set
- nfc: Implement MFUL read counter increment
- nfc: Align ASCII mirror to NTAG21x behavior
- nfc: Handle invalid command in MFUL emulation
- nfc: Fix MFUL static lock check
- nfc: Refactor MFUL emulation to use cached config pages
- nfc: Refactor MFUL auth counter to count up instead of down
- nfc: Add missing NULL check
- WIP: nfc: Various MFUL emulation behavior tweaks
- WIP: nfc: More MFUL emulation behavior adjustments
- nfc: Match AUTHLIM emulation to NTAG21x behavior
- nfc: Fix MFUL dynamic lock emulation
- nfc: Fix typo in MFUL read counters
- nfc: Fix typo in MFUL FAST_READ emulation
- nfc: Increase emulation TX buffer size
Enough space for if someone requests FAST_READ of all pages of an NTAG - nfc: Fix MFUL negative verification counter overflow
- nfc: Change auth counter kv name
- nfc: Fix NTAG I2C FAST_READ emulation
- nfc: Fix NTAG21x config reload behavior
- nfc: Refactor Mifare Ultralight feature flags
- nfc: DESFire fixes (#1334)
- nfc: don't give up on reading DESFire card if GET_KEY_SETTINGS fails
Some cards are configured to refuse to provide key settings, but still
provide other info. For example, Ubiquiti UniFi Protect access cards
won't list keys or applications, but will still answer GET_FREE_MEMORY. - nfc: don't show error when saving DESFire card with no applications
- nfc: fix DESFire load with 0 applications or no PICC key settings
- nfc: don't give up on reading DESFire card if GET_KEY_SETTINGS fails
- [FL-2548] Infrared: show error if no SD card/databases (#1337)
- Add Database error scene
- More general popup callback name
- [FL-2556] Update complete screen (#1332)
- Desktop: slideshow implementation
- Updater: handling splashscreen installation; added format version field to slideshow binary
- Desktop: added bidirectional slideshow navigation + instant cancel by "back" button; Updater: rebalanced update stages weights
- Updater: fixed missing field init; fixed potential loop when baking slideshows
- Assets: fixed "update complete" image to match original
- Desktop: added check for slideshow file version
- Scripts: slideshow.py cleanup
- Desktop: removed first start intro sequence
- Desktop: removed first start remnants
- [FL-2588] RPC storage: Ignore incorrect file names #1318
- SubGhz: frequency analyzer combined frequency detection method (#1321)
- [FL-2511] Updater: fixed long update descriptions overlapping UI elements #1327
- [FL-2568] Infrared C port (#1326)
- Add skeleton for infrared C port, rename old app
- Add scene stubs
- Add more views
- Misc changes
- Add remote and signal class stubs
- Complete infrared signal class
- Add remote button class stub
- Check if button contains a signal during destruction
- Complete infrared signal class more
- Implement remote storing
- Implement remote loading
- Fix error handling
- Implement remote transmitting
- Rename scene
- Canonise event consumption
- Implement remote learning (stub)
- Implement learn success screen (stub)
- Implement AskBack scene
- Improve remote saving&loading
- Fix remote file name
- Add LearnDone scene
- Switch from Remote scene correctly
- Add SceneButtonSelect
- Remove unneeded assert
- Add new SceneManager method
- Use new SceneManager method in Infrared
- Implement renaming of buttons and remotes
- Implement deleting of buttons and remotes
- Add universal remotes list
- Add brute force code
- Brute force code improvements
- Partially implement Universal Remote GUI
- Fix wrong singnal handling
- Fully implement Universal Remote
- Use standard custom events everywhere
- Return infrared CLI
- Remove old Infrared app
- Change container name
- Fix scene order
- Put ButtonPanel into stack only when needed
- Show loading animation during slow operations
- Do not hardcode Loading widget coordinates
- Switch Loading widget orientation as needed
- Save Start scene state
- Save Remote scene state
- Save Edit scene state
- Save EditButtonSelect scene state
- Do not use scene state
- Use string_t instead of const char* for brevity
- Fix memory leak
- Fix saving raw remotes
- Add Infrared debug menu
- Add debug view
- Move Infrared monitor into Infrared application
- Remove old Infrared monitor app
- Use common signal received callback everywhere
- [FL-2591] Furi: remove CMSIS thread api, migrate to FuriThread, remove unused CMSIS APIs (#1333)
- Furi: remove CMSIS thread api, migrate to FuriThread, remove unused CMSIS APIs
- Furi: magic thread catcher validating thread completion; backtrace improver
- Furi: allow furi_thread_get_current_id outside of thread context
- Furi: use IRQ instead of ISR for core primitives
- Change "cad" to "card" (#1320)
This bugs me too much to just ignore it -_-
Ongoing
- RFID refactoring, raw and new protocols.
- NFC: Mifare Classic improvement and applcation refactoring
- Furi: core and hal refactoring for sd card applications
- Application os SD Cards