Commit graph

612 commits

Author SHA1 Message Date
Sergey Gavrilov
92e440c77d
Core: simplify record container (#1776)
Co-authored-by: あく <alleteam@gmail.com>
2022-09-25 20:48:57 +09:00
Andrea Sacchi
3846852f2b
NFC Fix Mifare Classic (#1769)
* Fix Mifare Classic key str to int conversion: Wrong cast lead to unexpected behavior converting key from str to int.
* Nfc: fix type cast in mf_classic_dict and add basic unit tests

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-09-23 02:35:28 +09:00
Max Lapan
3360f818a1
Subghz: Adding checks for get_upload functions (#1704)
* Adding checks for get_upload functions
  Almost in every protocol, function which generates upload might fail and return false.
  But we don't check this result, which might end up sending random memory contents to the air.
* Format sources and fix crash on ivalid bit count in chamberlain

Co-authored-by: あく <alleteam@gmail.com>
2022-09-20 14:29:10 +09:00
David
f5ff6438d1
NFC user dict list, delete, and de-duplication. (#1533)
* Add MFC user keys list
* Leakey submenu fix
* Set next target for Save/Delete success scenes
* Delete individual user keys
* Update count of total keys
* Fix memory leak
* Check for duplicate keys
* Remove a submodule that I never added?
* Swap and position icons
* Revamp according to design doc
* Rename icons to include size and replace keychain icon with smaller variant
* Fix typos
* Final fixes
* Fufill requested changes
* Cleanup comments
* Merge dev after SD app loading
* Fixing icon names
* Revert merge mistakes and API version
* Scene switching adjustments
* F7: add/change/remove some nfc icons in api_symbols.csv

Co-authored-by: あく <alleteam@gmail.com>
2022-09-20 01:43:53 +09:00
Astra
9f3b80e606
Add new card parsers (#1503)
* Add the "Two cities" parser
* Add plantain and plantain4k parsers
* Add new parsers to the supported list
* United card PoC
* Fix nfc device not sleeping
* Completely read the 4K troika variants
* Correct naming
* Update to reflect upstream changes
* Add support for MfUl info
* Fix parsers
* Card type detection fixes
* Remove debug info
* Fixes for the verification of cards
* nfc: fix verification for supported cards
* nfc: remove unused vars
* Improve card reading reliability and fix plantain
* plantain: change log level

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2022-09-20 01:05:04 +09:00
Max Lapan
d003db0404
SubGhz: Oregon v2.1 decoder (#1678)
* Oregon v2.1 decoder
* Refactor FSM to switch
* Refactor headers
* Format strings
* Unit tests of oregon2
* Cleanups
* Add oregon2 raw data to random_test_raw.sub
* Adjust count of packets detected on random test
* Format sources

Co-authored-by: あく <alleteam@gmail.com>
2022-09-19 23:24:24 +09:00
Nikolay Minaylov
fb476c29e6
RFID: fix read info screen (#1723)
* RFID: fix read info screen
* Fix line break for long data string
* Protocol data redecoding before write

Co-authored-by: SG <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-09-19 22:21:40 +09:00
hedger
ed385594a3
faploader: more subsystem headers in API table (#1742)
* faploader: more subsystem headers in API table; not counting header entries for SDK version change
* subghz: removed dead function
* Adjusted API version
* hal: removed furi_hal_power_get_system_voltage
* lib: mbedtls: additional flags for .fap linkage
* fbt: rebuilding assets when git commit id changes
* fbt: removed assets rebuild on git commit id change; added explicit dependency for SDK source on compiled assets parts; removed unneeded sdk regeneration runs
* fbt: changed stock plugins to EXTERNAL apps; restored building app as a PLUGIN as a part of main fw as well as a .fap; readme fixes
* fbt: restored certain apps to PLUGIN type
* fbt: app manifests: renamed version->fap_version, added extra fields
* fbt: fixed version processing after rename

Co-authored-by: あく <alleteam@gmail.com>
2022-09-19 21:39:00 +09:00
hedger
007a3d295e
[FL-2819] updater: fixed failing backups on /int with empty files in it #1735
Co-authored-by: あく <alleteam@gmail.com>
2022-09-15 22:55:55 +09:00
SG
b9a766d909 [FL-2627] Flipper applications: SDK, build and debug system (#1387)
* Added support for running applications from SD card (FAPs - Flipper Application Packages)
* Added plugin_dist target for fbt to build FAPs
* All apps of type FlipperAppType.EXTERNAL and FlipperAppType.PLUGIN are built as FAPs by default
* Updated VSCode configuration for new fbt features - re-deploy stock configuration to use them
* Added debugging support for FAPs with fbt debug & VSCode
* Added public firmware API with automated versioning

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: SG <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-09-15 02:21:03 +09:00
Skorpionm
e9ab581771
SubGhz: fix decoder kelooq (#1719)
* SubGhz: fix decoder kelooq

Co-authored-by: hedger <hedger@users.noreply.github.com>
2022-09-08 10:27:03 +03:00
あく
b62096fb91
[FL-2645, FL-2810] SubGhz: handle missing key in cryptostore. Lib: lower default display contrast. (#1717)
* SubGhz: skip file loading on key load fail

* Lib: update default display contrast

* Format sources

Co-authored-by: hedger <hedger@users.noreply.github.com>
2022-09-08 10:18:18 +03:00
あく
3a767c9c02
[FL-2794] Lib: update LFS to v2.5.0, lower update free page limit (#1706)
* Lib: update lfs to v2.5.0

* Storage: set minimum free pages for update on internal storage to 3

* Updater: lower min int free space limit

* lfs: disabled debug and trace logs by default

Co-authored-by: hedger <hedger@nanode.su>
2022-09-05 20:40:20 +03:00
VVX7
8d8481b17f
fix buffer overflow in mifar ul load (#1697)
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2022-09-05 20:42:59 +09:00
gornekich
1853359d78
[FL-2759], [FL-2766] NFC collect params for mfkey32 attack (#1643)
* nfc: start nfc over rpc
* nfc: add detect reader state
* nfc: add reader analyzer
* nfc: rework reader analyzer
* reader_analyzer: print collected nonces to debug
* reader analyzer: add save on SD card
* reader_analyzer: separate mfkey related part to different file
* mfkey32: add logic for collecting parameters
* nfc: rework pcap with reader analyzer
* nfc: add logger for reader
* nfc: clean up
* nfc: add detect reader view
* nfc: add detect reader and mfkey nonces scenes
* nfc: add mfkey comlplete scene
* nfc: add new assets
* nfc: fix gui
* nfc: fix iso14443-4 UID emulation
* nfc: add no sd card notification
* nfc: fix grammar

Co-authored-by: あく <alleteam@gmail.com>
2022-09-03 21:25:36 +09:00
Skorpionm
a3932cfa6d
[FL-2787] SubGhz: add protocol Clemsa, fix decoder BETT (#1696)
* SubGhz: add protocol Clemsa
* SubGhz: fix decoder BETT protocol

Co-authored-by: あく <alleteam@gmail.com>
2022-09-03 15:19:01 +09:00
Sebastian Mauer
1d787e6da8
Add support for Keri tags (#1689)
Co-authored-by: SG <who.just.the.doctor@gmail.com>
2022-09-02 21:36:13 +10:00
Sebastian Mauer
10b0a611cf
Add support for Gallagher tags (#1680)
* Add Gallagher protocol
2022-09-02 21:15:34 +10:00
Skorpionm
0ee4573a65
SubGhz: add protocol Intertechno_V3 (#1622)
* SubGhz: add decode Intertechno_V3
* SubGhz: add encoder Intertechno V3
* SubGhz: add uni_test Intertechno V3
* SubGhz: fix syntax
* SubGhz: add Intertechno V3 dimming mode
* SubGhz: fix parsing event Magellen protocol
* SubGhz: fix syntax
* SubGhz: fix encoder dimm mode

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-08-31 23:27:34 +09:00
Skorpionm
311b60f815
[FL-2771] SubGhz: add protocol Prastel #1674
Co-authored-by: あく <alleteam@gmail.com>
2022-08-31 23:21:36 +09:00
Eric Betts
8e9043003f
Picopass write (#1658)
* [picopass] Prevent false success with non-standard key
* UI for writing
* worker function for write
* Update write command value
* Show card read failure message

Co-authored-by: あく <alleteam@gmail.com>
2022-08-30 22:59:34 +09:00
Sebastian Mauer
d76ba20652
Add support for Pyramid tags (#1676)
* Add support for Pyramid tags
* Also add additional checks for AWID decoder to avoid missdetection

* lfrfid worker: reset GPIO_LOAD pin
* lfrfid: protocol viking, format
* lfrfid: protocol pyramid, format
* lfrfid: protocol paradox, format
* lfrfid: protocol jablotron, format
* lfrfid: protocol em4100, format
* lfrfid: increase reading time by 0.5s since protocol viking takes longer to read

Co-authored-by: SG <who.just.the.doctor@gmail.com>
2022-08-30 02:31:28 +10:00
Walter Doekes
611b7e15ed
Remove execute permissions from *.c and *.h files (#1651)
* Add permission fix (no execute bit for source files) to fbt lint|format
* Remove execute bit from 59 source files using fbt format
* Also list which permissions are unwanted in lint.py
* Also remove exec permissions from lib/../rfal_nfc.c

Co-authored-by: あく <alleteam@gmail.com>
2022-08-30 01:20:57 +09:00
Sebastian Mauer
274f17ed5a
Add support for Viking tags (#1668)
* Add support for Viking tags
Fix blocks_to_write for T5577
2022-08-30 01:19:56 +10:00
Sebastian Mauer
f09c5889dd
Add support for Jablotron tags (#1657)
* Add support for Jablotron tags
2022-08-30 01:15:27 +10:00
Sebastian Mauer
39f936ce12
Add support for Paradox tags (#1655)
* Add support for Paradox tags
2022-08-30 01:08:10 +10:00
Sebastian Mauer
1350dcaf63
Add support for PAC/Stanley tags (#1648)
* Add support for PAC/Stanley tags
* Address review comments
2022-08-30 01:04:17 +10:00
Yukai Li
ab4bb55d0f
nfc: Change furi_assert to furi_crash for default switch cases (#1662)
* nfc: Change furi_assert to furi_crash for default switch cases
* Nfc: change MiFare Ultralight crash message

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-08-26 01:07:54 +09:00
Skorpionm
ce7b943793
[FL-2764] SubGhz: fix CAME, Chamberlain potocol (#1650)
* SubGhz: fix guard time CAME potocol
* SubGhz: fix file upload Chamberlain
* Github: fix spelling

Co-authored-by: あく <alleteam@gmail.com>
2022-08-25 00:14:27 +09:00
SG
7e20df7e93
LFRFID RC fixes (#1652)
* lfrid: fix write validation
* lfrid app: restore key data after write
2022-08-24 23:41:59 +09:00
SG
9bfb641d3e
[FL-2529][FL-1628] New LF-RFID subsystem (#1601)
* Makefile: unit tests pack
* RFID: pulse joiner and its unit test
* Move pulse protocol helpers to appropriate place
* Drop pulse_joiner tests
* Generic protocol, protocols dictionary, unit test
* Protocol dict unit test
* iButton: protocols dictionary
* Lib: varint
* Lib: profiler
* Unit test: varint
* rfid: worker mockup
* LFRFID: em4100 unit test
* Storage: file_exist function
* rfid: fsk osc
* rfid: generic fsk demodulator
* rfid: protocol em4100
* rfid: protocol h10301
* rfid: protocol io prox xsf
* Unit test: rfid protocols
* rfid: new hal
* rfid: raw worker
* Unit test: fix error output
* rfid: worker
* rfid: plain c cli
* fw: migrate to scons
* lfrfid: full io prox support
* unit test: io prox protocol
* SubGHZ: move bit defines to source
* FSK oscillator: level duration compability
* libs: bit manipulation library
* lfrfid: ioprox protocol, use bit library and new level duration method of FSK ocillator
* bit lib: unit tests
* Bit lib: parity tests, remove every nth bit, copy bits
* Lfrfid: awid protocol
* bit lib: uint16 and uint32 getters, unit tests
* lfrfid: FDX-B read, draft version
* Minunit: better memeq assert
* bit lib: reverse, print, print regions
* Protocol dict: get protocol features, get protocol validate count
* lfrfid worker: improved read
* lfrfid raw worker: psk support
* Cli: rfid plain C cli
* protocol AWID: render
* protocol em4100: render
* protocol h10301: render
* protocol indala26: support every indala 26 scramble
* Protocol IO Prox: render
* Protocol FDX-B: advanced read
* lfrfid: remove unused test function
* lfrfid: fix os primitives
* bit lib: crc16 and unit tests
* FDX-B: save data
* lfrfid worker: increase stream size. Alloc raw worker only when needed.
* lfrfid: indala26 emulation
* lfrfid: prepare to write
* lfrfid: fdx-b emulation
* lfrfid: awid, ioprox write
* lfrfid: write t55xx w\o validation
* lfrfid: better t55xx block0 handling
* lfrfid: use new t5577 functions in worker
* lfrfid: improve protocol description
* lfrfid: write and verify
* lfrfid: delete cpp cli
* lfrfid: improve worker usage
* lfrfid-app: step to new worker
* lfrfid: old indala (I40134) load fallback
* lfrfid: indala26, recover wrong synced data
* lfrfid: remove old worker
* lfrfid app: dummy read screen
* lfrfid app: less dummy read screen
* lfrfid: generic 96-bit HID protocol (covers up to HID 37-bit)
* rename
* lfrfid: improve indala26 read
* lfrfid: generic 192-bit HID protocol (covers all HID extended)
* lfrfid: TODO about HID render
* lfrfid: new protocol FDX-A
* lfrfid-app: correct worker stop on exit
* misc fixes
* lfrfid: FDX-A and HID distinguishability has been fixed.
* lfrfid: decode HID size header and render it (#1612)
* lfrfid: rename HID96 and HID192 to HIDProx and HIDExt
* lfrfid: extra actions scene
* lfrfid: decode generic HID Proximity size lazily (#1618)
* lib: stream of data buffers concept
* lfrfid: raw file helper
* lfrfid: changed raw worker api
* lfrfid: packed varint pair
* lfrfid: read stream speedup
* lfrfid app: show read mode
* Documentation
* lfrfid app: raw read gui
* lfrfid app: storage check for raw read
* memleak fix
* review fixes
* lfrfid app: read blink color
* lfrfid app: reset key name after read
* review fixes
* lfrfid app: fix copypasted text
* review fixes
* lfrfid: disable debug gpio
* lfrfid: card detection events
* lfrfid: change validation color from magenta to green
* Update core_defines.
* lfrfid: prefix fdx-b id by zeroes
* lfrfid: parse up to 43-bit HID Proximity keys (#1640)
* Fbt: downgrade toolchain and fix PS1
* lfrfid: fix unit tests
* lfrfid app: remove printf
* lfrfid: indala26, use bit 55 as data
* lfrfid: indala26, better brief format
* lfrfid: indala26, loading fallback
* lfrfid: read timing tuning

Co-authored-by: James Ide <ide@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-08-24 00:57:39 +09:00
Eric Betts
f92127c0a7
Picopass load/info/delete (#1562)
* increase stack size
* rfalPicoPassPollerWriteBlock
* UI for loading picopass
* Move picopass parsing and add delete, delete success

Co-authored-by: あく <alleteam@gmail.com>
2022-08-23 22:19:17 +09:00
Skorpionm
57328761cf
[FL-2757] SubGhz: add protocol Magellen (#1633)
* SubGhz: add decoder Paradox Wireless
* SubGhz: fix syntax
* SubGhz: rename paradox_wireless -> magellen, add encoder Magellen, parse event
* SuBghz: add unit_test Magellen

Co-authored-by: あく <alleteam@gmail.com>
2022-08-23 03:01:42 +09:00
gornekich
8992f8ac36
Fix mifare ultralight/ntag unlock #1624
Co-authored-by: あく <alleteam@gmail.com>
2022-08-23 02:14:31 +09:00
hedger
9829145d8c
fbt: fixed include paths; added PVS-Studio configuration (#1615)
* fbt: fixed include paths for generated version header
* lib: STM32CubeWB: refactored & cleaned up WPAN include paths
* hal: linter fixes for new headers
* fbt: added version_json target
* Added .pvsconfig; split common_defines.h into 2 files
* Added PVS-Studio basic configuration files; updated .gitignore

Co-authored-by: あく <alleteam@gmail.com>
2022-08-23 02:06:17 +09:00
MX
9b13842467
Fix typos in subghz (#1588)
Co-authored-by: あく <alleteam@gmail.com>
2022-08-18 01:40:09 +09:00
gornekich
560ea5f995
[FL-2714] New NFC info screens (#1605)
* nfc: add scroll element for info
* widget: format lines for scroll text element
* widget: fix new line generation
* widget: finish element text scroll
* nfc: rework ultralight and NTAG info scenes
* nfc: rework mf classic info screens
* nfc: rework nfca info scenes
* nfc: fix mf ultralight navigation
* widget: add documentation
* nfc: rework bank card infO
* nfc: rework device info scene
* nfc: fix incorrect atqa order
* mf ultralight: remove unused function
* widget: add mutex for model protection
* widget: fix memory leak
* nfc: rework delete scene
* nfc: fix selected item in saved menu scene
* widget: fix naming in text scroll element
* nfc: fix navigation from delete success
* nfc: add dictionary icon
* widget: fix memory leak
2022-08-18 00:08:13 +09:00
Nikolay Minaylov
a5a79c5da3
[FL-2705] RPC APP fixes #1568
Co-authored-by: あく <alleteam@gmail.com>
2022-08-12 00:37:23 +09:00
Skorpionm
36b8dfe655
[FL-2729] SubGhz: fix bett decoder (#1573)
* SubGhz: fix bett decoder
* SubGhz: fix duration preamble bett protocol

Co-authored-by: あく <alleteam@gmail.com>
2022-08-12 00:21:13 +09:00
Skorpionm
a39111ade2
[FL-2723] SubGhz: add protocol Honeywell_WDB / Doorbell (#1560)
* SubGhz: add protocol Honeywell_WDB (receive/save/load/transfer)
* SubGhz: add  parsing data honeywell
* SubGhz: fix UI CAME TWEE
* SubGhz: add unit_test honeywell_wdb

Co-authored-by: あく <alleteam@gmail.com>
2022-08-11 21:20:31 +09:00
あく
fae392d84e
[FL-2677] SubGhz: region provisioning (#1574)
* FuriHal: region HAL draft
* FuriHal,SubGhz: complete region provisioning.
* Rpc: fix null pointer dereference.
* Cli: device info formatting
* FuriHal: region provisioning fixes and documentation.
2022-08-11 19:21:56 +10:00
hedger
1d50a5981e
[FL-2059] Storage fixes for handling empty files (#1563)
* storage: fixed handling of zero-length files
* docs: added ReadMe.md for vscode workspace
* rpc: storage: improved empty file & error handling in write handler
* docs: markdown fix
* docs: typo fixes

Co-authored-by: SG <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-08-10 00:57:11 +09:00
Astra
01eb92db06
Mifare Classic emulation fixes (#1566)
* Add fix for field
* More small bugfixes
* Clean up
2022-08-10 01:45:52 +10:00
Skorpionm
416cce9ffc
[FL-2718, FL-2719] SubGhz: add protocol BERNER / ELKA / TEDSEN / TELETASTER / Doitrand / Marantec / Phoenix V2 (static mode) / Phox (static mode), fix Princeton (#1516)
* SubGhz: add protocol marantec
* SubGhz: add protocol BERNER / ELKA / TEDSEN / TELETASTER
* SubGhz: add protocol Doitrand
* SubGhz: delete debug
* SubGhz: add protocol Phoenix V2 (static mode)
* SubGhz: fix serial decode Phoenix V2
* SubGhz: fix Princeton, display serial number and button on boot
* SubGhz: fix Bett decoder and fix unit_test
* SubGhz: update test_random_raw for unit_test

Co-authored-by: あく <alleteam@gmail.com>
2022-08-08 00:56:45 +09:00
gornekich
173c94156d
NFC: Add Skylanders support (#1553)
* nfc: add skylanders support
* nfc: format sources

Co-authored-by: あく <alleteam@gmail.com>
2022-08-08 00:33:14 +09:00
Peter Seprus
f3d7d7dba0
Extend random name generator (#1551)
* Extend random name generator
* Format sources

Co-authored-by: あく <alleteam@gmail.com>
2022-08-08 00:28:04 +09:00
Vitaliya Chumakova
9ffcc52ada
Mifare Ultralight authentication (#1365)
* mifare ultralight auth prototype
* it works!
* Reference source
* use countof
* rework everything
* oops forgot scenes
* build: revert changes in manifest, stack size
* build: fix buid, format sources
* nfc: update unlock ultralight GUI
* nfc: fix byte input header
* nfc: add new scenes for locked ultralight
* nfc: add data read to ultralights
* nfc: add unlock option in mf ultralight menu
* nfc: add data read init in ultralight generation
* nfc: lin sources, fix unlocked save
* nfc: format python sources
* nfc: clean up

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2022-08-08 00:09:00 +09:00
HexPandaa
4c499d9045
Fix directory name in lib readme (#1528)
Co-authored-by: あく <alleteam@gmail.com>
2022-08-04 02:13:06 +09:00
Fedor Indutny
3ee93e1a82
nfc: make dict attack more interactive (#1462)
* nfc: deduplify dict attack worker code
* nfc: make dict attack more interactive

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-08-04 02:07:35 +09:00
Georgii Surkov
135fbd294b
[FL-2693] RW buffered streams (#1523)
* Add write methods for stream cache
* Fix logical error
* Implement write cache for buffered file streams
* Minor code refactoring
* Less ugly code
* Better read() implementation
* Intermediate implementation
* Fix logical error
* Code cleanup
* Update FFF comments
* Fix logical error
* Github: rsync with delete

Co-authored-by: あく <alleteam@gmail.com>
2022-08-04 01:43:14 +09:00
SG
bc34689ed6
Make printf great again (#1438)
* Printf lib: wrap *printf* functions
* Printf lib, FW: drop sprintf. Dolphin: dump timestamp as is, wo asctime.
* FW: remove sniprintf, wrap assert functions
* Printf lib: wrap putc, puts, putchar
* Printf: a working but not thread-safe concept.
* Poorly wrap fflush
* stdglue: buffers
* Core: thread local buffers
* Core: move stdglue to thread api, add ability to get FuriThread instance of current thread.
* RPC tests: replace sprintf with snprintf
* Applications: use new stdout api
* Printf lib: wrap more printf-like and stdout functions
* Documentation
* Apps: snprintf size fixes

Co-authored-by: あく <alleteam@gmail.com>
2022-08-04 01:00:17 +09:00
Max Andreev
93a4b9c4a9
[FL-2649] Drop Docker in CI/CD (#1412)
* enable sparseCheckout, moving github actions from docker to raw shell
* fix missing known_hosts while setting ssh priv key
* fix build.yml
* add ssh key to upload just in time
* fixing rsync syntax
* fix build.yml
* try to fix build.yml again
* testing rsync
* test rsync again
* add linters
* add Black Python linter to submodules
* add Black submodule
* add working python linter target, dirty file list
* up toolchain to version 4
* up toolchain to ver 5
* up toolchain version to 6
* fbt: using black 22.6.0
* remove Black submodule, up toolchain to ver 7
* fbt: added lint_py, format_py targets
* add pvs_studio workflow
* fix pvs_studio segfault
* fix pvs_studio command
* fix pvs_studio command 2
* show env before run pvs_studio
* try to debug pvs_studio
* try to strace pvs_studio..
* Add FBT_TOOLCHAIN_PATH, MacOS Rosseta check, and ignore non-x86_64 linux architectures
* prevent redownloading toolchain on github-runners
* fix toolchain download exitcode
* add strace to debug pvs_studio segfault
* disable strace to catch full code dump
* Add './fbt cli' target to access Flipper CLI via PySerial
* remove pvs_studio from this PR
* removing clang-format from toolchain due errors
* make source easy, and fix some mistakes found by @hedger
* Add check_submodules workflow, some fixes
* fixing mistakes

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2022-08-02 23:05:31 +09:00
Georgii Surkov
01afb289c0
[FL-2713] Buffered file streams fix (#1515)
* Fix incorrect buffered stream behaviour
* Add specific tests
* Make the test fail on wrong behaviour
* Better names

Co-authored-by: あく <alleteam@gmail.com>
2022-08-02 22:17:37 +09:00
Skorpionm
4da6eba395
[FL-2706, FL-2709] SubGhz: checking saved key files for length (#1485)
* [FL-2706] SubGhz: checking saved key files for length
* SubGhz: fix RAW file upload error
* [FL-2709] GubGhz: RAW screen fix

Co-authored-by: あく <alleteam@gmail.com>
2022-08-01 21:24:21 +09:00
MX
712a48b5db
Fix typo in subghz (#1467)
* fix typo across subghz

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: Aleksandr Kutuzov <aku@plooks.com>
2022-07-31 08:34:38 +09:00
gornekich
c40e8811d6
[FL-2701], [FL-2702], [FL-2699] NFC fixes (#1478)
* nfc: change read scene views
* nfc: rework return after save success
* nfc: add fallback to read UID of unrecognized iso14443-3
* nfc: show mifare desfire on read success
* nfc: add restore original confirm scene
* nfc: fix icon name
* nfc: clear 6 bit in SAK to emulate 14443-4 uids
* nfc: don't change original sak
2022-07-28 21:34:28 +09:00
hedger
80a7de8078
updater: fixed dolphin level not being migrated (#1458) 2022-07-27 02:13:09 +09:00
gornekich
9c59bcd776
[FL-2605] NFC new design (#1364)
* nfc: add new read scene

* lib: refactore nfc library

* mifare desfire: add read card fuction

* lib nfc: add auto read worker

* nfc: add supported cards

* nfc: add mifare classic read success scene

* nfc: add troyka support

* submodule: update protobuf

* nfc: mifare classic keys cache

* nfc: rework mifare classic key cache

* Correct spelling

* nfc: add user dictionary

* nfc: introduce block read map in fff

* nfc: rework dict attack

* nfc: improve dict attack

* nfc: rework mifare classic format

* nfc: rework MFC read with Reader

* nfc: add gui for MFC read success scene

* nfc: fix dict attack view gui

* nfc: add retry and exit confirm scenes

* nfc: add retry and exit scenes navigation

* nfc: check user dictionary

* nfc: remove unused scenes

* nfc: rename functions in nfc worker

* nfc: rename mf_classic_dict_attack -> dict_attack

* nfc: change scenes names
* nfc: remove scene tick events
* nfc: rework dict calls with buffer streams
* nfc: fix notifications
* nfc: fix mf desfire navigation
* nfc: remove notification from mf classic read success
* nfc: fix read sectors calculation
* nfc: add fallback for unknown card
* nfc: show file name while emulating
* nfc: fix build
* nfc: fix memory leak
* nfc: fix desfire read
* nfc: add no dict found navigation
* nfc: add read views
* nfc: update card fix
* nfc: fix access bytes save
* nfc: add exit and retry confirm to mf ultralight read success
* nfc: introduce detect reader
* nfc: change record open arg to macros
* nfc: fix start from archive

Co-authored-by: Astra <astra@astrra.space>
Co-authored-by: あく <alleteam@gmail.com>
2022-07-27 00:30:49 +09:00
Skorpionm
ec19c11dbe
[FL-2669] SubGhz: add support for loading custom presets (#1398)
* SubGhz: load custom -preset
* SubGhz: fix error prt=0
* SubGhz: load custom preset
* SubGhz: code refactoring to support custom preset
* SubGhz: add custom presert refactoring
* SubGhz: fix alloc history alloc preset
* SubGhz: fix error load file
* SubGhz: fix start custom preset
* SubGhz: fix delete custom preset
* SubGhz: add description Custom_preset_data for CC1101
* SubGhz: debug logging and buffer size rounding

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: Aleksandr Kutuzov <aku@plooks.com>
2022-07-26 23:16:59 +09:00
Skorpionm
ed7db336c1
[FL-2684, FL-2685] bugfix subghz (#1446)
* [FL-2684] SubGhz: fix incorrect CAME TWICE protocol definition
* [FL-2685] SubGhz: fix the recorded RAW signal is deleted when trying to transmit on a prohibited frequency

Co-authored-by: あく <alleteam@gmail.com>
2022-07-26 21:58:07 +09:00
hedger
056446dfed
[FL-2675] /int space reservation (#1448)
* storage: added global #defines for /int, /ext & /any
* storage: introduced PATH_EXT, PATH_INT& PATH_ANY macros
* core apps: moved hardcoded config files names to separate headers; prefixed them with "."; updater: added file name migration to new naming convention on backup extraction
* storage: fixed storage_merge_recursive handling of complex directory structures; storage_move_to_sd: changed data migration logic to all non-dot files & all folders
* core: added macro aliases for core record names
* Bumped protobuf commit pointer
* storage: reserved 5 pages in /int; denying write&creation of non-dot files when running out of free space

Co-authored-by: あく <alleteam@gmail.com>
2022-07-26 21:21:51 +09:00
Eric Betts
cd77b93f26
Picopass: dump full card, extract some details (#1408)
* Dump entire picopass card
* Capture more iClass details
* facility code bugfix

Co-authored-by: あく <alleteam@gmail.com>
2022-07-26 00:36:38 +09:00
Yukai Li
f8e0ec42c5
nfc: NTAG203 support (#1383)
* nfc: Fix original MFUL feature flags
* nfc: Add NTAG203 read support
* nfc: Update emulation lock byte handling for NTAG203
* nfc: Add NTAG203 counter emulation support
* nfc: Add NTAG203 tag generator
* nfc: Fix NTAG203 emulating GET_VERSION
* nfc: Fix MFUL version reading
* nfc: Complete NTAG203 counter emulation behavior
* nfc: Complete NTAG203 emulation
* nfc: Remove unnecessary init in MFUL emulation
* nfc: Add notes about MFUL type enum

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-07-26 00:21:05 +09:00
Georgii Surkov
c22d66590e
[FL-2682] Allow spaces in file names #1444 2022-07-25 20:23:47 +09:00
Georgii Surkov
16e598b2c0
[FL-2655, FL-2650] Buffered file streams (#1424)
* Initial buffered file stream implementation
* Fix logical errors
* Fix more logical errors
* Minimally working implementation
* Adapt infrared unit tests for buffered streams
* Increase read buffer size from 512 to 1K
* Correct naming and formatting
* More code improvements
* Allow passing access and open modes for buffered streams
* Implement tests for buffered streams
* Better file and method names
* Add comments and correct formatting
* Use buffered streams in Infrared
* Fix compilation error
2022-07-23 01:00:25 +09:00
あく
e3c7201a20
Furi: core refactoring and CMSIS removal part 2 (#1410)
* Furi: rename and move core
* Furi: drop CMSIS_OS header and unused api, partially refactor and cleanup the rest
* Furi: CMSIS_OS drop and refactoring.
* Furi: refactoring, remove cmsis legacy
* Furi: fix incorrect assert on queue deallocation, cleanup timer
* Furi: improve delay api, get rid of floats
* hal: dropped furi_hal_crc
* Furi: move DWT based delay to cortex HAL
* Furi: update core documentation

Co-authored-by: hedger <hedger@nanode.su>
2022-07-20 13:56:33 +03:00
Eric Betts
edc6ca0c8f
Log MFC nonces for use with mfkey32v2 (#1390)
Co-authored-by: あく <alleteam@gmail.com>
2022-07-17 15:13:51 +09:00
Eric Betts
c29ab50016
Calculate picopass CRC dynamically (#1389)
Co-authored-by: あく <alleteam@gmail.com>
2022-07-17 15:01:19 +09:00
SG
6ac1ed2aaa
IR: increase raw timings amount (#1388)
Co-authored-by: あく <alleteam@gmail.com>
2022-07-15 02:06:25 +09:00
Eric Betts
f46ae5a704
Namespace loclass library (#1379)
* Namespace loclass library
* Lib: const for immutable variables and bss cleanup

Co-authored-by: あく <alleteam@gmail.com>
2022-07-08 21:56:23 +09:00
Astra
c72b678510
SubGh: fix a race condition (#1376) 2022-07-06 23:28:31 +09:00
gornekich
ece142a667
Fix buffer overflow in mifare classic lib #1374 2022-07-06 00:41:19 +09:00
Equip
e147b2ceea
Added Javacard Emulated mifare classic 1K compatibility (#1369)
* Add Mifare classic 1k JC handling
  Add mifare classic Javacard emulation handling
* Adding MIFARE 1K Javacard Emulation Compatibility
  MIFARE Classic 1K Cards from NXP have the SAK value of 0x08.
  MIFARE Classic 1K Cards that are emulated via javacard applet have an SAK value of 0x09.
  Adding the SAK values accordingly so that Javacard emulated mifare classic tags are properly handled.
* update mifare_common.c
  added javacard emulation handling for mifare classic 1k

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-07-06 00:34:21 +09:00
Eric Betts
8af2198684
Iclass UI (#1366)
* Move structs to header
* roll mbedtls into loclass
* Picopass with scene for reading card
* Picopass: fix memory leak
* Lib: return mbedtls back
* Picopass: rename symbols to match naming guide

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-07-06 00:28:27 +09:00
hedger
b95cd2df14
[FL-2578] Updater fixes related to /int handling (#1359)
* Updater fixes related to /int handling
  updater: performing factory reset on update, checking for LFS free space before updating, fixed improper error handling on backup/restore operations, rebalanced update stage weights for better progress visuals
  scripts: added CLI output validation for selfupdate.py
  storage: added pointer validation in storage_int_common_fs_info
  desktop: fixed crash on rendering invalid slideshows
* Typo fix
* rpc: Updated protobuf to 0.9
* rpc: removed updater status conversion

Co-authored-by: あく <alleteam@gmail.com>
2022-07-04 22:36:12 +09:00
gornekich
5769595e67
NFC emulation software tunning (#1341)
* digital_signal: optimize calculationxx
* firmware: add listen start and listen rx
* digital signal: rework with fixed point calculation
* nfc: tune timings
* nfc: fix array overflow
* mifare classic: fix key access
* nfc: rework spi bus access
* nfc: rework listen mode with st25r3916 calls
* digital signal: speed up digital_signal_append()
* digital signal: remove unused profiling
* nfc: clean up code
* nfc: correct sleep state
* nfc: add unit tests
* nfc: fix memory leak in unit test
* digital_signal: remove unused code
* nfc: fix incorrect sak load in pt memory

Co-authored-by: あく <alleteam@gmail.com>
2022-07-03 23:51:50 +09:00
Eric Betts
1975868ed8
PicoPass / iClass (#1298)
* add mdedtls for des3 implementation
* add localss from RfidResearchGroup/proxmark3
* picopass reader app and rfal for communicating with picopass cards
* always turn off field
* close storage when keys are not found
* Add mbedtls as submodule
* add mbedtl_config
* Switched to only including specific mbedtls files I need.  Thank you @kevinwallace
* cherry-pick kevinwallace sconsify
* scons for mbedtls/loclass
* Reset to ready state on error
* unsigned FC/CN
* clean FC/CN if not decoded

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: Kevin Wallace <git+flipperzero@kevin.wallace.seattle.wa.us>
2022-07-03 17:44:38 +09:00
quantum-x
8632c77d68
1342 add mifare infineon (#1346)
* Adding MIFARE 1K Infineon Compatibility
  As per Issue #1342,
  MIFARE Classic 1K Cards from NXP have the SAK value of 0x08.
  MIFARE Classic 1K Cards from Infineon have an SAK value of 0x88.
  Adding the SAK values accordingly so that Infineon tags are properly handled.
2022-06-30 23:47:08 +09:00
Skorpionm
6d38740a46
SubGhz: fix protocol scher_khan (#1323)
Co-authored-by: あく <alleteam@gmail.com>
2022-06-26 21:16:56 +09:00
hedger
f3b1475ede
[FL-2052] New build system based on scons (#1269) 2022-06-26 21:00:03 +09:00
Skorpionm
c79fb61909
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

Co-authored-by: あく <alleteam@gmail.com>
2022-06-23 00:18:52 +09:00
Yukai Li
556af0b82b
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

Co-authored-by: あく <alleteam@gmail.com>
2022-06-22 00:04:35 +09:00
hedger
eb31fed0e2
[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
2022-06-21 23:11:34 +09:00
あく
839e52ac32
[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
2022-06-20 18:54:48 +04:00
Kevin Wallace
9c9f66a30f
nfc: add debug PCAP output, refactor Mifare DESFire following #1095 (#1294)
* nfc: refactor nfc_worker_read_mifare_desfire to use furi_hal_nfc_tx_rx
  Renames furi_hal_nfc_exchange_full to furi_hal_nfc_tx_rx_full, and
  rewrites it to use furi_hal_nfc_tx_rx.  This eliminates the final
  remaining use of furi_hal_nfc_exchange, so remove that.
* nfc: write debug.pcap when debug mode enabled
  Limited to NFC protocols that use furi_hal_nfc_tx_rx to communicate.
* switch to Doxygen style comment

Co-authored-by: Kevin Wallace <git+flipperzero@kevin.wallace.seattle.wa.us>
Co-authored-by: あく <alleteam@gmail.com>
2022-06-09 17:35:34 +09:00
Nikolay Minaylov
cfb1a0d01c
Hardware LED blinking (#1303)
* Hardware LED blinking notification messages
* Blink: fix crash on exit, reset blinking on exit
* Lib: remove unused UNUSED

Co-authored-by: あく <alleteam@gmail.com>
2022-06-09 16:33:46 +09:00
Nikolay Minaylov
41cf421234
[FL-2565] Archive: switch to browser worker #1295 2022-06-09 16:09:52 +09:00
Skorpionm
b625e84424
SubGhz: Add Chamberlain 7-Code, Chamberlain 8-Code, Chamberlain 9-Code (#1288)
* SubGhz: fix protocol MegaCode start duration
* SubGhz:  add reception Chamberlain Code 7, 8, 9 protocols
* SubGhz: Generating an upload from HEX data and a duration of 1 bit
* SubGhz: add transmit Chamberlain Code 7, 8, 9 protocol
* SubGhz: Rename Firefly -> Linear

Co-authored-by: あく <alleteam@gmail.com>
2022-06-01 21:17:21 +09:00
UberGuidoZ
2c4b2b8775
Fixing typo across many files (#1287)
* Update furi_hal_subghz.c
* Update subghz_scene_read_raw.c
* Update subghz_i.c
* Update came_twee.c
* Update secplus_v2.c
2022-06-01 07:35:31 +09:00
Skorpionm
66dbb68947
SubGhz: support 310 MHz and fix (#1262)
* SubGhz: add frequency support 310 MHz
* SubGhz: deleting a TMP file using the "Erase" button in Read RAW
* SubGhz: fix frequency analyzer scan speed
* SubGhz: fix start duration came_atomo protocol
* SubGhz: refactoring subghz_setting
* SubGhz: refactoring load setting frequency analyzer
* SubGhz: fix load setting,  default frequency
* SubGhz: patch raw temp file remove code to work with string_t
* Storage: parallel safe cli
* SubGhz: new frequency settings loading system
* Assets: recompile to include latest subghz custom frequency control changes

Co-authored-by: あく <alleteam@gmail.com>
2022-06-01 00:50:50 +09:00
Skorpionm
67fbefbe63
SubGhz: Сreating and delivering Security+ 2.0 (#1273)
* SubGhz: Security+ 2.0 "Add manually" option
* SubGhz: fix message error
* Unit_test: add Security+ 2.0 encoder
* Applications: remove obsolete code
* SubGhz: save menu position in "Add Manually" menu

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-05-27 15:19:20 +03:00
Skorpionm
5c45250dd2
SubGhz: Сreating and delivering Security+ 1.0 (#1268)
* SubGhz: fix frequency reset on incomplete exit from the transmission menu
* SubGhz: fix incorrect shutdown of CC1101 if it was not turned on
* SubGhz: consciousness and transmission support Security+ 1.0
* Unit_test: add test encoder Security+ 1/0
* SubGhz: fix start counter Security+ 1.0

Co-authored-by: SG <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-05-27 14:29:52 +03:00
Nikolay Minaylov
79920a3522
[FL-2491] File browser GUI module (#1237)
* File browser module and test app
* nfc: Add support for saved files in subdirectories
* nfc: Use helper function to get shadow path when loading data
* File browser dialog integration pt.1
* File browser dialog integration pt.2
* Gui,Dialogs: drop file select
* Correct use of dynamic string_t(string_ptr)

Co-authored-by: Yukai Li <yukaili.geek@gmail.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-05-27 14:19:21 +03:00
Yukai Li
0d5d4c8688
RFC: NTAG I2C support (#1227)
* nfc: Add NTAG I2C (Plus) 1K/2K read support
* nfc: Add rudimentary NTAG I2C emulation
* nfc: Closer NTAG I2C emulation plus debug logging
* nfc: Fix NTAG I2C sector select emulation
* nfc: Add security for NTAG I2C
* nfc: Send NAK correctly for MFUL reads
* nfc: Better emulate NTAG I2C SECTOR_SELECT behavior
* nfc: Fix non-I2C Ultralight read
  Per datasheet, max sector for SECTOR_SELECT is 0xfe, so 0xff is OK
  as uninit value
* nfc: Only read sig for NTAG if supported
  Attempting to read signature breaks immediate call to sector select on
  NTAG I2C original for some reason, so don't read signature if the
  command is not supported

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2022-05-26 15:55:29 +03:00
Kevin Wallace
4b45746b8e
Fix MiFare DESFire GetKeySettings response parsing (#1267)
Only the bottom nybble of buf[1] is the key ID; the top nybble contains flags.
Notably, the top bit is set for AES mode on EV1+ cards, and ORCA cards in the
Seattle area were just upgraded to include an app that uses AES.

Prior to this, cards with flags set could be read and saved just fine, but
loading them would fail due to missing keys.  After this, tags saved with the
old version will load fine, and when re-saved will have the flags separated
out into a new field.

Co-authored-by: Kevin Wallace <git+flipperzero@kevin.wallace.seattle.wa.us>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-05-24 17:05:46 +03:00
gornekich
d31578508a
[FL-2245] Introduce Mifare Classic Emulation (#1242)
* digital signal: introduce digital signal
* nfca: add nfca signal encoder
* nfc: add mifare classic emulation scene
* nfca: add classic emulation support to lib and hal
* mifare classic: support basic read commands
* nfc: add mifare classic menu scene
* mifare classic: start parsing commands in emulation
* mifare classic: add nested auth
* nfc: fix errors
* mifare classic: add encrypt function
* nfc: fix mifare classic save
* lib hex: add hex uint64_t ASCII parser
* flipper format: add uint64 hex format support
* nfc: add mifare classic key map
* nfc: hide mifare classic keys on emulation
* mifare classic: add NACK responce
* nfc: add partial bytes support in transparent mode
* nfc: mifare classic add shadow file support
* digital signal: move arr buffer from BSS to heap
* mifare classic: process access bits more careful
* nfca: fix memory leack
* nfc: format sources
* mifare classic: cleun up

Co-authored-by: あく <alleteam@gmail.com>
2022-05-24 17:00:15 +03:00
Gary
0b0ca597ea
Rework NFC EMV response parsing. Split TLV and tags per EMV spec. (#1257)
* Rework NFC EMV response parsing.  Split TLV and tags per EMV spec.
* Requested changes:  fb -> first_byte  and missed printf to FURI_LOG_T

Co-authored-by: Gary <gary@x1z.net>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2022-05-23 20:58:13 +03:00
あく
8a81b79e00
Infrared: fix RAW parsing in cli. Remove dead sources. (#1255)
* Infrared: fix RAW parsing in cli. Remove dead sources.
2022-05-21 06:03:09 +10:00
Skorpionm
d38dba4a26
SubGhz: refactoring frequency analyzer and MegaCode display changes (#1221)
* SubGhz: MegaCode display changes
* SubGhz: refactoring frequency analyzer
* SubGhz: use one stage detection in frequency analyzer, tune bw, datarate and etc
* SubGhz: tune analyzer threshold
* SubGhz: raise frequency analyzer threshold and rssi sampling config
* SubGhz: fix frequency analyzer, small step frequency analysis
* SubGhz: subghz_frequency_analyzer_worker
* SubGhz: fix SUBGHZ_FREQUENCY_ANALYZER_THRESHOLD
* SubGhz: debug logging in frequency analyzer, increase MAGN_TARGET to max value
* SubGhz: reduce RSSI delay in frequency scanner
* SubGhz: fix delays, remove trace logging from frequency analyzer
* SubGhz: cleanup variable names and add comments

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-05-18 23:38:06 +03:00
Georgii Surkov
85a129b89f
[FL-2528] Fix iButton crash on successful emulation #1220 2022-05-11 18:47:01 +03:00
Skorpionm
9a11d3996d
SubGhz: fix Princeton false positive on GateTx receive (#1218)
Co-authored-by: あく <alleteam@gmail.com>
2022-05-11 18:09:11 +03:00
Skorpionm
a5bb417fd7
SubGhz: fix holtek protocol (#1217)
* SubGhz: fix holtek protocol
* SubGhz: fix Princeton false positive on GateTx receive

Co-authored-by: あく <alleteam@gmail.com>
2022-05-11 14:19:15 +03:00
hedger
7f8d82bd98
Updated lib/libusb_stm32 to match upstream (#1216)
Co-authored-by: あく <alleteam@gmail.com>
2022-05-11 13:40:08 +03:00
Gary
b4125f1f9c
Fix for issue #1019, HardFault on certain types of credit/bank cards. (#1211)
The country_code does not always have extra pad bytes, so incrementing the index by 2 in emv_decode_read_sfi_record() was too much.

Co-authored-by: Gary <gary@x1z.net>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2022-05-11 13:19:32 +03:00
hedger
597ee5b939
[FL-2527] Updater: Migrating to new manifest path convention (#1213)
* Updater: Migrating to new manifest path convention
* RPC: Added update preparation status to RPC
* RPC: bumped protobuf submodule
* Bumped protobuf_version.h
* FuriCore: add missing include. Lib: make mlib smaller
* Explicitly tell where we have doubles and fix random in animations
* makefile: added -DLFS_NO_DEBUG
* Updater: path len constant dedup
* Updater: checking for hardware version match before parsing manifest
* LD: moved _DRIVER_CONTEXT sections to .bss, where they belong.
* LD: avoiding PROBGITS warning, moved _CONTEXT to data
* Updater: Added version check on update package - refusing to install outdated

Co-authored-by: あく <alleteam@gmail.com>
2022-05-11 12:45:01 +03:00
Skorpionm
dfdc33b076
SubGhz: add protocol Holtek (#1214)
* SubGhz: add protocol Holtek
* SubGhz: add unit_test Holtek
2022-05-10 21:11:16 +03:00
SG
fac4391af7
[FL-2499] Folders rename fix (#1190)
* Toolbox: dir_walk concept (like os.walk)
* Storage CLI: tree command
* Storage: fix folders copying, stage 1
* UnitTest: proper delays in subghz tests
* Toolbox: dir_walk, recursive and filter options
* dir_walk: unit tests
* Merge: Fix unused param
* SubGhz: cleaned up data parsing routine
* SubGhz unit test: cleaned up logs, yield data load
* SubGhz unit test: naming

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-05-10 17:05:36 +03:00
Skorpionm
f04d0eea96
SubGhz: add protocol MegaCode (#1204)
* SubGhz: add protocol MegaCode
* SubGhz: check for guard time injection at the end of buffer
* SubGhz: rollback samples counting in trasmitter
* SubGhz: fix subghz_file_encoder_worker incorrect pulse sequence
* Input: tune debounce interval
* SubGhz: fix spelling in subghz_file_encoder_worker_add_level_duration

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-05-08 20:50:20 +03:00
hedger
37bd0d546a
[FL-2517, FL-2518, FL-2523] Updater UI overhaul (#1196)
* Updater: UI rework initial
* Updater: further updates to UI, added a temporary parrot
* Updater: additional checks on radio stack type before update
* Second iteration of updater UI: additional handling of resource unpacking errors
* updater: removed extra logging, renamed some stages
* Updater: Changed "back" button icon on error screen
* Archive: signed/unsigned fix
* Updater: cancelling update also cancels LFS+resources processing; restored /ext/update/ folder magic to 0
* Updater: root dir fix

Co-authored-by: nminaylov <nm29719@gmail.com>
2022-05-06 19:26:25 +03:00
hedger
4d6b170769
[FL-2520] FW build with -Wextra (#1185)
* Fixing compiler warnings with -Wextra
* More warnings suppression, WIP
* Even more warning fixes
* Added new lines at end of text files.
* Padding fix
* Additional fixes to warnings on different build configurations; added -Wextra to default build pipeline
* Fixes for Secplus v1
* -additional warnings
* +-Wredundant-decls fixes
* FuriHal: print stack overflow task name in console
* FuriHal: add missing include

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-05-06 16:37:10 +03:00
Skorpionm
1ca98170d9
SubGhz: add protocol Security+ 1.0 (#1197)
* SubGhz: add protocol Security+ 1.0
* SubGhz: Fix unit_test

Co-authored-by: あく <alleteam@gmail.com>
2022-05-05 16:42:50 +03:00
Skorpionm
c5c0d2e8bc
SubGhz: Add protocol Security+ 2.0 (#1193)
Co-authored-by: あく <alleteam@gmail.com>
2022-05-05 01:44:15 +03:00
Skorpionm
f4a205142d
SubGhz: bug fixes (#1192)
* Subghz: fix simultaneous detection of Princeton and GateTx
* SubGhz: fix phantom frequencies in the Frequency Analyzer
2022-05-05 01:34:44 +03:00
hedger
7017fa4f9e
[FL-2515] Keep backlight on for updater ops (#1184)
* [FL-2515] Keep backlight on for updater ops
* Notification: Renamed backlight sequences to more obvious names

Co-authored-by: あく <alleteam@gmail.com>
2022-04-29 17:21:12 +03:00
Georgii Surkov
01434265f6
[FL-2399, FL-2261] Tickless sleep shenanigans (#1168)
* Disable USART in sleep
* Restore UART state on suspend/resume
* FuriHal: Enable stop mode and add insomnia to I2C and SPI
* Remove IDLE interrupt
* FuriHal: add FPU isr and disable all FPU interrupt, add core2 stop mode configuration on deep sleep
* FuriHal: tie stop mode debug with debug rtc flag
* FuriHal: adjust flash latency on clock switch, tie mcu debug with RTC debug flag
* FuriHal: move resource init to early stage
* Add EXTI pending check, enable debug traps with compile-time flag
* Wrap sleep debug functions in conditional compilation
* Remove erroneous changed
* Do not use CSS, remove it from everywhere
* Enable/disable USB on VBUS connect (prototype)
* FuriHal: add LPMS and DEEPSLEEP magic, workaround state inconsistency between cores
* FuriHal: honor c1 LMPS
* USB mode switch fix
* Applications: add flags and insomnia bypass system
* Correct spelling
* FuriHal: cleanup insomnia usage, reset sleep flags on wakeup, add shutdown api
* FuriHal: extra check on reinit request
* FuriHal: rename gpio_display_rst pin to gpio_display_rst_n
* FuriHal: add debug HAL
* FuriHal: add some magic to core2 reload procedure, fix issue with crash on ble keyboard exit
* FuriHal: cleanup ble glue, add BLE_GLUE_DEBUG flag
* FuriHal: ble reinit API, move os timer to LPTIM1 for deep sleep capability, shutdown that works
* FuriHal: take insomnia while shutdown
* Remove USB switch on/off on VBUS change
* Better tick skew handling
* Improve tick consistency under load
* Add USB_HP dummy IRQ handler
* Move interrupt check closer to sleep
* Clean up includes
* Re-enable Insomnia globally
* FuriHal: enable CSS
* FuriHal: remove questionable core2 clock shenanigans
* FuriHal: use core1 RCC registers in idle timer config
* FuriHal: return back CSS handlers, add lptim isr dispatching

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: nminaylov <nm29719@gmail.com>
2022-04-29 16:29:51 +03:00
Skorpionm
73477cceed
SubGhz add protocol Firefly (#1183)
* SubGhz: add protocol "Firefly"
* SubGhz: refactoring "Add Manually" scene
* SubGhz: refactoring Firefly protocol

Co-authored-by: あく <alleteam@gmail.com>
2022-04-29 15:17:42 +03:00
gornekich
af5e03ecb7
[FL-2507] Fix NTAG21x emulation fix (#1179)
* mifare ultralight: add support fast read to NTAG21x
* emv: add log traces

Co-authored-by: あく <alleteam@gmail.com>
2022-04-28 19:09:52 +03:00
hedger
fe254d469f
[FL-2510] Fixed BT startup while backing up LFS (#1180)
* Waiting for dummy BT record on LFS ops; cleaner retry for backup file open
* Fixed files not being closed on failed open
2022-04-28 19:05:37 +03:00
SG
c60562a02c
[FL-2502] Properly closing directory on free (#1174)
* Storage: better (at least working) mechanism to distinguish between files and dirs
* Storage API: debug log
* TarArchive: fix stream memleak
* TarArchive: fix another memleak
* Storage: better logs
* Storage: changed the log level to trace

Co-authored-by: あく <alleteam@gmail.com>
2022-04-27 19:16:06 +03:00
hedger
7ce305fca3
[FL-2269] Core2 OTA (#1144)
* C2OTA: wip
* Update Cube to 1.13.3
* Fixed prio
* Functional Core2 updater
* Removed hardware CRC usage; code cleanup & linter fixes
* Moved hardcoded stack params to copro.mk
* Fixing CI bundling of core2 fw
* Removed last traces of hardcoded radio stack
* OB processing draft
* Python scripts cleanup
* Support for comments in ob data
* Sacrificed SD card icon in favor of faster update. Waiting for Storage fix
* Additional handling for OB mismatched values
* Description for new furi_hal apis; spelling fixes
* Rework of OB write, WIP
* Properly restarting OB verification loop
* Split update_task_workers.c
* Checking OBs after enabling post-update mode
* Moved OB verification before flashing
* Removed ob.data for custom stacks
* Fixed progress calculation for OB
* Removed unnecessary OB mask cast

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-04-27 18:53:48 +03:00
Skorpionm
5effa7e7c3
SubGhz: fix Princeton duration (#1159) 2022-04-25 14:53:36 +03:00
Skorpionm
cc99ce1f07
[FL-2496] SubGhz: fix freezing of the interface when the transmission of the RAW signal is forcibly canceled (#1152)
Co-authored-by: あく <alleteam@gmail.com>
2022-04-22 22:05:27 +03:00
gornekich
799eb3f502
Fix Mifare NTAG read #1147
Fix #1145
2022-04-22 15:41:10 +03:00
Skorpionm
f9140ac2cd
SubGhz: fix waiting for UPLOAD to be sent, for RAW file worker (#1146)
* SubGhz: fix waiting for UPLOAD to be sent
* SubGhz: remove debug output

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-04-22 14:33:43 +03:00
Skorpionm
0ff9f43eab
SubGhz: loading/saving files from any folder below the parent (#1142)
Co-authored-by: あく <alleteam@gmail.com>
2022-04-21 19:10:50 +03:00
gornekich
cea118cf2d
[FL-2470, FL-2385, FL-2411] NFC fixes (#1138)
* mifare classic: increase data exchange timeout
* nfc: exit from app if can't parse file
* furi_hal_nfc: allow to switch context during detect

Co-authored-by: あく <alleteam@gmail.com>
2022-04-20 17:08:36 +03:00
Skorpionm
d530d164b9
[FL-2459, FL-2469]SubGhz: displaying a long name in RAW, launching files from subfolders, bugfix (#1125)
* SubGhz: fix the RAW file is not restored when it is launched from under the folder
* SubGhz: fix does not fit long RAW file name
* SubGhz: fix Read not cleared after file rename
* SubGhz: fix restore default frequency and modulation on output
* SubGhz: fix long name output in RAW
2022-04-20 16:51:24 +03:00
hedger
57312961e8
[FL-2481] Renamed assets->resources; enforcing Manifest build if it does not exist (#1135)
* Renamed assets->resources; enforcing Manifest build if it does not exist
* Rebuild resources from CI
* Added Manifest to repo - be sure to rebuild it with `make -C assets` before committing changes!
* Actually added Manifest.
* Keeping Manifest on assets clean
* Spelling fix in Makefile
2022-04-19 22:02:37 +03:00
gornekich
956788c09b
[FL-2369] NFC refactoring (#1095)
* nfc: clean up scenes
* nfc worker: remove field on from worker
* nfc worker: move full data exchange to furi hal
* nfc_device: check UID length
* nfc protocol: introduce mifare common API
* nfc: move common data to furi hal nfc
* nfc: rename emv_decoder -> emv
* nfc: move emv data structure to emv lib
* nfc: remove deactivate after detection
* nfc: rework furi hal nfc detect
* nfc: clean up CLI commands and type
* nfc: remove unused includes and function
* nfc: add TxRxType enum
* nfc: read mifare ultralight refactoring
* nfc: refactore mifare ultralight start
* rfal: fix custom data exchange
* nfc: refactor read bank card
* nfc: refactor read emv application
* nfc: refactor emv test emulation
* nfc: refactor uid emulation
* nfc: add limit to uid emulation logger
* fix source formatting
* furi_hal_nfc: fix data exchange full
* nfc: fix mifare ultralight type load

Co-authored-by: あく <alleteam@gmail.com>
2022-04-19 18:23:58 +03:00
hedger
e8499e4ede
[FL-2477] Updater support for resource bundles (#1131)
* Resource unpacking core
* Added more fields to manifest; updated dist scripts
* Python linter fixes
* Parsing manifest before unpacking
* Updated pipelines for separate resource build
* Removed raw path formatting
* Visual progress for resource extraction
* Renamed update status enum

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-04-19 11:03:28 +03:00
あく
1623134a82
Build system improvements and bug fixes (#1129)
* Assets: recompile
* Makefile: add debug_other to main makefile
* Github: stop compilation if compiled assets not in sync with assets sources
* Assets: recompile
* Makefile: correct debug_other rule. Bt: prevent on system start hook from waiting for bt service
* Power, FuriHal: gauge self check report
* Loader: move on system start hook call to the beginning
2022-04-19 02:09:11 +03:00
Skorpionm
8cc3fd579c
SubGhz: Unit_test and bugfixes (#1104)
* SubGhz: CLI add "subghz decode_raw"
* SubGhz: unit_test
* SubGhz: add Hormann_hsm_raw unit_test
* SubGhz: fix duration raw
* Unit_test: fix total test timer
* SubGHz: fix name display scher_khan
* SubGhz: fix deviation protocol kia
* SubGhz: return max name length to previous value
* FuriHal: correctly handle mute in speaker
* UnitTests: fix grammar in subghz

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-04-14 15:49:29 +03:00
Georgii Surkov
917be9c6d3
[FL-2430] Automatic Desktop Locking (#1101)
* Add Auto Lock Time setting
* Update .gitignore
* Add value_index toolbox module
* Auto locking basic implementation
* Better AutoLock implementation, edge cases and cleanup
* Fix NULL pointer crash
* Turn off backlight shortly in locked mode
* Re-enable auto lock after pin lock
* Correctly handle start when pin locked
* Use timer to hide locked hint
* Use a single state variable instead of multiple bools
* Do not call update callback recursively
* Allow input when the Unlocked hint is shown
* Add a delay to backlight switch off while locking
* Better user input handling
* Switch backlight off after pin timeout
* Correct grammar in notification settings

Co-authored-by: あく <alleteam@gmail.com>
2022-04-14 15:20:41 +03:00
Nikolay Minaylov
779d319069
[FL-2220, FL-2221, FL-1883] RFID and iButton GUI update (#1107)
* RFID and iButton gui update
* Grammar nazi: readed -> read
* Grammar nazi pt.2: writed -> written

Co-authored-by: あく <alleteam@gmail.com>
2022-04-14 15:03:47 +03:00
Nikolay Minaylov
72a6bbb8ad
[FL-2433, FL-2408] Get rid of file_worker in archive and various fixes (#1105)
* Archive: get rid of file_worker and various fixes
* USB init moved to CLI service
2022-04-14 14:28:59 +03:00
hedger
e02040107b
[FL-2263] Flasher service & RAM exec (#1006)
* WIP on stripping fw
* Compact FW build - use RAM_EXEC=1 COMPACT=1 DEBUG=0
* Fixed uninitialized storage struct; small fixes to compact fw
* Flasher srv w/mocked flash ops
* Fixed typos & accomodated FFF changes
* Alternative fw startup branch
* Working load & jmp to RAM fw
* +manifest processing for stage loader; + crc verification for stage payload
* Fixed questionable code & potential leaks
* Lowered screen update rate; added radio stack update stubs; working dfu write
* Console EP with manifest & stage validation
* Added microtar lib; minor ui fixes for updater
* Removed microtar
* Removed mtar #2
* Added a better version of microtar
* TAR archive api; LFS backup & restore core
* Recursive backup/restore
* LFS worker thread
* Added system apps to loader - not visible in UI; full update process with restarts
* Typo fix
* Dropped BL & f6; tooling for updater WIP
* Minor py fixes
* Minor fixes to make it build after merge
* Ported flash workaround from BL + fixed visuals
* Minor cleanup
* Chmod + loader app search fix
* Python linter fix
* Removed usb stuff & float read support for staged loader == -10% of binary size
* Added backup/restore & update pb requests
* Added stub impl to RPC for backup/restore/update commands
* Reworked TAR to use borrowed Storage api; slightly reduced build size by removing `static string`; hidden update-related RPC behind defines
* Moved backup&restore to storage
* Fixed new message types
* Backup/restore/update RPC impl
* Moved furi_hal_crc to LL; minor fixes
* CRC HAL rework to LL
* Purging STM HAL
* Brought back minimal DFU boot mode (no gui); additional crc state checks
* Added splash screen, BROKEN usb function
* Clock init rework WIP
* Stripped graphics from DFU mode
* Temp fix for unused static fun
* WIP update picker - broken!
* Fixed UI
* Bumping version
* Fixed RTC setup
* Backup to update folder instead of ext root
* Removed unused scenes & more usb remnants from staged loader
* CI updates
* Fixed update bundle name
* Temporary restored USB handler
* Attempt to prevent .text corruption
* Comments on how I spent this Saturday
* Added update file icon
* Documentation updates
* Moved common code to lib folder
* Storage: more unit tests
* Storage: blocking dir open, differentiate file and dir when freed.
* Major refactoring; added input processing to updater to allow retrying on failures (not very useful prob). Added API for extraction of thread return value
* Removed re-init check for manifest
* Changed low-level path manipulation to toolbox/path.h; makefile cleanup; tiny fix in lint.py
* Increased update worker stack size
* Text fixes in backup CLI
* Displaying number of update stages to run; removed timeout in handling errors
* Bumping version
* Added thread cleanup for spawner thread
* Updated build targets to exclude firmware bundle from 'ALL'
* Fixed makefile for update_package; skipping VCP init for update mode (ugly)
* Switched github build from ALL to update_package
* Added +x for dist_update.sh
* Cli: add total heap size to "free" command
* Moved (RAM) suffix to build version instead of git commit no.
* DFU comment
* Some fixes suggested by clang-tidy
* Fixed recursive PREFIX macro
* Makefile: gather all new rules in updater namespace. FuriHal: rename bootloader to boot, isr safe delays
* Github: correct build target name in firmware build
* FuriHal: move target switch to boot
* Makefile: fix firmware flash
* Furi, FuriHal: move kernel start to furi, early init
* Drop bootloader related stuff
* Drop cube. Drop bootloader linker script.
* Renamed update_hl, moved constants to #defines
* Moved update-related boot mode to separate bitfield
* Reworked updater cli to single entry point; fixed crash on tar cleanup
* Added Python replacement for dist shell scripts
* Linter fixes for dist.py +x
* Fixes for environment suffix
* Dropped bash scripts
* Added dirty build flag to version structure & interfaces
* Version string escapes
* Fixed flag logic in dist.py; added support for App instances being imported and not terminating the whole program
* Fixed fw address in ReadMe.md
* Rpc: fix crash on double screen start
* Return back original boot behavior and fix jump to system bootloader
* Cleanup code, add error sequence for RTC
* Update firmware readme
* FuriHal: drop boot, restructure RTC registers usage and add header register check
* Furi goes first
* Toolchain: add ccache support
* Renamed update bundle dir

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-04-13 23:50:25 +03:00
Skorpionm
02b9cf90d5
[FL-2431, FL-2419] SubGhz: bugfixes (#1098)
* [FL-2431] SubGhz: fix Restart with an error (HardFault), while maintaining the RAW signal.
* Stream: fix adding maximum string length to arguments
* [FL-2419] SubGhz: fix flipper hang/Fatal Error when running edited Sub-GHz file.
* SubGhz: remove replace strcpy with strncpy, smaller text buffer and canary
* SubGhz: log key loading before load happen, rollback only rx message handling

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-04-07 14:47:47 +03:00
SG
855f2584ab
[FL-2415] Storage: blocking file open (#1078)
* Storage: correct replacement for "/any" path in path holder
* Unit tests: storage, blocking file open test
* File stream: error getter
* Storage: common copy and common remove now executes in external thread
* Filesystems: got rid of unused functions
* Storage: untangle dependencies, ram-frendly filesystem api
* iButton: context assertions
* Storage: pubsub messages
* Storage: wait for the file to close if it was open
* Storage: fix folder copying
* Storage: unit test
* Storage: pubsub documentation
* Fix merge error
* Fix memleak in storage test
* Storage: remove unused define

Co-authored-by: あく <alleteam@gmail.com>
2022-04-01 15:21:31 +03:00
gornekich
0bf2702210
Fix GUI freeze after NFC classic read (#1074)
* nfc worker: add delay for task switching
* device info service: fix rpc version characteristic
* firmware: move FreeRTOSConfig.h to target include
* dev_info service: fix typo
* ble glue: use osThreadFlags instead of osEventFlags
* Infrared: fix issue with timer lockup
* FuriHal: yeld in flash lock routine
* ble: change connection parameters, display actual params
* ble: verify connection parameters
* ble: fix typo

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-03-31 17:57:23 +03:00
Nikolay Minaylov
2f3ea9494e
HAL to LL migration: GPIO, HSEM, AES (#1069)
* gpio, hsem, crypto: switch from HAL to LL/registers
* Moved GPIO initialization to furi_hal
* More HAL removed
* All HAL modules disabled
* HAL is finally removed
* hal_gpio -> furi_hal_gpio, main.h removed
* Bootloader build fix
* RTOS config moved to freertos-glue
* delay -> furi_hal_delay

Co-authored-by: あく <alleteam@gmail.com>
2022-03-30 18:23:40 +03:00
あく
489caa8e77
[FL-2392] FuriHal: refactor interrupts subsystem (#1066)
* FuriHal: refactor interrupts subsystem

* Furi,FuriHal: gather all ISRs under interrupt API, improve crtitical section and cleanup garbage

* FuriHal: mirgate ipcc and hsem to LL

* Format Sources

* FuriHal,BleGlue: move to new critical section

* Format Sources

* FuriHal: correct flash locking

* FuriHal: replace critical section with interrupt disable in OS routine, minor fixex
2022-03-30 03:37:23 +10:00
SG
bdba15b366
[FL-2393][FL-2381] iButton, OneWire: move to plain C (#1068)
* iButton: getting started on the worker concept
* Hal delay: added global instructions_per_us variable
* iButton: one wire slave
* iButton: ibutton key setter
* iButton: one wire host, use ibutton_hal
* iButton\RFID: common pulse decoder concept
* iButton: cyfral decoder
* iButton: worker thread concept
* iButton: metakom decoder
* iButton: write key through worker
* iButton: worker mode holder
* iButton: worker improvements
* iButton: Cyfral encoder
* iButton: Metakom encoder
* lib: pulse protocol helpers
* iButton: Metakom decoder
* iButton: Cyfral decoder
* iButton worker: separate modes
* iButton: libs documentation
* HAL: iButton gpio modes
* iButton worker: rename modes file
* iButton worker, hal: move to LL
* iButton CLI: worker for reading and emulation commands
* iButton HAL: correct init and emulation sequence
* iButton cli: moved to plain C
* iButton: move to worker, small step to plain C
* Libs, one wire: move to plain C
* Libs: added forgotten files to compilation
* iButton writer: get rid of manual disable/enable irq
2022-03-29 16:01:56 +03:00
gornekich
2ba3a9f09a
Fix stream read line (#1054)
* stream: fix stream_read_line return
* nfc: fix keys load

Co-authored-by: あく <alleteam@gmail.com>
2022-03-25 13:43:10 +03:00
Nikolay Minaylov
3615ffecbe
[FL-2374] USB mode lock, USB stack update (#1051)
* Switch to CMSIS semaphores
* USB stack: HID consumer usage table

Co-authored-by: あく <alleteam@gmail.com>
2022-03-24 20:23:40 +03:00
gornekich
eafeefb843
[FL-1396] Mifare Classic read (#1034)
* rfal: add new data exchange function
* core: add FURI_BIT to common defines
* furi_hal_nfc: add data exchange with custom patiry bits
* lib: extend nfc common API
* assets: add mf classic dictionary
* lib: introduce mifare classic library
* nfc: add dictionary reader helper
* nfc worker: add worker events, add mifare classic read
* nfc: rework scenes with worker events
* nfc: add read mifare classic GUI
* nfc device: add mifare classic save
* nfc: add dictionary open fail scene
* nfc: mention resources
* stream: fix stream read line
* subghz: rework file read with fixed stream_read_line
* furi_hal_nfc: decrease communication timeout
* nfc: rework keys load from dictionary with file_stream
* nfc: add read mifare classic suggestion
* nfc: fix mifare classic read view
* nfc: fix index size
* nfc: add switch to no dictionary found scene
* nfc: add mifare classic load
* nfc: improve read mifare classic design
* mifare_classic: add proxmark3 mention
* nfc: format sources
* nfc: fix typos, add documentation
2022-03-24 01:14:34 +03:00
あく
c4a0847c99
FuriHal: replace HAL with LL in RFID Part 1. Drop F6. (#1049)
* FuriHal: new speaker HAL
* FuriHal: drop PWM
* FuriHal: move COMP1 to LL
* FuriHal: move COMP1 to LL backport to F6
* FuriHal: remove missing gpio_rfid_carrier from F6
* FurHal: use LL for system controls in flash HAL
* Drop F6 source tree
* Drop F6 from GitHub workflow
* Tie USE_FULL_ASSERT with APP_UNIT_TESTS
* Speaker: return to old volume calculation
* FreeRTOS: move TCB header to glue

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2022-03-23 20:59:20 +03:00
Kevin Wallace
3857cd7d5f
Nfc: add basic Mifare DESFire support (#1024)
* Fix TextBox word wrap behavior
* Wrap width is 120 pixels, not 140. (140 is larger than the screen!)
* Glyph width already includes spacing; don't add 1 additional px
* When starting a new line, include wrapped glyph width in new line_width.
* Call canvas_set_font before text_box_insert_endline so that glyph
  width is calculated using correct font.
  Previous approach worked somewhat well using default TextBoxFontText but
  this version is more robust, particularly when using TextBoxFontHex.
* Add basic Mifare DESFire reading, file/app browser
* Fix build with APP_ARCHIVE=0
* Add bool type to flipper_format
* Add ability to save and load DESFire card data
* Skip over NfcSceneDeviceInfo when viewing saved DESFire info
* mf_df_clear: don't leak master key settings key versions
* When opening a DESFire card from Archive, retain UID emulation behavior
* rm unnecessary \r\n
* show Popup instead of leaving view in bad state
* Move NfcReaderRequestData out of union
  This makes it safe to emulate DESFire/EMV without clobbering card data.
* Display saved DESFire cards via NfcSceneDeviceInfo
* Display and save file metadata even when contents are missing
  This can happen when a file doesn't allow unauthenticated reads (see the
  call to mf_df_parse_read_data_response in nfc_worker.c).

Co-authored-by: Kevin Wallace <git+flipperzero@kevin.wallace.seattle.wa.us>
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2022-03-23 16:45:37 +03:00
Skorpionm
94ba7d104c
SubGhz: refactoring add descriptions (#1012)
* SubGhz: add descriptions
* SubGhz: fix syntax

Co-authored-by: あく <alleteam@gmail.com>
2022-03-16 16:18:48 +07:00
Skorpionm
3164184bbc
[FL-2230] SubGhz: protocol API refactoring (#969)
* SubGhz: protocols library refactoring
* SubGhz: new architecture and refactoring
* SubGhz: simplify protocol structure, remove unused types
* SubGhz: rename Subghz to SubGhz
* SubGhz: add environment concept

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2022-03-03 12:48:56 +03:00
Albert Kharisov
052237f8c9
[FL-2279] IR doxygen, rename irda -> infrared (#1010)
* IR: Doxygen docs, some rename
* Rename irda -> infrared
* Rollback collateral renames

Co-authored-by: あく <alleteam@gmail.com>
2022-02-25 18:22:58 +03:00
SG
c42cce3c6c
[FL-2312] Flipper format: insert OR update (#1009)
* Flipper format: seek_to_end, key_exist
* Flipper Format: insert_or_update
2022-02-25 16:36:29 +03:00
あく
3c77ae2eb8
Nfc: replace cmsis thread with furi, fix condition race in thread stop routine. (#1003)
* Nfc: replace cmsis thread with furi, fix condition race on thread stop routine.
* Nfc: fix memory leak
* FuriCore, CMSIS: properly handle thread names before scheduler start
2022-02-19 02:38:44 +03:00
Albert Kharisov
ddd909faa0
[FL-2131] IR: continuous signal tx on learn scene (#1002)
Co-authored-by: あく <alleteam@gmail.com>
2022-02-18 23:16:22 +03:00
SG
274c12fc56
[FL-2274] Inventing streams and moving FFF to them (#981)
* Streams: string stream
* String stream: updated insert/delete api
* Streams: generic stream interface and string stream implementation
* Streams: helpers for insert and delete_and_insert
* FFF: now compatible with streams
* MinUnit: introduced tests with arguments
* FFF: stream access violation
* Streams: copy data between streams
* Streams: file stream
* FFF: documentation
* FFStream: documentation
* FFF: alloc as file
* MinUnit: support for nested tests
* Streams: changed delete_and_insert, now it returns success flag. Added ability dump stream inner parameters and data to cout.
* FFF: simplified file open function
* Streams: unit tests
* FFF: tests
* Streams: declare cache_size constant as define, to allow variable modified arrays
* FFF: lib moved to a separate folder
* iButton: new FFF
* RFID: new FFF
* Animations: new FFF
* IR: new FFF
* NFC: new FFF
* Flipper file format: delete lib
* U2F: new FFF
* Subghz: new FFF and streams
* Streams: read line
* Streams: split
* FuriCore: implement memset with extra asserts
* FuriCore: implement extra heap asserts without inventing memset
* Scene manager: protected access to the scene id stack with a size check
* NFC worker: dirty fix for issue where hal_nfc was busy on app start
* Furi: update allocator to erase memory on allocation. Replace furi_alloc with malloc.
* FuriCore: cleanup memmgr code.
* Furi HAL: furi_hal_init is split into critical and non-critical parts. The critical part is currently clock and console.
* Memmgr: added ability to track allocations and deallocations through console.
* FFStream: some speedup
* Streams, FF: minor fixes
* Tests: restore
* File stream: a slightly more thread-safe version of file_stream_delete_and_insert

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-02-18 22:53:46 +03:00
Nikolay Minaylov
242241987e
[FL-2256] USB Service (#998)
* usb service, removed power observer
* fix usb restart after disable
* remove usb service from apps
* Applcations: remove dead extern
* New thread naming scheme for drivers
* New thread symbol naming scheme for drivers

Co-authored-by: あく <alleteam@gmail.com>
2022-02-16 20:52:34 +03:00
Albert Kharisov
b8b42d0bef
[FL-2260] IR CLI commands merge (#996)
Co-authored-by: あく <alleteam@gmail.com>
2022-02-16 14:25:23 +03:00
あく
939998a8c8
Release Candidate 0.48.0 Bug Fixes (#991)
* Power: wait a little bit till message displayed on screen when executing power off. FuriCore: do not use bkpt in release builds(causing HardFault when SPI is active).
* Cleanup BSS section: add more consty consts to be more constish.
* Desktop: properly handle autostarted applications.
2022-02-13 22:24:03 +03:00
あく
df2d1ad13f
[FL-2219, FL-2251] System, FuriCore, FuriHal: various bug fixes and improvements (#986)
* Replace irq shenanigans with critical section
* Power: halt system on power off instead of crash.
* Gui: properly handle input event on NULL current_view
* FuriHal: correct gpio configuration sequence
* FuriHal: cleanup uart initialization. Makefile: allow to disable thread support.
* Loader: improve locking, fix simultaneous app start crash, full command line args support for gui apps, more consistent insomnia
* Loader: correct spelling
* FuriHal: increase gpio configuration readability
* FuriHal: correct gpio configuration error when mode is GpioModeEventRiseFall
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2022-02-10 14:20:50 +03:00
gornekich
6b78a8ccfe
[FL-2244] Companion reboot fix (#988)
* bt: don't open rpc session if it is busy
* bq27220: fix incorrect checksum calculation

Co-authored-by: あく <alleteam@gmail.com>
2022-02-09 15:03:27 +03:00
gornekich
8cfd0eab9e
[FL-2198], [FL-2161] NFC emulation refactoring (#968)
* rfal: add state changed callback
* furi_hal_nfc: add NFC-A emulation API
* nfc: add emulation logger, refactor scenes
* elements: fix text_box element
* gui: fix text box module
* nfc: remove unnecessary buffers
* nfc: introduce emulation callback concept
* nfc: format sources
* bt settings: fix incorrect scene switch
* bt settings: format sources
* Debug: fix x2d import for python 3
* Gui: rename method name widget_clear to widget_reset
* nfc: add nfca emulation handler
* nfc: add global custom events enum
* nfc: UID emulation Data -> Log
* furi_hal_nfc: fix incorrect timings
* u2f, badusb: widget_clear() -> widget_reset()

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-02-02 22:59:28 +03:00
gornekich
838df4c9ea
[FL-2229] New assets paths (#978)
* assets: change resources paths
* apps: rework nfc, irda and subghz with new assets path
* subghz: remove unused paths
* subghz: fix incorrect path
* badusb and u2f fix

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: nminaylov <nm29719@gmail.com>
2022-02-02 18:58:52 +03:00
Nikolay Minaylov
6264ee8c3b
[FL-2212] File validators and archive fixes #972
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-01-29 12:39:10 +03:00
Skorpionm
cb0369a7f3
SubGhz: add protocol Somfy Telis RTS, Somfy Keytis RTS (#964)
* SubGhz: add 433.42 MHz  for Somfy
* SupGhz: add protocol Somfy Telis RTS, Somfy Keytis RTS

Co-authored-by: あく <alleteam@gmail.com>
2022-01-27 15:28:21 +03:00
gornekich
23ff6723cf
[FL-2204] Bluetooth forget devices (#967)
* bt: update connection parameters
* bt: set correct connection latency and timeout
* gui popup: add clean method
* furi_hal_bt: add connection parameters request, clear database
* bt: add forget bonded devices API
* bt_settings: add forget bonded devices GUI
* bt: rework pin code show with view port to hide view
* bt: support conn parameters for different profiles
* furi_hal_bt: sync f6 target
* target f6: fix build
* bt: format sources
* furi_hal_bt: update connection parameters
* bt: update connection params, fix GUI
* FuriHal: fix spelling
* Refactoring: rename _clean to _reset

Co-authored-by: あく <alleteam@gmail.com>
2022-01-21 20:32:03 +03:00
Nikolay Minaylov
d4787e859e
[FL-1506, FL-2197] Power, USB, LED driver improvements (#966)
* Power, USB, LED driver improvements
* u2f hid descriptor fix
* variable_item_list: value alignment fix
* InputTypeRepeat handling in menu/submenu/var_item_list
* lp5562: fix bugs on 400khz i2c
* Scripts: lint in parallel.
* FuriHal: rename some USB structure to match naming convention. Drivers: update magic values in LP5562.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-01-21 19:55:44 +03:00
Skorpionm
d4d87aa6a8
[FL-2045] SubGhz: new protocol (GSN , Beninca/Allmatic, Elmes) and validator (#958)
* SubGhz: add new method of obtaining a manufactory code subghz_protocol_keeloq_common_magic_xor_type1_learning
* TextInput: checking for a lock on a file with the same name
* TextInput:  fix checking for a lock on a file with the same name
* Assets: rename and recompile
* TextInput: added picture and timer to turn off blob
* TextInput: Fix graphics
* TextInput:  fix validator
* Validators: Add validator is file
* TextInput: fix callback validator_is_file_alloc
* SubGhz: add propocol GNS (dimamic), Beninca/Alcatic,  Elmes
* SubGhz: fix function description
* Gui: correct timer routine on deallocation
* Format sources

Co-authored-by: あく <alleteam@gmail.com>
2022-01-21 16:55:09 +03:00
gornekich
32c92a80ea
[FL-2202] Reinit gauge after profile update (#962)
* bq27220: reinit gauge after profile update
* Firmware: update battery capacity to enforce gauge reinit for everyone.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-01-14 21:14:25 +03:00
Albert Kharisov
9ade2349ad
[FL-2188] Fix Desktop crush: stub dolphin stats (#950)
* Fix Desktop crush: stub dolphin stats

Fix Desktop crash on butthurt > 11, so hardcoded animations
are always available. Stub good dolphin stats till
correct deeds management implemented.

* Update ReadMe to match real project structure.

Co-authored-by: あく <alleteam@gmail.com>
2022-01-10 22:46:20 +03:00
Albert Kharisov
990a065bd0
[FL-1929, FL-2164] IR App migrate to FFF (#949)
* IR app move to FFF
* [FL-2164] Hide unimplemented submenus
* Fix brute force fail
* Fix FFF endless reading
* Reformat TV bruteforce lib to FFF
* fixes & cleanup
* Infrared: switch to constexpr.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-01-10 20:13:41 +03:00
あく
389ff92cc1
Naming and coding style convention, new linter tool. (#945)
* Makefile, Scripts: new linter
* About: remove ID from IC
* Firmware: remove double define for DIVC/DIVR
* Scripts: check folder names too. Docker: replace syntax check with make lint.
* Reformat Sources and Migrate to new file naming convention
* Docker: symlink clang-format-12 to clang-format
* Add coding style guide
2022-01-05 19:10:18 +03:00
Albert Kharisov
a39002ce22
[FL-2150] Dolphin animation refactoring (#938)
* Dolphin Animation Refactoring, part 1
* Remove animations from desktop
* Remove excess, first start
* Split animation_manager with callbacks
* allocate view inside animation_view
* Work on ViewComposed
* Draw white rectangles under bubble corners
* Fix bubbles sequence
* RPC: remove obsolete include "status.pb.h"
* Add animations manifest decoding
* Flipper file: add strict mode
* FFF: Animation structures parsing
* Assembling structure of animation
* Lot of view fixes:
  Add multi-line bubbles
  Add support for passive bubbles (frame_order values starts from passive now)
  Add hard-coded delay (active_shift) for active state enabling
  Fix active state handling
  Fix leaks
  Fix parsing uncorrect bubble_animation meta file
  Fix bubble rules of showing
* Animation load/unload & view freeze/unfreeze
* Blocking & system animations, fixes:
  View correct activation
  Refactoring + blocking animation
  Freeze first passive/active frames
  Many insert/eject SD tests fixes
  Add system animations
  Add Loader events app started/finished
  Add system no_sd animation
* Assets: dolphin packer. Scripts: minor refactoring.
* Desktop: update logging tags. Scripts: add metadata to dolphin bundling process, extra sorting for fs traversing. Make: phony assets rules.
* Github: rebuild assets on build
* Docker: add missing dependencies for assets compilation
* Docker: fix run command syntax
* ReadMe: update naming rules with link to source
* Assets: recompile icons
* Loader: add loader event
* Desktop, Gui, Furi Core: const shenanigans macros

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-01-03 00:39:56 +03:00
Albert Kharisov
5b1f50e63a
Much better crash handling. So wow.
* Furi, FuriHal, Desktop: much better crash handling. So wow.
* FuriHal: add missing include in FreeRTOSConfig.h

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-31 20:32:49 +03:00
Anna Prosvetova
46a25c295c
Decouple apps to allow smaller builds. Loader deadlock fix and refactoring. (#929)
* Lib: always include rfal
* Gui: remove screen_stream
* Input: decouple from Cli
* Loader: decouple from Cli
* Desktop: ignore missing favorite app, decouple from Archive
* Make: make Notification a Gui dependency
* Make: embed debugging information into elfs
* Loader: hide Plugins submenu when plugins ga arimasen
* Applications: update on start hook usage
* Loader: fix dead lock on menu rebuild with open rpc, new cli command.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-24 21:47:48 +03:00
Nikolay Minaylov
9e62f08e4d
[FL-1958] U2F prototype (#879)
* U2F implementation prototype
* U2F data encryption and store, user confirmation request
* remove debug prints
* fix notification bug in chrome
* split u2f_alloc into u2f_init and u2f_alloc
* typo fix, furi-hal-trng -> furi-hal-random
* rand/srand redefinition
* SubGhz: a little bit of Dante.
* u2f_data naming fix

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-22 23:04:08 +03:00
Skorpionm
3a86da5526
[FL-2139] SubGhz: refactoring GUI SubGhz (#910)
* SubGhz: refactoring GUI ReadRAW
* SubGhz: replacing memcpy with strcpy
* SubGhz: fix button name "Mode",  fix delete scene, fix show name when loading a key
* SubGhz: refactoring GUI SubGhz
* scene_manager: add exit from last scene API
* subghz: stop scene manager before stopping view dispatcher

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-12-22 16:01:20 +03:00
gornekich
b0f582df99
[FL-1972], [FL-1920] Mifare Ultralight and NTAG separation (#918)
* nfc: rename read mifare ultralight menu
* nfc: separate ntag and mifare ultralight
* nfc: save Mifare Ultralight type
* nfc: add valid ack and nack messages
* nfc: add compatible write command implementation
* nfc: support f6 target
2021-12-21 15:33:17 +03:00
あく
439fb9c18d
[FL-1910, FL-2146] Update to new FreeRTOS, fix CMSIS thread flags collision with stream buffer. New cube. (#917)
* Libs: add FreeRTOS submodule. FuriHal: replace ST provided FreeRTOS with original one. FuriHal: for cmsis os hal and patch it for better compatibility with stream buffer.
* Makefile: fix svd plugin on blackmagic
* Lib: update STM32CubeWB package. Project: update project to match new cube package.
* Lib: properly rebase and upload STM32CubeWB
* BleGlue: switch ack logging level to trace
2021-12-21 15:16:25 +03:00
ghettorce
de006aa06a
NFC: fixes & improvements (#897)
* nfc: (mf_ul) fix overflow while reading
* nfc: (mf_ul) fix FAST_READ command emulation
* nfc: (mf_ul) implement non-strict PWD_AUTH command emulation for NTAG21x
* nfc: (mf_ul) improve emulation stability by removing frequent furi_hal_console_put() calls that cause delays or something
* nfc: (mf_ul) remove calls to blocking functions from emulation worker

Co-authored-by: あく <alleteam@gmail.com>
2021-12-15 21:27:25 +03:00
あく
6579368053
[FL-1818] System setting and debug options. RTC HAL refactoring. (#902)
* FuriHal: RTC API refactoring. System Setting application. FuriCore: adjustable log levels. Minor code cleanup.
* Storage: change logging levels for internal storage.
* FuriCore: fix broken trace logging level
2021-12-15 01:39:59 +03:00
Skorpionm
1232defcf1
[FL-2129] SubGhz: Fix Duty cycle at 433/868 (#892)
* [FL-2129] SubGhz: Fix Duty cycle at 433/868
* SubGhz: fix syntax
* SubGhz: increased silence time in the 868 range
* SubGhz: added build flag LAB_TESTS
* SubGhz: better LAB_TESTS flag handling
* NFC: LAB_TESTS flag handling

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-12-13 15:21:37 +03:00
SG
58ce937321
[FL-1891] Release 0.42 bugfixes (#891)
* Fixed the "ibutton can only emulate after reading" bug
* Fixed previous fix. FIXES FOR THE FIX GOD! BUGS FOR THE BUG THRONE!
* Fixed "Repeat code" position on code input screen
* Changed CAME protocol icon
* Brewfile: add imagemagick missing assets compiler dependency
* Correct fix for "Repeat code" position on code input screen

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-12 14:03:39 +03:00
Skorpionm
f0aed7e583
SubGhz: add GFSK modulation, refactoring subghz_chat (#866)
* SubGhz: add GFSK modulation, refactoring subghz_chat
* SubGhz: off echo subghz_chat
* SubGhz: subghz_chat add sending and receiving formatted text, translation of the chat to events
* SubGhz: add UTF support in subghz_chat_worker_alloc

Co-authored-by: あく <alleteam@gmail.com>
2021-12-08 16:42:01 +03:00
Skorpionm
b912cc7991
SubGhz: sending / receiving messages via subghz (#851)
* SubGhz: add worker subghz_txrx
* SubGhz: added support for transferring Russian characters and support for backspace in CLI subghz_txrx
* SubGhz: refactoring subghz_txrx_worker, added a callback for accepting data in an empty one RX buffer
* SubGhz: fix conflict
* SubGhz: fix syntax errors
* Cli: document string_move usage and its behavior
* FuriHal: update subghz api and documentation. Subghz: move chat to subghz cli subcommand.
* Subghz: update text in chat cli

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-01 18:44:39 +03:00
Nikolay Minaylov
6f56b8d61d
[FL-1703] USB suspend/wakeup fix #849
Co-authored-by: あく <alleteam@gmail.com>
2021-11-30 15:46:18 +03:00
あく
9d27ef8901
[FL-2060] FuriHal: SPI refactoring, flexible bus reconfiguration on fly, same design as i2c. (#853)
* FuriHal: SPI refactoring, flexible bus reconfigration on fly, same desiag as i2c.
* Lib: update CC1101 driver documentation
* FuriHal: update spi symbol names to match naming convention.
2021-11-30 15:09:43 +03:00
あく
cf591ef7eb
[FL-1911] FuriHal: i2c refactoring (#847)
* Project: fix release build, replace asserts with checks.
* FuriHal: i2c refactoring, new bus access model, flexible bus gpio configuration.
* FuriHal: set i2c pins to high on detach.
* FuriHal: more i2c bus events, put bus under reset when not used, move bus enable/disable routine to bus handler.
* FuriHal: fix i2c deadlock in power api, add external i2c handle.
2021-11-28 21:28:19 +03:00
Skorpionm
7c0943e736
SubGhz: fix GUI ReadRAW and add new man (#843)
* Notification: add sequence_single_vibro
* SubGhz: optimizing the performance of the GUI ReadRAW
* SubGhz: full highlighting of the default filename on save
* SubGhz: add man Leopard, Faraon, Reff, ZX-750, Back_SL-B9, fix syntax

Co-authored-by: あく <alleteam@gmail.com>
2021-11-26 17:01:03 +03:00
Nikolay Minaylov
f52e9fc578
[FL-2051] BadUSB: new GUI (#844)
* [FL-2051] BadUsb: new GUI
* add missing assets
* skip empty lines and leading spaces
* SubGhz: add alignment check to keystore mess with iv routine

Co-authored-by: あく <alleteam@gmail.com>
2021-11-26 16:53:51 +03:00
ImprovingRigmarole
6857b98ecd
SubGhz: faster mess_with_iv (#845)
* subghz_keystore_mess_with_iv shortened
- less instructions
- less registers used (no need for r3 anymore)
* subghz_keystore_mess_with_iv shortened (again)
* 7b46c12e408cdc541e9e91c0392365bb4960fabd reduced instructions count from 4+16x8=132 to 3+16x7=115
* here loop is removed and reduces all to only 15 instructions
* branch label is kept to preserve original intent and for historical record
2021-11-26 14:47:17 +03:00
Skorpionm
a13f87fedb
[FL-2047] SubGhz: New GUI ReadRAW view (#832)
* SubGhz: GUI RAW Read view
* SubGhz:  GUI Read RAW refactoring
* SubGhz: fix bug wrong frequency of the allowed transmission
* GUI Read RAW refactoring
* SubGhz: fix set the default frequency
* SubGhz: fix save filename when returning from another menu
* SubGhz: fix Send and Back button behavior

Co-authored-by: あく <alleteam@gmail.com>
2021-11-24 16:59:45 +03:00
Skorpionm
6792e24b6e
SubGhz: Add new man key (#817)
* SubGhz: fix kelog pattern
* SubGhz: add Keloog Secure Learning
* SubGhz: add man NICE_Smilo, NICE_MHOUSE, DEA, Genius, FAAC_RC,XT, Came_Space, DTM

Co-authored-by: あく <alleteam@gmail.com>
2021-11-17 16:52:06 +03:00
あく
22e8da7108
SubGhz: remove debug log (#825) 2021-11-16 21:52:49 +03:00
あく
1571d4ec54
Project: enum cast fix. Makefile: blackmagic rule in global makefile (#819) 2021-11-15 22:55:25 +03:00
あく
2e46ec36a7
Lib: update m-lib to latest release. Update m-lib usage across project. (#818) 2021-11-15 20:09:40 +03:00
Anna Prosvetova
558fa5670b
RPC: Add Virtual Display & Unify log tags (#814)
* RPC: Update protobuf sources
* RPC: Add Virtual Display
* Unify log tags
* RPC: Virtual Display placeholder
* Rpc: clear frame buffer callback before confirm.
* Firmware: full assert for hal, move fatfs initialization to furi hal.
* FuriHal: VCP optimizations, thread safe console. Rpc: adjust buffer sizes.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-11-12 16:04:35 +03:00
Nikolay Minaylov
b564e8eb38
[FL-2010] furi-hal-vcp rework (#812)
* [FL-2010] furi-hal-vcp rework
* Fix connect state change on vcp enable
* New thread naming scheme and stack size adjustment.
* Applications: rename worker threads to match new naming scheme.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-11-11 19:17:50 +03:00
Skorpionm
ac8b1457f2
[FL-1931, FL-2005] SubGhz: migration in flipper file format (#807)
* SubGhz: add save key in flipper file format
* [FL-2005] SubGhz: fix stored signals cannot be deleted
* SubGhz: add load key in flipper file format
* SubGhz: fix syntax
* SubGhz: fix bad file upload
* Storage: add function to get the next free filename
* SubGhz: add save RAW  in flipper file format
* SubGhz: add load RAW in flipper file format
* SubGhz: refactoring protocol
* SubGhz: refactoring scene
* SubGhz: fix SubGhzNotificationState define
* Makefile: proper comapre for FORCE

Co-authored-by: あく <alleteam@gmail.com>
2021-11-11 15:49:19 +03:00
あく
5209701add
[FL-1991] Rewrite flash driver (#813)
* Toolbox: fix null pointer dereference in manchester decoder.
* FuriHal: use MPU to protect from null pointer dereference, replace flash driver with our own implementation.
2021-11-10 12:53:00 +03:00
gornekich
3225f40870
[FL-1952] BLE bonding fix (#805)
* furi-hal-bt: add mutex guarding core2 state
* ble-glue: configure ble keys storage in SRAM2
* bt: add load and save ble keys in internal storage
* bt: improve work furi_hal_bt API
* bt: rework app_entry -> ble_glue
* bt: apply changes for f6 target
* desktop: remove furi check
* ble-glue: comment NVM in SRAM2 configuration
* FuriHal: fix flash controller state corruption, fix incorrect semaphore release, implement C1-C2 flash controller access according to spec. Gui: change logging level.
* Libs: better lfs integration with lfs_config.
* Ble: switch C2 NVM to RAM.
* FuriHalCrypto: ensure that core2 is alive before sending shci commands
* Ble: fix incorrect nvm buffer size

Co-authored-by: あく <alleteam@gmail.com>
2021-11-04 20:26:41 +03:00
SG
7f94ef3179
[FL-1926] Flipper File Format addons (#753)
* Flipper file format: remove C wrapper
* Flipper file format: open append, float, uint32_t as array, delete key, value count
* Flipper file format: fix scratchpad location
* Flipper file format: add EOL on append
* SubGHZ keystore: update encryption type read and write
* Flipper File Format: enhanced version
* Flipper File Format: fix naming
* Flipper File Format: fix "open" subset naming
* Flipper File Format: tests
* Flipper File Format: file helper naming
* SubGHZ keystore: merge with current state of flipper file format
* Flipper File Format:  update make recipe
* Flipper File Format: open new file method
2021-11-04 13:06:13 +03:00
Albert Kharisov
0c1bcf144b
[FL-1994] Add Saved Struct (#804)
Co-authored-by: あく <alleteam@gmail.com>
2021-11-03 20:22:49 +03:00
Skorpionm
6d548637f2
SubGhz: reading keys from encrypted files (#803)
* SubGhz: add file with manufactory codes, and the ability to add your own manufactory codes for KeeLog
* SubGhz: add encrypt RAW data, add decrypt and get RAW data
* SubGhz: add encrypt  magic_xor_atomo
* SubGhz: parsing atomo using file encrypt
* SubGhz: fix calculating the size of the read buffer
* SubGhz: parsing Nice FLOR S using file encrypt
* SubGhz: add file encrypt nice_flor_s_tx, fix name load file
* SubGhz: fix checking read buffer size
* Update subghz_keystore.c
* SubGhz: fix calculating the size of the read buffer

Co-authored-by: あく <alleteam@gmail.com>
2021-11-03 19:41:07 +03:00
Anna Prosvetova
e9e76e144c
RPC: Implement storage_stat_request (#800)
* RPC: Update protobuf sources
* RPC: Implement storage_stat_request
* RPC: Test storage_stat_request
* FuriRecord: fix use after free in destroy method.
* Furi: refactor PubSub and it's usage. Fix allocation in RPC.
* FuriCore: fix memory leak in pubsub
* FuriCore: update unsubscribe method signature in pubsub, make subscription structure lighter.
* FuriCore: remove dead code

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-11-01 23:35:54 +03:00
Albert Kharisov
b397442d89
[FL-1705] Fix IRDA SD eject (#799)
Removing SD card during brut-force causes endless loop.
This is because calling a string_t destructor invalidates
variable, but we did checking string_size() after.

Co-authored-by: あく <alleteam@gmail.com>
2021-11-01 20:17:01 +03:00
あく
22a4bac448
[FL-1934] Core: wipe memory after free. SubGhz: key encryption tool. (#797)
* Core: wipe memory after free. RFID,iButton: fix iterator use after invalidation.

* Debug: support unix wildcards for register matching in svd, update MCU description file and minify it.

* Toolbox: getter for File in FlipperFile.

* Makefile: conditional flashing

* SubGhz: keeloq_mfcodes encryption tool.

* FuriHal: proper IV handling on CBC in crypto. SubGhz: add support for encrypted keeloq keys. Makefile: move formatting to top Makefile.

* SubGhz: rename some function names to match naming scheme.

* SubGhz: encryption tool, fix windows line endings

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-11-01 16:11:25 +03:00
Skorpionm
3f93a0ae46
SubGhz: add potocol Hormann HSM 868Mhz (#795)
* SubGhz: add decoder Normann
* SubGhz: rename normann -> hormann
* SubGhz: add encoder hormann
* SubGhz: delete comment

Co-authored-by: あく <alleteam@gmail.com>
2021-10-28 16:09:59 +03:00
Skorpionm
26c53f3dfd
SubGhz: Refactoring Read RAW (#791)
* SubGhz: rename save_raw -> read_raw
* SubGhz: add manually saving files to read_raw, confirming that saving is unnecessary, refactoring
* Format sources
* SubGhz: fix runglish

Co-authored-by: あく <alleteam@gmail.com>
2021-10-27 20:37:11 +03:00
Skorpionm
9d952ed855
[FL-1913, FL-1963] SubGhz: save raw signal, add came atomo decoder (#783)
* File_Worker: getting the name of a new file with an index
* SubGhz: add decoder RAW protocol
* SubGhz: add view Save RAW
* SubGhz: refactoring subghz custom event
* SubGhz: fix syntax
* SubGhz: fix error build
* SubGhz: test build
* SubGhz: refactoring subghz, add rename, delete, start and emulate RAW signal
* SubGhz: fix triangle glitch in save raw view
* SubGhz: fix receiver config scene
* SubGhz: fix transfer after returning from save scene
* Canvas: add font rotation
* SubGhz: raw protocol encoder
* SubGhz: fix error completion of transfer raw encoder
* SubGhz: increased the speed of reading RAW data from a flash drive, displaying the name of the saved file in the Save RAW scene
* Canvas: fix font rotation
* SubGhz: fix navigation save RAW  scene
* SubGhz: add decode came atomo
* Git: renormalize
* Cleanup sources and enums
* Gui: add font direction to canvas reset, canvas init sequence cleanup.
* SubGhz: reorder menu.
* Gui: correct canvas_set_font_direction signature

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-25 17:37:14 +03:00
gornekich
827d99dde3
[FL-1922] Assets compression (#773)
* lib: add heatshrink compress library
* canvas: new icons format
* scripts: add icons compression to assets generation script
* assets: update assets
* furi-hal: introduce furi-hal-compress
* canvas: rework icon drawing with furi-hal-compress
* lib: rework heatshrink lib for dynamic buffer allocation API
* furi-hal-compress: add encode and decode API
* furi-hal-compress: working decode
* furi-hal-compress: support f6 target
* scripts: format sources
* furi-hal-compress: fix incorrect encoder reset
* furi-hal: add compress initialization to f6 target

Co-authored-by: あく <alleteam@gmail.com>
2021-10-21 17:46:36 +03:00
gornekich
af1fd0c46d
[FL-1920] Fix NTAG emulation (#776)
* mifare ultralight: fix read signature command
* nfc_worker: read signature before pages
2021-10-21 15:46:47 +03:00
あく
2751440193
[FL-1970, FL-1965, FL-1872, FL-1689] Python framework, Scripts and fixes (#779)
* Scripts: add flipper lib, migrate ob to flipper lib, update ob.data
* Makefile: speedup build with phony target for .d files
* FuriHal,U8G2: full MGG display support and ERC contrast tuning.
* Desktop: fix dolphin rename artifact.
* Scripts: port otp.py to flipper scripting lib.
* Scripts: add wipe and core1 flashing to flash.py, remove obsolete shell scripts
* Scripts: replace core1 flashing script with global makefile.
* Scripts: final touches and migration to python. Root Makefile for everything.
2021-10-21 15:24:34 +03:00
あく
4997b56498
DisplayTest: controller fine tuning. Disable u8g2 contrast management. (#772)
* DisplayTest: controller fine tuning. Disable u8g2 contrast management.
* DisplayTest: correct initial configuration values. Targets: cleanup dead code.
* DisplayTest: correct initial value for bias.
2021-10-19 14:42:49 +03:00
あく
bde3a47078
Git: set git attributes to automatically manage line endings. (#771)
* Git: set git attributes to automatically manage line endings.

* Git: cleanup gitignore file
2021-10-18 01:54:19 +03:00
あく
f390060922
[FL-1942] Applications: Display Test. u8g2 usage refactoring. #770 2021-10-17 23:34:36 +03:00
Albert Kharisov
98830a8a41
[FL-1956] Fix long packets bug, fix Manchester overrun (#766)
Also fix RC6 test to detect this manchester bug
2021-10-16 15:00:21 +03:00
あく
2255060d52
[FL-1961] Cli: device_info format versioning. Detach target from firmware name. #765 2021-10-16 14:25:32 +03:00
Albert Kharisov
1db29eaea8
[FL-1946] RPC App launch (#758)
* RPC: Add App start, lock status
 - Add RPC commands Application start, lock status acquiring.
 - Write tests for RPC App system.
 - Replace Unit Tests application with CLI command. This is for CI needs and for tests that run application.
* Fix NDEBUG build
* Update PB submodule
* Fix RPC print (ENABLE DEBUG PRINT!)
* snprintf -> string_t
* Fix Hard Fault (early mutex free)
* printf -> string_t, format, enable tests
* Update submodule: protobuf
* Applications: rollback unit test naming scheme.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-13 18:39:37 +03:00
SG
b85a50f912
[FL-1792] RPC service (#698)
* Lib: added nanopb
* Hal rfid: fixed confused arguments
* Lib: update makefile, include nanopb
* Lib: remove nanopb
* Lib: add nanopb as submodule
* Assets: remove protobuf
* Assets: add protobuf message definitions as submodule
* WIP: [FL-1792] Add Protobuf RPC
* WIP: RPC add ping
* Add Ping
* Fix Ping, Add (WIP) storage
* Update submodule
* ble-glue: add ptotobuf to ble
* WIP: Add storage list test
* revert applications.mk
* Add Storage List command
* ble-glue: fix fast updating rx charachteristic
* ble serial: split long ble packets
* Add Storage Read/Write/Mkdir/Delete
* Disable tests
* Rename Element -> File
* Add md5sum, fix test leak
* Regenerate Protobuf
* Fix review comments
* ble-glue: sync f7 target

Co-authored-by: Albert Kharisov <albert@flipperdevices.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-10-12 14:48:34 +03:00
Skorpionm
841e18dfec
[FL-1940] SubGuz: fix te pricenton protocol #755 2021-10-11 22:48:54 +03:00
Skorpionm
4418e73b26
[FL-1912, FL-1939] Sub-GHz frequency analyzer and add new protocol (#746)
* ToolBox: add manchester-decoder and manchester-encoder
* SubGhz: add new FM config cc1101
* Subghz: add protocol Kia
* SubGhz: fix receiving the last packet Nero Radio
* SubGhz: app protocol CAME Twin (TW2EE/TW4EE)
* SubGhz: add protocol CAME Atomo (AT03EV/ AT04EV)
* F7: sync with F6
* SubGhz: add frequency analyzer
* SubGhz: remove space from file name 
* SubGhz: frequency analyzer add filter and fix view
* [FL-1939] GubGhz: Frequency analyzer redesign
* SubGhz: fix incorrect subghz api call sequence in frequency analyzer worker

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-10 17:35:10 +03:00
SG
c8b36dd406
[FL-1791] Flipper file format (#740)
* Lib: new flipper file format library
* Lib: flipper file format cpp wrapper
* Storage: simple function for remove file and check error
* iButton app: remove file worker, use new flipper file format instead
* Dialogs: storage error message
* Storage: simple function for mkdir and check error
* iButton app: error messages
* Libs: update makefile
* RFID app: remove file worker, use new flipper file format instead
* Flipper File: library documentation

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-06 12:40:28 +03:00
Nikolay Minaylov
e0c1928fde
[FL-1857] New USB stack (#735)
* libusb_stm32 USB stack test
* USB: Add dual CDC mode
* USB HID demo, added libusb_stm32 as submodule
* Target F6/F7: remomve unused ll_usb

Co-authored-by: n.minaylov <n.minaylov@flipperdevices.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-06 12:24:09 +03:00
gornekich
42e553bad5
[FL-1723, FL-1662, FL-1870] NFC bug fixes (#745)
* nfc: fix notifications in read EMV sequence
* nfc: set focus on previously saved card
* nfc: add incorrect file format message
* mifare ultralight: increase size of max dump
* elements: draw multiline text only until it fits screen
* nfc: support variable PAN number length
* nfc: change AID display
* nfc: change worker custom event to prevent scene reenter
* nfc: double check for PAN tag
* nfc: fix edit card name appearance
* Nfc: read EMV card without name if PDOL is present.
* Desktop: increase unlock key press interval, switch to OS ticks instead of HAL.
* Desktop: remove debug logging

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-05 08:14:19 +03:00
あく
832fb1b795
[FL-1228] FuriHal: add charge suppress API. (#743)
* FuriHal: add charge suppress API.

* FuriHal: add guards to insomnia and charge suppress routines.

* FuriHal: proper API for scheduler in power.

* FuriHal: move charging control from critical section, fix deadlock.

* Gui: use FreeRTOS native timers controls for IconAnimation, fix crash on animation start stop
2021-10-04 10:01:41 +03:00
gornekich
638f276308
[FL-1884] GPIO application (#732)
* gpio: rename gpio application
* bq25896: add reading OTG config
* furi-hal-power: add is_otg_enabled API
* gpio: introduce new GPIO app, add OTG enable / disable
* variable-item-list: add enter callback
* gpio: add output test view and scene
* gpio app: fix GpioItemTester -> GpioItemTest

Co-authored-by: あく <alleteam@gmail.com>
2021-09-30 23:03:28 +03:00
gornekich
2eafae6b90
[FL-1498] Keyboard save focus (#730)
* text_input: set focus on Save button if text is set
* text_input: add clear API, format documentation
* all: rework text input clean with new API
2021-09-29 17:08:24 +03:00
gornekich
61c8f3325a
[FL-1217] Menu refactoring (#726)
* menu: remove dead code
* loader: change views from modules instead of menu service
* dolphin: start main menu with loader API
* applications: don't start menu service
* loader: add debug tools menu
* gui modules: introduce menu model
* loader: remove calls to menu service API
* gui modules: implement menu module
* loader: add menu view
* gui menu: add animation
* applications: remove menu service
* gui modules: rename icon_menu -> menu
* loader: clean up code
* menu module: add documentation, format code
* menu: remove unused parameter
* desktop: use loader to launch primary menu
* Applications: cleaner makefile app declaration. Loader: application autostart
* Gui: cleanup menu and submenu API.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-09-28 16:10:13 +03:00
Skorpionm
a8981d317a
[FL-1815, FL-1851, FL-1856] SubGhz: preparation for certification, add deleting stored signals and rename file in SubGHz app (#714)
* [FL-1811] FuriHal: move core2 startup to hal init stage, prevent working with flash controller till core2 startup finish. #704
* SubGhz: fix GO0 low on last hop transmission,  decreased DutyCycle in tests
* SubGhz: test_static fix max 5 sec in transmission mode, DutyCycle <23%
* [FL-1815] SubGhz: prohibiting transmission if it is not within the permitted range for the given region
* SubGhz: fix F7 furi-hal-subghz
* SubGhz: fix logic working tests
* SubGhz: fix princeton encoder for test
* SubGhz: add log princeton encoder
* [FL-1856] Subghz: fix output a double error if the file cannot be opened
* [FL-1851] SubGhz: add deleting Stored Signals in SubGHz App
* SubGhz: add rename file SubGhz app
* SubGhz: update stats message in princeton
* SubGhz: correct spelling
* SubGhz: fix FM config,  add hardware signal processing less than 16 μs,  add added filter for processing short signals
* SubGhz: add Scher-Khan MAGICAR Dinamic protocol
* SubGhz: sync fury targets

Co-authored-by: あく <alleteam@gmail.com>
2021-09-28 03:05:40 +03:00
SG
1448b9cf66
[FL-1819][FL-1848] About: hw, fw, boot version screens. Misc corrections of the About screens. (#719)
* About: hw, fw, boot version screens
* About: fix comment
* FuriHal: proper ARR in OS tick timer
* GpioTester: all pins on/off option
* Irda: fix release build
* Format sources

Co-authored-by: あく <alleteam@gmail.com>
2021-09-24 14:56:27 +03:00
gornekich
0e1922db4d
BT: stop advertising in bt test cli commands (#712)
* bt: stop advertising in bt test cli commands
* furi-hal-bt: add switch context in furi_hal_bt_lock_flash
* Lib: update STM32CubeWB to latest version. Scripts: update supported copro binaries version
* Scripts: proper version extraction from Cube manifest
* bt: add debug application and comment it
* bt: fix stop advertising command
* bt: debug on f7 target
* furi-hal-console: add console tx + new line
* bt: fix debug trace function

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-09-21 12:48:08 +03:00
tonyfreeman
69f54973cc
Nfc: fix incorrect type castings. Global: fix printf usage, types casting, overall cleanup. Drivers: incorrect array index in cc1101 driver. (#713)
* fix 'function cannot return qualified void/bool type'
* Fix variable 'consumed' is used uninitialized
* Fix format string is not a string literal (potentially insecure)
* Fix conflicting types for 'menu_item_get_type'
* Fix implicit conversion from enumeration type 'NfcDeviceType' to different enumeration type 'rfalNfcDevType'
* Fix hal_gpio_init incorrect arguments order
* Fix nfc->dev.dev_name condition will always evaluate to 'true'
* Fix explicitly assigning value of variable to itself
* Fix furi_hal_bt_wait_startup counter overflow
* Fix implicit conversion from 'StorageStatus' to 'SDError'
* Remove #include <sys/param.h>
* Add FIXME
* Fix syntax
* Fixup for 'furi_hal_bt_wait_startup counter overflow'
* nfc: fix different nfc device types
* Drivers: fix incorrect offset in cc1101_read_fifo
* Remove obsolete comment

Co-authored-by: Tony Freeman <tonyfreeman@users.noreply.github.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-09-21 12:34:16 +03:00
あく
322bdf049d
[FL-1826] Crypto: correct key provisioning procedure. (#709)
* Crypto: correct key provisioning procedure.
* Format Sources
* Cli: target for bootloder in device_info
2021-09-17 12:21:08 +03:00
Albert Kharisov
4f233ff0a3
[FL-1800] IRDA: enc/decoder refactoring, Add NEC42 (#705)
* WIP: IRDA: multilen protocol refactoring, NEC42
* IRDA: Refactoring encoder/decoder

Co-authored-by: あく <alleteam@gmail.com>
2021-09-15 20:22:58 +03:00
Skorpionm
8fd411097e
[FL-1758, FL-1790] SubGhz refactoring part 2, fix generation of a new GateTX serial (#696)
* WidGet: fix name  Multiline String Element
* SubGhz: rename  SubGhzProtocol to SubGhzParser and bring it up
* SubGhz: a new way to navigate in receiver views
* SubGhz: fix syntax
* WedGet: add forwarding input type to wedget button callback, fix using a callback in an application
* SubGhz: add assertions and status checks
* SubGhz: fix syntax
* [FL-1790] SubGhz: fix GateTX
* SubGhz:  add 434.42 MHz frequency support
* SubGhz: rename type protocol, add decoder stage names
* SubGhz: fix navigation through received signals when changing scenes
* SubGhz: fix 2-fsk config

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-09-15 18:24:19 +03:00
あく
66f9d946ae
[FL-1490] FuriHal: crypto api. Crypto cli tool. (#702)
* FuriHal: crypto layer
* Furi: add crash routine.
* FuriHal: crypto api. Crypto: cli command to manipulate secure enclave and encrypt/decrypt plain text.
* DeviceInfo: secure enclave verification.
* Rename original to enclave_valid
* Update expected enclave signature to match production keys
* F7: remove unused files
2021-09-15 12:59:49 +03:00
Skorpionm
f385340b2e
[FL-1758] SubGhz refactoring part 1 (#689)
* SubGhz: refactoring
* WeGet: Add support for outputting formatted lines, events center button pressed, center button released
* Variable Item: slightly changed the display of data on the screen
* SubGhz: add show errors, add show preset, refactoring
* SubGhz: refactoring transmitter
* SubGhz: removed unused modules
* SubGhz: Add FuriHalSubGhzPresetOok270Async setting menu
* SubGhz: fix annotation
* SubGhz: add support Nero Radio

Co-authored-by: あく <alleteam@gmail.com>
2021-09-10 03:29:57 +03:00
Albert Kharisov
fbccb9fbaf
[FL-1684] IRDA Add SIRC protocol (#693)
* IRDA HAL: Fill buffer refactoring
* IRDA: Add SIRC protocol
* IRDA: correct adr/cmd bit length
* Disable Unit tests

Co-authored-by: あく <alleteam@gmail.com>
2021-09-10 00:37:32 +03:00
Skorpionm
e17336498d
[FL-1756, FL-1769, FL-1776, FL-1759] Gui: input events complementary V3, refactoring. SubGhz: read/emulate fixes. Cleanup. (#684)
* Gui: move rotation logic to ViewPort, replace delayed View switch in ViewDispatcher with event filtering and redirection to previous view.
* SubGhz: add function description
* Gui, Input: add event id to input events.
* SubGhz: fix "crashing on ?"
* SubGhz: add icon scanning
* SubGhz: updated interface read scene,  updated interface config scene
* Assets: update subghz assets
* SubGhz:  replaced the picture in the read scene, changed the paths to additional files
* SubGhz: fix deadlock in timer callback
* SubGhz: fix icon read scene
* SubGhz: fix icon read scene
* SubGhz: fix duble text transmitter scene
* SubGhz: correct spelling. Gui: bigger queue for ViewDispatcher.
* SubGhz: fix creation and transmission of dynamic code without the presence of a manufactory key
* SubGhz: fix keelog, setting a name in the absence of a manufactory key
* SubGhz: fix load bad keelog key
* Format sources
* Furi: remove garbage from core. GpioTester: fix memory leak and cleanup
* Accessor: remove obsolete notification code
* MusicPlayer: remove input event injection
* Input: rename id to sequence

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-09-02 00:05:00 +03:00
Skorpionm
663dbbfe9f
SubGhz: frequency hopping mode (#671)
* SubGhz: fix assert on worker double stop.
* SubGhz: add hopping mode (315.00, 433.92, 868.00)
* SubGhz: add support for new alarms on the keelog protocol
* SubGhz: update te in princeton protocol
* SubGhz: move static to tests, rename sniffer to hopper/auto, remove delay from timer thread, optimize locking strategy.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-08-29 16:05:15 +03:00
Skorpionm
0a8a944e10
Skorp subghz signal archive (#667)
* SubGhz: Add millis() furi, add subghz history struct
* SubGhz: Fix subghz history
* Gubghz: Fix code repeat  history, add clean history
* SubGhz: reading and adding keys to history
* Gui: Renaming Sub 1-Ghz -> SubGhz
* Archive: Renaming Sub 1-Ghz -> SubGhz
* SubGhz:  Add menu history, modified button for sending a signal, changed output of data about accepted protocol
* Archive: Fix name subghz
* SubGhz: Menu navigation
* Assets: Add assets/SubGHz/icon.png
* Assets: add new icons for subghz
* SubGhz: Fix name Add manually scene
* SubGhz: Fix load icon Read scene. rename encoder struct,  rename protocol function load from file, add load raw data protocol, add info pleasant signals all protocol
* SubGhz: fix memory leak
* SubGhz: change of receiving frequency for read scene
* SubGhz: Add save/load frequency and preset, add automatic configuration of transmit/receive to the desired frequency and modulation, add button "save" config scene
* SubGhz: Fix frequency and preset, fix frequency add manualli scene, fix re-executing the parser
* Furi-hal-subghz: add 2-FSK config, fix ook config 650KHz BW Tx filter
* Fix formatting and release build
* SubGhz: Delete read scene
* SubGhz: Fix frequency add manualli scene,  refactoring code
* SubGhz: 2 profiles for OOK, fix broken build.
* SubGhz: Add passing static codes from read scene, add notification read scene, refactoring code
* SubGhz: fix assert on worker double stop.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-08-28 16:51:48 +03:00
Albert Kharisov
c3a1836fcd
[FL-1746] Fix IRDA freeze (#673)
Reading large RAW signal causes freeze

Co-authored-by: あく <alleteam@gmail.com>
2021-08-28 14:58:01 +03:00
Albert Kharisov
e6d5f4038b
[FL-1696, FL-1685] IRDA: Add RC5, decoder refactoring (#663)
* [FL-1696] IRDA: Split decoders and protocols
* IRDA: Restruct directories.
* IRDA: fix long timings
* [FL-1685] IRDA: Add RC5

Co-authored-by: あく <alleteam@gmail.com>
2021-08-20 23:51:15 +03:00
gornekich
ecff31d228
[FL-1643] NFC emv assets (#661)
* assets: add EMV AID table for NFC app
* file-worker: add searching for value by the key
* nfc: add emv parser helpers
* assets: add country and currency codes
* nfc: add country and currency code parsing
* emv_decoder: add country and currency code support
* nfc: add AID. currency and country display
* nfc: rework bank_card view
* nfc: add currency and country save
* assets: change emv chip asset
* nfc: change asset in bank card
* gui: add frame element to widget
* nfc: add bank card frame, add documentation
* rfal: fix long APDU command emulation
* nfc: fix typos
* Scripts ReadMe: assets delivery command

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-08-20 22:56:43 +03:00
Albert Kharisov
5f6aff2255
[FL-1472, FL-1596, FL-1673] IRDA: stability improvements (#655)
- Restrict with 31 bytes length for remote and signal name
- Don't stuck for 0 PWM cycle timings
- Support timings > 65535 PWM cycles
- Fix remote file open error
- Add IRDA TX debug redirect
- Add remote parse error print, improve parsing, support tabs
- Fix stucks with uncorrect RAW signal values, long strings in remote file, etc
- Fix HAL signals capturing (save previous read value)
- Fix leak in case of failed parsing
2021-08-19 03:18:42 +03:00
SG
9d38f28de7
[FL-1682] Faster file receiving function. Storage management scripts. (#647)
* Storage-cli: the file write function is splitted into a function for working with text and function for raw data
* Storage-cli: read_chunks, renamed write_raw to write_chunk
* Storage-cli: fix typo
* SD Hal: fixed wrong read/write block address
* HAL-console: printf
* Storage benchmark: more popular sizes
* Toolbox: md5
* Storage-cli: better read_chunks function, md5 hash function
* Notification: fixed incorrect error message when loading settings
* Storage-cli: stat command
* Storage-cli: stat, "/" is also storage
* Scripts: add storage managment script
* Scripts, storage lib: send command with known response syntax instead of SOH
* Scripts: python3 from env
* Storage-cli: fixed mess with error texts
* Storage-cli: write, show welcome message only if we didn't have any errors
* Storage: poorly fixed folders copying
* Storage: close an old file if an error occurred while opening a new file
* Storage-cli: fixed storage info spacing
* Scripts: use positional arguments in storage.
* Scripts: explicit string encoding and decoding, documentation in comments.

Co-authored-by: あく <alleteam@gmail.com>
2021-08-19 01:06:18 +03:00
あく
f02cec45a0
[FL-1473, FL-1651] Update STM32CubeWB to latest version. Radio firmware bundle. (#642)
* FuriHal: update STM32CubeWB to latest version.
* Makefile: debug other script
* FuriHal: correctly handle 0 size transfers in VCP
* Dolphin: cleanup and minor timer tuning.
* FuriHal: update FreeRTOS config with bigger timer command queue.
* FuriHal: delayed irq enabling, fixes missing ticks.
* FuriHal: use SFSA to determine free space for internal FS, update linker script to use as much space as theoretically possible.
* Scripts: update core2 flashing scripts and OB data.
* Github: bundle resources, core2 firmware and supplementary data.
* GitHub: versioning for supplemental artifacts
2021-08-17 12:41:08 +03:00
gornekich
c122317468
[FL-1526] Mifare Ultralight emulation (#645)
* rfal: add discovery parameter for passing listen activation
* nfc: add discovery parameter to furi_hal_nfc_listen
* mifare_ul: add emulation parsing commands
* nfc: add mifare ul emulation
* nfc: switch to mifare ultralight emulation form menu
* furi-hal-nfc: add first frame reception in emulation mode
* nfc: change argument check
* nfc: rework nfc worker and mifare ul lib
* mifare_ul: add write and cnt increment commands
* nfc: add card modification check
* mifare_ul: add data changed flag
* nfc: add shodow files
* nfc: add restore original file

Co-authored-by: あく <alleteam@gmail.com>
2021-08-17 00:45:04 +03:00
Skorpionm
a024e470b7
SubGhz: read and save static remotes. Create new static and dynamic remotes. (#646)
* SubGhz: the functions of saving loading KeeLog have been modified, saving KeeLog is prohibited
* SubGhz: Fix displaying Nice FlorS in the Raed scene
* SubGhz: Fix displaying Faac SLH in the Raed scene
* SubGhz: Fix displaying iDo in the Raed scene
* SubGhz: Fix displaying Star Line in the Raed scene
* SubGhz: Fix displaying Nice Flo in the Raed scene, added save and load functions. (testing needed, no remote control)
* SubGhz: subghz_beginadded common encoder upload signal
* SubGhz: add Came encoder
* SubGhz: modified pricenton encoder, fix view transmitter hide the "Send" button if there is no encoder
* SubGhz: add nice flo encoder, need testing no remote control
* SubGhz: add gate_tx encoder
* SubGhz: add nero_sketch encoder
* SubGhz: add keelog encoder
* SubGhz: add long upload upload while the button is pressed while releasing the transfer is over, with a check for sticking (maximum 200 upload repetitions)
* SubGhz: fix max upload
* SubGhz: Fix structure subghz add encoder
* SubGhz: add generating and sending a dynamic keelog key, refactoring the code
* SubGhz: add notifications
* SubGhz: add creating a new remote control (Pricenton, Nice Flo 12bit, Nice Flo 24bit, CAME 12bit, CAME 24bit, Gate TX, DoorHan)
* SubGhz: Fix load file, fix scene start
* Subghz: Fix show key
* SubGhz: Fix subghz_cli
* SubGhz: Fix furi-hal-subghz
* Format sources
* SubGhz: standard notification scheme, fix broken assert in DMA.
* SubGhz: move level alignment logic to furi-hal-subghz, fix spelling, cleanup.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-08-16 22:56:23 +03:00
gornekich
eb49c29fa3
rfal platform: remove spi device check (#643) 2021-08-13 16:12:10 +03:00
Skorpionm
1cfa857f98
[FL-1610] SubGhz: scene based application, PT save and replay (#630)
* SubGhz: scene based application
* SubGhz: encoder/decoder separation, DMA streaming, update app and cli.
* SubGhz: 2 stage async tx complete, minor cleanup
* SubGhz: 2 stage async tx complete, FIX state pin end transmit
* SubGhz: Pricenton, receive TE signal
* SubGhz: Pricenton, add save data, add load data
* SubGhz: Add Read scene, Fix pricenton save, load funtion
* SubGhz: Add Read, Receiver, SaveName scene
* SubGhz: Read and Save (pricenton)
* SubGhz: add Load scence
* SubGhz: Fix select file scene, add load scene, add transmitter view, add send tx pricenton
* SubGhz: Fix pricenton encoder, fix transmitter send
* SubGhz: modified Pricenton Encoder (added guard time at the beginning), modified CC1101 config, code refactoring
* SubGhz: Fix pricenton encoder defalut TE
* Archive: Fix path and name SubGhz
* Archive: Fix name app SubGhz
* GubGhz: Came: add Save, Load key
* GubGhz: GateTX: add Save, Load key
* GubGhz: NeroSketch: add Save, Load key
* Github: better linters triggers
* SubGhz: adding fast loading keys Archive -> Run in app
* GubGhz: KeeLog: add Save, Load key, key generation from the serial number of the meter and the button
* SubGhz: format sources and fix compilation
* FuriHal: add subghz configuration description for AGC section
* SubGhz: save only protocols that can be saved. Cleanup.
* Github: lint on pull requests

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-08-12 17:42:56 +03:00
あく
37d7870e52
[FL-1666] Bootloader: info screen when we going to DFU. FuriHal: port SPI to LL. Cleanup. (#634)
* FuriHal: port spi to ll. Bootloader: add spi and display.
* Makefile: rollback disabled freertos introspection
* FuriHal: spi lock asserts. F6: minor cleanup port sdcard shenanigans to furi_hal_gpio.
* SdCard: port missing bits to furi-hal-gpio
* FuriHal: fix broken RX in SPI, update SPI API usage. RFAL: more asserts in SPI platform code.
* GUI: clear canvas on start. FuriHal: no pullup on radio spi bus.
* FuriHal: use check instead of assert in spi lock routines
* FuriHal: remove timeouts
* SdHal: add guard time to SDCARD CS PIN control.
* FuriHal: proper name for SPI device reconfigure routine. SdHal: one more enterprise delay and better documentation.
* Bootloader: update DFU text and add image.
* FuriHal: drop unused ST HAL modules.
* SdHal: fixed swapped hal_gpio_init_ex arguments
* SpiHal: fixed swapped hal_gpio_init_ex arguments
* IrdaHal: use hal_gpio_init instead of hal_gpio_init_ex
* RfidHal: fixed swapped hal_gpio_init_ex arguments

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-08-12 11:48:05 +03:00
Albert Kharisov
5ed9bdbc37
[FL-1652, FL-1554] IRDA: Continuous transmitting (#636)
* [FL-1652] IRDA: Continuous transmitting
* continuous encoding and sending signals by pressing button on menu
* fast buttons scrolling in remote menu
* bruteforce: stop reading file if progress == 100%
* IRDA: .hpp -> .h
* [FL-1554] IRDA: xTaskNotify -> osEventsFlagSet
* IRDA: some stability fixes
* Irda: minor cleanup, api-hal to furi-hal rename.

Co-authored-by: あく <alleteam@gmail.com>
2021-08-11 20:51:06 +03:00
あく
0a97d6913c
Rename api-hal to furi-hal (#629) 2021-08-08 21:03:25 +03:00
Albert Kharisov
ba399abb5d
IRDA: Use DMA for async TX (#608) 2021-08-06 00:11:35 +03:00
gornekich
5741ed2bd5
[FL-1595] Add EMV tags (#625)
* nfc: add expiration date tag to emv parser
* nfc: add expiration date save and display
* nfc: add long apdu test command
2021-08-04 21:58:11 +03:00
gornekich
841804026e
[FL-1619] NFC long APDU emulation (#623)
* nfc: add apdu sequence exchange debug scene
* api-hal-gpio: fix GPIO initialization
* nfc: pull down nfc chip IRQ pin

Co-authored-by: あく <alleteam@gmail.com>
2021-08-03 20:24:20 +03:00
gornekich
35c441f031
nfc rfal: increase modulation depth in rfal config (#617) 2021-08-02 12:38:37 +03:00
あく
1c58de24f5
Nfc: switch to HAL ticks. ApiHal: small cleanup and refactoring. (#609) 2021-07-28 11:45:42 +03:00
gornekich
ebd158a823
[FL-1542], [FL-1603] Generate random name (#602)
* Lib: add random name library
* Text_input: add default text clearing
* All: rework all applications with new text_input API
* Nfc: fix removing dev file on save_name scene enter
* Lib: move all free radicals to toolbox and update API usage.

Co-authored-by: あく <alleteam@gmail.com>
2021-07-25 14:34:54 +03:00
SG
ad421a81bc
[FL-1191][FL-1524] Filesystem rework (#568)
* FS-Api: removed datetime manipulation functions and most of the file flags
* Filesystem: common proxy api
* Filesystem: renamed to Storage. Work has begun on a glue layer. Added functions for reentrance.
* Storage: sd mount and sd file open
* Storage: sd file close
* Storage: temporary test app
* Storage: free filedata on close
* Storage: sd file read and write
* Storage: added internal storage (LittleFS)
* Storage: renamed internal commands
* Storage: seek, tell, truncate, size, sync, eof
* Storage: error descriptions
* Storage: directory management api (open, close, read, rewind)
* Storage: common management api (stat, fs_stat, remove, rename, mkdir)
* Dolphin app and Notifications app now use raw storage.
* Storage: storage statuses renamed. Implemented sd card icon.
* Storage: added raw sd-card api.
* Storage settings: work started
* Assets: use new icons approach
* Storage settings: working storage settings
* Storage: completely redesigned api, no longer sticking out FS_Api
* Storage: more simplified api, getting error_id from file is hidden from user, pointer to api is hidden inside file
* Storage: cli info and format commands
* Storage-cli: file list
* Storage: a simpler and more reliable api
* FatFS: slightly lighter and faster config. Also disabled reentrancy and file locking functions. They moved to a storage service.
* Storage-cli: accommodate to the new cli api.
* Storage: filesystem api is separated into internal and common api.
* Cli: added the ability to print the list of free heap blocks
* Storage: uses a list instead of an array to store the StorageFile. Rewrote api calls to use semaphores instead of thread flags.
* Storage settings: added the ability to benchmark the SD card.
* Gui module file select: uses new storage api
* Apps: removed deprecated sd_card_test application
* Args lib: support for enquoted arguments
* Dialogs: a new gui app for simple non-asynchronous apps
* Dialogs: view holder for easy single view work
* File worker: use new storage api
* IButton and lfrrfid apps: save keys to any storage
* Apps: fix ibutton and lfrfid stack, remove sd_card_test.
* SD filesystem: app removed
* File worker: fixed api pointer type
* Subghz: loading assets using the new storage api
* NFC: use the new storage api
* Dialogs: the better api for the message element
* Archive: use new storage api
* Irda: changed assest path, changed app path
* FileWorker: removed unused file_buf_cnt
* Storage: copying and renaming files now works between storages
* Storage cli: read, copy, remove, rename commands
* Archive: removed commented code
* Storage cli: write command
* Applications: add SRV_STORAGE and SRV_DIALOGS
* Internal-storage: removed
* Storage: improved api
* Storage app: changed api pointer from StorageApp to Storage
* Storage: better file_id handling
* Storage: more consistent errors
* Loader: support for NULL icons
* Storage: do nothing with the lfs file or directory if it is not open
* Storage: fix typo
* Storage: minor float usage cleanup, rename some symbols.
* Storage: compact doxygen comments.

Co-authored-by: あく <alleteam@gmail.com>
2021-07-23 15:20:19 +03:00
gornekich
49af516ec7
[FL-1547], [FL-1500] NFC app v1 (#593)
* nfc: remove mifare read debug view and scene
* nfc: change mifare ultralight data structure
* mifare_ultralight: add more commands
* nfc: add emulate mifare ul scene
* nfc: rework data structures, remove debug scenes and views
* nfc: add read emv scenes
* nfc: mifare emulation wip
* nfc cli: increase detecting time
* nfc: save nfc files with new format
* nfc: store Mifare Ultralight
* nfc: start loading mifare ultralight
* nfc: add delete scenes
* nfc: add edit UID and name
* nfc: finish parsing uid and mifare ul data
* nfc: delete success fix
* gui_widget: introduce GuiWidget
* gui_widget: add string element
* gui_widget: add button element
* gui_widget: move free elements into gui_widget
* nfc: rework info scene with GuiWidget
* nfc: rework device info scene
* nfc: rework delete scene gui
* nfc: add compatible script support
* nfc: rework emv reading scenes
* nfc: rework bank card save
* nfc: add bank card custom view
* gui_widget: add icon element
* nfc: add icon to bank card
* nfc: start worker after switching view

Co-authored-by: あく <alleteam@gmail.com>
2021-07-22 09:05:07 +03:00
Albert Kharisov
769ab2aef2
[FL-1489] IRDA: move to FileWorker (#594)
* [FL-1489] IRDA: move to FileWorker, fixes

* Use FileWorker
* Use file_select to select remotes
* Fix some crashes
* Add RAW parsing restrictions
* Remove excess scene (LearnDoneAfter)
* Move all file system logic to standalone object
2021-07-22 03:07:00 +03:00
あく
421a0f6b97
[FL-1546, FL-1534, FL-1550] Drop F5, Certification preparation, Global application start lock (#585)
* Firmware: drop F5 target
* Rename app-loader to loader
* Update code owners file
* Loader: global application start lock API, minor refactoring
* Archive: update loader usage
* Cli: Command flags, global application start lock
* Apps: update cli API usage
* Bootloader: minor refactoring
* Firmware: minor build refactoring
* SubGhz: GUI packet test
* SubGhz: drop packet transmission and unused presets
* Github: drop F5 from build
* Archive: favorites
* Archive: a little bit more of Favorites
2021-07-18 21:09:00 +03:00
Albert Kharisov
13c5a8cb20
[FL-1505] Add RAW format (#576)
* Add RAW format
* F5 stubs for build to pass
* Fix saving decoded signal error
* Irda: set ISR before starting timer, remove explicit NVIC configuration

Co-authored-by: あく <alleteam@gmail.com>
2021-07-16 19:43:54 +03:00
Skorpionm
a2dfa33a9f
SubGhz: update capture configuration (#583)
* SubGhz: CC1101 setting, Rx Filter BW 270kHz, Tx Power 10dBm, AGC modification
* SubGhz: fix merge artifacts, add missing keystore.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-07-16 18:51:47 +03:00
Skorpionm
1a039a86f8
Skorp sub ghz add protocol (#581)
* SubGhz: Add Star Line protocol
* Rollback ReadMe changes
* SubGhz: add shared keystore for keeloq derived protocols.
* SubGhz: add missing key load routine

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-07-16 18:37:48 +03:00
あく
851a44dc59
[FL-1528] SubGhz: dma send (#579)
* Gui: input injection in screen stream
* Cli: expose ASCII table in public header
* SubGhz: dma output draft
* SubGhz: output initialization cleanup
* SubGhz: update dma send routine, add subghz_tx cli command.
* SubGhz: proper register address for DMA
* SubGhz: proper, fully working dma+tim2 configuration
* SubGhz: transmit PT with cli.
* Drivers: fix invalid size in CC1101 PA_TABLE loading routine.
* Interrupts: configurable DMA isrs.
* F5: backport fixes.
* SubGhz: free buffer after use
* SubGhz: use sleep instead of reset at the end
* SubGhz: async tx repeat with circular DMA
* SubGhz: disable dma channel on complete, adjust PT send timings
* SubGhz: backport function singature change to F5
* SubGhz: add tx debug gpio
2021-07-15 16:54:11 +03:00
Skorpionm
5df346aebe
Skorp sub ghz add protocol (#578)
* SubGhz: add HCS101 protocol
* SubGhz: add GateTx protocol
* GubGHz: keeLog, key re-acceptance check, do not decrypt repeated messages
* SubGhz: add iDo 117/111 protocol
* SubGhz: add Faac SLH protocol
* SubGhz: fix KeeLog, serial number on display
* SubGhz: fix Faac SLH, serial number on display. Refactoring code parser
* SubGhz: add Nero Sketch protocol
* SubGhz: fix showing serial key, Gate Tx protocol

Co-authored-by: あく <alleteam@gmail.com>
2021-07-13 14:47:27 +03:00
gornekich
3571b58d0a
[FL-1448], [FL-1529] Introducing Scene Manager, NFC App refactoring and bug fixes (#575)
* gui: refactore ViewNavigator -> SceneManager
* view_dispatcher: remove scene controller, add custom and navigation cb
* scene_manager: rework scene controller, move AppScene from lib
* nfc: rework nfc scenes with new scene controller API
* view_dispatcher: crash on free if not all views were freed
* nfc: introduce scene declaration
* scene_manager: allocate and configure application scenes
* nfc: rework nfc with new Scene Manager API
* scene_manager: remove dublicated scene handlers allocation
* nfc: rework nfc app with new scene manager API
* view_dispatcher: add tick event
* scene_manager: add tick event type and handler
* nfc: rework notifications with tick event
* scene_manager: remove scene id from scene structure
* scene_manager: rename array -> stack, add documentation
* api-hal-nfc: remove listen activation processing
* nfc_scene_start: shorter submenu call
* nfc: fix nfc file name
* nfc: fix Retry in mifare ul success read
* nfc_cli: fix read timeout in nfc_detect CLI command

Co-authored-by: あく <alleteam@gmail.com>
2021-07-12 21:56:14 +03:00
gornekich
20fe544b4f
[FL-1501] NFC: read Mifare Ultralight (#571)
* nfc: add scripts menu scene
* canvas: add glyph width api
* app_scene: add state to Scene template
* gui: introduce TextBox view
* nfc: add mifare ultralight read scenes
* nfc: add mifare ultralight menu scene
* nfc: fix scene functions declaration
* Gui: use size_t for sizes.

Co-authored-by: あく <alleteam@gmail.com>
2021-07-08 23:41:34 +03:00
Albert Kharisov
9f6e14d005
[FL-1398] IRDA: Implement timings encoder, add RC-6 (#570)
* Add RC-6 protocol
* Implement timings Encoder
* Remove Unit-tests from build
2021-07-08 21:20:13 +03:00
Skorpionm
4ce41a3e6f
Skorp subghz capture refactoring (#569)
* SubGhz: changing the operation of the capture timer, and the logic of the work of parsers
* Add toolbox lib. Move levels to toolbox. Subghz switch to levels.
* Subghz: update worker signatures
* SubGhz: pluggable level duration implementations.
* SubGhz : test drawing pictures in Gui
* SubGhz: Added a callback with the parser structure as argument
* SubGhz: copy protocol data to model
* SubGhz: refactoing code
* SubGhz: cleanup and format sources
* SubGhz: remove comments

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-07-07 22:49:45 +03:00
あく
a7283280ef
GUI: Icons and IconsAnimation refactoring. Switch assets to new Icon Api (#566)
* GUI: Icons and IconsAnimation refactoring. Switch assets to new Icon API.
* Gui: icon and animation draw now do not accept null pointer
* Format Sources
* Fix no debug build
* Furi: stricter checks in memmgr
2021-07-07 11:57:49 +03:00
Skorpionm
88be176fcf
SubGhz: Nice FlooR S improvements, cli stack overflow fix, code documentation, new key data formatting (#559) 2021-07-02 16:25:49 +03:00
Albert Kharisov
df9a6673da
[FL-1513] Fix IRDA crash (#557) 2021-07-02 15:46:13 +03:00
gornekich
a0e1e42f2d
[FL-1479] New NFC app (#544)
* view: add custom event callback
* nfc: rework nfc worker
* gui: introduce view navigator
* nfc_scences: introduce nfc scenes
* nfc: add start scene
* lib: add C application scene template
* nfc: move nfc views to separate directory
* view_dispatcher: add support for view_navigator
* nfc views: rework nfc views
* nfc scenes: add nfc application scenes
* nfc: rework nfc main thread
* view_dispatcher: add separate event for search back scene
* nfc: set worker result address at worker start
* nfc: update read nfc scenes
* view_navigator: rework with M-LIB container
* view_dispatcher: check that all views were freed
* nfc: add debug menu with all functions
* nfc read scene: add notification on success
* api-hal-nfc: add API for UID emulation
* nfc: add nfc emulation UID scene
* assets: add NFC assets
* nfc: update read and emulate scenes UI
* nfc: fix memory leak
* rfal: set custom analog configuration
2021-06-30 20:43:29 +03:00
SG
7a13391b2b
[FL-1371] New LF-RFID app. Second encounter. (#547)
* File worker: file operations helper.
* Notification app: removed yield
* File worker: write operations, calls to system file widgets
* App ibutton: use file worker
* Lfrfid: generic key loading, add path helper and hex conversion to lib
* FileWorker: plain C verison
* FileWorker: add to lib.mk
* FileWorker: add to C sources, instead of CPP
* Lfrfid: save scene
* App lfrfid: add key scene, saved key menu
* App lfrfid: saved key info scene
* App lfrfid: delete key scene
2021-06-30 15:02:46 +03:00
あく
e8211226f3
[FL-1496] SubGhz: Library, Cli, Application (#543)
* ApiHal: set frequency and path in one go. Drivers: proper frequency registers calculation for CC1101. Update subghz cli to match new api.
* SubGhz: preparation for parsers porting, tim2 sharing
* ApiHal: add interrupts API, move all TIM2 related things there.
* SubGhz: refactor protocol lib and add keeloq.
* SubGhz: proper init_set for keeloq manafacture key
* SubGhz: port more protocols to lib
* SubGhz: load keeloq manufacture keys from sd card (if any).
* SubGhz: format output from protocols.
* SubGhz: use default frequency in subghz_rx cli command.
* SubGhz: keeloq key types
* Fix compillation error when internal storage disabled
* SubGhz: minor cleanup
* SubGhz: properly handle timeout and reset signal in subghz_rx
* SubGhz: Worker, Capture View. Furi: emulate thread join.
* SubGhz: free strings on keeloq key load end
* SubGhz: update protocols reporting API, app refactoring and capture view, update API HAL usage.
* SubGhz: update dump formatting
* ApiHal: backport subghz preset to F5
* ApiHal: backport subghz frequency range to F5
2021-06-30 00:19:20 +03:00
SG
dce3665f63
File worker helper. Slightly optimized iButton app code size. (#545)
* File worker: file operations helper
* Notification app: removed yield
* File worker: write operations, calls to system file widgets
* App ibutton: use file worker
* App ibutton: small save fix, forgotten byte
2021-06-29 16:08:45 +03:00
SG
22e1ecb642
New LF-RFID app (#534)
* Hal lfrfid: add read timer pulse and period config fns
* New debug application for lfrfid subsystem
* New lfrfid: app, fix naming
* App lfrfid: assets
* Container view module
* App ibutton: remove unused header
* App lfrfid scenes
* App notification, add yield to blocking operations, add speaker volume control
* App lfrfid: reading key scene
* Assets: placeholder icon
* App lfrfid: reworked container view module
* App lfrfid: new scenes
* App lfrfid: write scene
* App lfrfid: write hid
* App lfrfid: emulate scene
* App lfrfid: save name scene
* App lfrfid: add missing file
2021-06-28 17:42:30 +03:00
Albert Kharisov
c583cce5bd
[FL-1401] Add Universal TV remote (#539)
* Remove excess headers
* Add ButtonPanel
* Add Popup
* Move FileReader to standalone object
* Universal remote (part 1)
* Universal remote (part 2)
* Global rename tranciever/file_parser
* Compile assets
* syntax fix
* English: rename tranceiver to transceiver.

Co-authored-by: あく <alleteam@gmail.com>
2021-06-25 16:52:27 +03:00
あく
4cf000f270
[FL-1465] Archive application bug fixes. Gui: update TextInput API. (#530)
* Update MLib to latest master.
* Archive: update string_t usage, add unsafe usage TODO, change model type to blocking and fix invalid usage.
* Gui: update text_input API and it's usage.
* fix blocking model issues
* fix  unsafe string_t usage

Co-authored-by: Igor Baranov <bedtimeposts@gmail.com>
Co-authored-by: its your bedtime <23366927+itsyourbedtime@users.noreply.github.com>
2021-06-24 00:46:52 +03:00
its your bedtime
6ec9c6cc49
[FL-1404] iButton long names fix (#528)
* ibutton: long names partial fix\
* ibutton: limit max filename length to 22 chars
* elwrapping long names to a new line
* Proper m-string size usage

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-06-22 12:56:57 +03:00
gornekich
a0fdc559c9
[FL-662] Read Mifare Ultralight (#518)
* nfc: add read mifare ultralight to menu
* emv_decoder: add pragma once
* nfc: add mifare ultralight reader
* nfc: add mifare ultralight read draw
* nfc: add mifare ultralight type checker
* nfc: rework menu callback
* mifare ultralight: change type names

Co-authored-by: あく <alleteam@gmail.com>
2021-06-15 17:54:09 +03:00
SG
0b14db4fb3
C++ apps: templated scene controller (#517)
* C++ apps: templated scene controller
* templated app: fix type names
* templated app: text store component
* Applications: add "Templated Scene" application
* templated app: refractoring
* Gui module byte input: fix docs
* templated app: new byte input scene
* templated app: dialog ex view module
* templated app: popup view module
* templated app: dialog-ex view module, fix docs
* templated app: text input view module
* Gui module text input: fix docs
* Furi: duplicated include
* templated app: record holder (controller) class
* templated app: view modules can now be accessed via cast
* templated app: remove unused includes
* templated app: fix return code
2021-06-15 14:01:56 +03:00
SG
4ad5245969
[FL-1063} LF-RFID Cli (#515)
* App lfrfid: update emulator to process external data.
* App lfrfid: cleanup emulator
* App lfrfid: cli interface
* Lib: arguments parser lib

Co-authored-by: あく <alleteam@gmail.com>
2021-06-10 14:53:59 +03:00
Albert Kharisov
6c74ea65c2
[FL-1369, FL-1397, FL-1420] IRDA + SDcard (#513)
* Add saving to SD-Card (not ready yet)
* Add saving to SD-card (done)
* Select previous menu item
* Fix central button
* Fix current_button
* Refactoring
* Add notifications
* [FL-1417] Add IRDA CLI
  CLI commands:
  1) ir_rx
  Receives all IR-trafic, decodes and prints result to stdout
  2) ir_tx <protocol> <address> <command>
  Transmits IR-signal. Address and command are hex-formatted
* Fix BUG with random memory corruption at random time in random place in random universe in random unknown space and time forever amen
* Fix submenu set_selected_item
* Bring protocol order back
* Add TODO sdcard check
2021-06-09 16:04:49 +03:00
gornekich
498ffe8d2c
Subghz packet test (#512)
* subghz: add cli support for packet tx rx

* api-hal-subghz: add comments

* subghz_cli: fix typo

Co-authored-by: あく <alleteam@gmail.com>
2021-06-08 12:51:16 +03:00
Albert Kharisov
31c31db479
[FL-1250, FL-1252, FL-1323, FL-1324] New IRDA Application (part 1) (#497)
* Add new IrdaApp (half ready), add ButtonMenu

* Fix NEC's extension

* clang-format

* Fix leak

* Add submenu optional header

* IRDA: add Edit button

* clang-format

* IrdaApp: Fix scene flow

* Add IRDA NEC extended protocol

* IRDA: Add address/command length

Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-06-02 18:16:05 +03:00
SG
7e6a97c3a3
[FL-1307] iButton key files: ASCII encoding and .ibtn extension (#493)
* GUI module submenu: fix documentation
* GUI module submenu: add submenu_set_selected_item fn
* App iButton: use submenu_set_selected_item to store and set selected item in submenu
* App iButton: swap write and emulate in "saved key menu" scene
* App iButton: file select can now switch to the previous selected file
* App iButton: swap write and emulate indexes in "saved key menu" scene
* Gui module file_select: work with separate extension
* iButton app: separate file managment, file error handling
* SD card api: custom error message
* iButton app: better file error handling

Co-authored-by: あく <alleteam@gmail.com>
2021-05-26 19:50:16 +03:00
gornekich
e620b310b7
[FL-1039] Emv emulation (#491)
* nfc: add emulate emv to submenu
* api-hal-nfc: add emv emulation
2021-05-26 02:54:44 +03:00
SG
fc5c48edef
[FL-1300] iButton app: save selected menu item and selected file position. (#489)
* GUI module submenu: fix documentation
* GUI module submenu: add submenu_set_selected_item fn
* App iButton: use submenu_set_selected_item to store and set selected item in submenu
* App iButton: swap write and emulate in "saved key menu" scene
* App iButton: file select can now switch to the previous selected file
* App iButton: swap write and emulate indexes in "saved key menu" scene

Co-authored-by: あく <alleteam@gmail.com>
2021-05-25 14:04:22 +03:00
SG
2daf65b62b
[FL-1237] Notifications app (#476)
* Notification app: init
* Notification app: separate message sequences
* Notification app: rename notifications to notification
* Notification app: rework api
* Notification app: new sequences for charger
* Power app: add state for better led handling
* Power app: NotificationSequence type, notification led process
* Blink app: use notifications
* Notification app: sound and vibro notifications
* Notification app: note messages
* Notification app: more messages
* Notification app: update note message generator
* Blink app: fix state counter
* Notification app: fix delay event
* App sd-filesystem: notifications
* App notifications: headers c++ compatibility
* App notifications: Cmaj success chord sequence
* App iButton: use notifications
* App notification: display backlight notifications
* App notification: add "display on" message to success and error sequences
* App accessor: use notifications
* App ibutton: guard onewire key read
* Lib-RFAL: remove api_hal_light usage
* App notification: add blocking mode, rework display api
* Cli led command: use internal notification instead of direc access to leds.
* App unit test: use notifications
* App lfrfid: use notifications
* Apps: close notification record
* App subghz: rough use of notifications
* App notificaton: ignore reset flag
* App strobe: removed
* Lib irda decoder: fix nec decoding
* App irda: fix assert, use notifications
* Apps: use notifications
* Fix IRDA tests
* Cli: better var naming
* App notification: readable sources

Co-authored-by: Albert Kharisov <albert@flipperdevices.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-05-24 16:44:14 +03:00
its your bedtime
c97d766e5b
[FL-1181] Archive app (#458)
* fix stack size, file listing works
* fix scrollbar, update docs
* cut long filenames
* Dolphin: overhaul unlocking logic, unlocked message added
* furi - added common_defines.h, minor macro cleanup; fix scrollbar type conversion
* remove door opening animation
* adaptive long file name shortening, item icons, invert selection
* archive: browser tab, file types (beta);  scenes: fix sleep emote
* dont trim unknown extensions
* fix string_size usage
* array container for file list, fixes
* better path handling
* archive: renaming, adding to favorites worksl scrollbar fix: limit min bar height to 1px to prevent disappearance on large lists

Co-authored-by: あく <alleteam@gmail.com>
2021-05-18 21:54:56 +03:00
gornekich
725981f431
[FL-663] Read EMV cards (#460)
* nfc: add emv decoder
* api-hal-nfc: add data exchange api
* nfc_worker: add read emv routine
* nfc: add emv reader view
* nfc: add support for Mastercard reading
* api-hal-nfc: fix incorrect merge changes
* nfc_worker: set to zero emv app object on each cycle
* api-hal-nfc: add api for f6 target
* nfc: move emv_decoder to lib folder

Co-authored-by: あく <alleteam@gmail.com>
2021-05-18 21:12:01 +03:00
gornekich
df4a170213
[FL-1268] Gauge re-calibration (#471)
* bq27220: add new battery profile parameters
* bq27220: add gauging configuration
* power: change poweroff condition depending on remain capacity
* api-hal-power: update api for f6 target
2021-05-18 17:59:16 +03:00
Albert Kharisov
3114a2d4b8
[FL-1156, FL-1249] Add IRDA encoder/decoder library (#451)
* Add cscope db generation
* Add api-hal-irda, TIM2: HAL->LL
* Add libirda: pwm decoding
* Universal state machine
* Add irda decoder library
* Move IRDA capture to standalone tool
* Add encoder/decoder samsung32, NEC, fix bugs
* Port current App to new Irda lib
* Fix clang format for test data
* Port IRDA api-hal to f6

Co-authored-by: あく <alleteam@gmail.com>
2021-05-18 13:51:00 +03:00
あく
aa24484b99
[FL-977] Internal Storage (#455)
* Add littlefs submodule
* Furi: add mutex in logging, fix issues with corrupted printf
* ApiHal: disable debug traces in ble glue
* App-loader: more logs
* Passport: fix invalid DolphinState usage
* ApiHal, linker script: flash API is now aware of free space, complete abstraction layer for storage
* Internal Storage: littlefs based storage services with key value API. Migrate dolphin state to new storage API.
2021-05-11 11:29:44 +03:00
あく
a975fb6dc5
[FL-1146] GD0 self-test 2021-05-08 22:24:05 +03:00
gornekich
fb73d3bd52
[FL-1214] NFC application (#448)
* platform: include only used api-hal files
* api-hal-nfc: introduce nfc hal
* nfc_worker: rework nfc worker
* nfc: move nfc from services to applications, add startup hook
* api-hal-nfc: init nfc worker in api_hal_detect
* nfc: rework nfc application
* nfc: fix app exit
* api-hal-nfc: init nfc worker only once
2021-05-06 22:51:20 +03:00