Commit Graph

875 Commits

Author SHA1 Message Date
Willy-JL
16859a41b9 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-09-06 02:00:42 +02:00
RebornedBrain
49e1ae6e87 [FL-3895] Broken file interaction fixes (#3852)
* Show error screen if corrupted filed has been loaded
* Added rpc error codes and error processing to NFC
* Made iButton scene on_enter handler clear to prevent showing scene before file is loaded
* Added rpc error codes and error processing to iButton
* Made lfRfid scene on_enter handler clear to prevent showing scene before file is loaded
* Added rpc error codes and error processing to lfRfid
* Made SubGHz scene on_enter handler clear to prevent showing scene before file is loaded. Also moved file_name_tmp formatting logic to a separate function
* Now function returns loading status and starts rx only if load succeeded
* Added show error logic on tx_button start
* Introduced rpc error codes for infrared
* Adjusted rpc scene logic to show scene only when
loading is fine
* Added new  list of rpc errors which are common within several applications
* Removed same enums from apps
* Same rpc error in different apps replaced with common value from rpc error code list
* SubGHz error codes now start from RpcAppSystemErrorCodesReserved value
* Infrared error codes now start from RpcAppSystemErrorCodesReserved value
* Removed unused enum
* Now all rpc error codes are more generalized and can be used among all apps without any specific enums
* Removed specific error codes, now rpc error codes are used instead
* RPC: no plurals in enums

Co-authored-by: あく <alleteam@gmail.com>
2024-09-05 20:54:49 +01:00
Willy-JL
f65d4bb233 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-09-05 19:17:18 +02:00
porta
c9791a280a [FL-3884] Proper integer parsing (#3839)
* feat: strint_to_uint32 and tests
* fix: permit explicit bases and prefixes
* feat: strint_to_{int32,uint16,int16}
* feat: strint_to_u?int64
* refactor: replace strtol, strtoul, sscanf with strint_to_*
* fix: api symbols
* docs: document parameter `end` of strint_to_uint_32
* style: apply changes requested by hedger
* refactor: fix pvs-studio diagnostic
* style: apply changes requested by CookiePLMonster
* fix: unused var
* fix: pointer type
* refactor: convert atoi to strint_to_*
* fix: strint_to_uint8 doesn't actually exist ._ .
* fix: memory leak
* style: address review comments
* Toolbox: couple small comments in the code and doxygen comment update. SubGhz, Loader: fix strint usage.
* Loader: fix incorrect cast

Co-authored-by: あく <alleteam@gmail.com>
2024-09-05 18:02:42 +01:00
Willy-JL
0900ac3520 Merge remote-tracking branch 'ul/dev' into mntm-dev --nobuild 2024-09-04 22:39:32 +02:00
MX
ed4c5eb7bf saflok parser improvements [ci skip]
by @zinongli & @xtruan & @zacharyweiss & @evilmog & @Arkwin
2024-09-04 04:35:02 +03:00
MX
b7bc060ad5 Merge remote-tracking branch 'OFW/astra/3766-unlock-crash-fix' into dev 2024-09-04 04:28:51 +03:00
Kara Zajac
67ffec5cc6 NFC: Saflok parser Date Rollover (#201)
* Date Rollover

Update the saflok parser to properly handle date rollovers.

* Format

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-09-03 02:29:07 +02:00
Zinong Li
a807a9e81d NFC: Saflok Parser (#196)
* ready for PR

* improve weekday restriction rendering

* fix weekday index bug

* format

* memcpy optimization

* format

* Update changelog

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-08-30 00:12:14 +02:00
Astra
0e71813749 Fix crash on Ultralight unlock 2024-08-26 20:46:49 +09:00
Willy-JL
c6a3e684b6 Fix MFC dict timestamp 2024-08-24 02:56:50 +02:00
Willy-JL
8f7562718c Cleanup and update MFC dict
+5 from RRG proxmark3 repo
+2 from Mifare Classic Tool repo
+26 from Stepzor11 repo
-2000 of abandoned unverified pm3 bmp_sorted and icbmp_sorted
2024-08-23 00:44:43 +02:00
Willy-JL
5f98c5d986 Merge remote-tracking branch 'ofw/dev' into yeet-lfs 2024-08-13 02:27:09 +02:00
Willy-JL
98e2a221d5 Format images 2024-08-12 18:34:41 +02:00
MX
821f5bab18 Merge remote-tracking branch 'OFW/dev' into dev 2024-08-10 14:47:38 +03:00
MX
bf6c6c231f [FL-3841] FuriEventLoop Pt.2 (#3703)
* Abstract primitive type from main logic in FuriEventLoop
* Remove message_queue_i.h
* Add stream buffer support for event loop
* Add semaphore support for event loop
* Add temporary unit test workaround
* Make the linter happy
* Add mutex support for event loop
* Implement event subscription and unsubscription while the event loop is running
* Implement edge events
* Fix leftover logical errors
* Add event loop timer example application
* Implement flag-based edge trigger and one-shot mode
* Add event loop mutex example application
* Only notify the event loop if stream buffer is at or above its trigger level
* Reformat comments
* Add event loop stream buffer example application
* Add event loop multiple elements example application
* Improve event loop flag names
* Remove redundant signal handler as it is already handled by the event loop
* Refactor Power service, improve ViewHolder
* Use ViewHolder instead of ViewDispatcher in About app
* Enable ViewDispatcher queue on construction, deprecate view_dispatcher_enable_queue()
* Remove all invocations of view_dispatcher_enable_queue()
* Remove app-scened-template
* Remove missing library from target.json
* Port Accessor app to ViewHolder
* Make the linter happy
* Add example_view_holder application, update ViewHolder docs
* Add example_view_dispatcher application, update ViewDispatcher docs
* Replace FuriSemaphore with FuriApiLock, remove workaround delay
* Fix logical error
* Fix another logical error
* Use the sources directive to speed up compilation
* Use constant define macro
* Improve FuriEventLoop documentation
* Improve FuriEventLoop documentation once more
* Bump API Version
* Gui: remove redundant checks from ViewDispatcher
* Gui: remove dead ifs from ViewDispatcher

Co-authored-by: Silent <CookiePLMonster@users.noreply.github.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-08-10 14:32:27 +03:00
MX
28272f7a7a Storage: remove LFS (#3577)
* Storage: drop internal storage

* Storage: rollback some unnecessary changes

* Storage: rollback some unnecessary changes part 2

* Storage: cleanup various defines and int handling. Ble: allow short connection interval if internal flash is not used.

* Storage: do not return storage if it is not ready

* Save PIN code to RTC, update settings

* Simplify the code, clean up includes

* Rearrange some code

* apps: storage_move_to_sd: conditionally enable with --extra-define=STORAGE_INT_ON_LFS

* Load Desktop settings automatically

* Redirect /any to /ext

* Abolish storage_move_to_sd app

* Remove as many mentions of ANY_PATH as possible

* Fix desktop settings wrongly not loading

* Improve desktop settings handling and strings

* Load BLE settings and keys automatically

* Improve BLE configuration procedure

* Do not load bluetooth keys twice if they were already loaded

* Load dolphin state automatically

* Fix merge artifact

* Load notification settings automatically

* Update desktop settings strings

* Load expansion settings automatically

* Do not use thread signals to reload desktop settings

* Load region data automatically, separate to its own hook

* Improve ble behaviour with no keys

* Fix Dolphin state not resetting correctly

* Add a status check

* Make Desktop save its own settings

* Check result when taking and releasing mutex

* Improve default thread signal handling in FuriEventLoop

* Make bt service in charge of saving settings, add settings api

* Fix a deadlock due to timer thread not receiving time

* Lock core2 when reinitialising bt

* Update clang-format

* Revert "Update clang-format"

This reverts commit d61295ac063c6ec879375ceeab54d6ff2c90a9a1.

* Format sources with clang-format

* Revert old stack size for desktop settings

* Allocate big struct dynamically

* Simplify PIN comparison

* Save pointer to storage in Desktop object

* Fix region provisioning for hardware regions

* Remove stale TODO + siimplify code

* Clean up region.c

* Use sizeof instead of macro define

* Limit PIN length to 10 for consistency

* Emit a warning upon usage of /any

* Add delay after finding flipper

* Remove unnecessary delay

* Remove all mentions of STORAGE_INT_ON_LFS

* Remove littlefs and internal storage

* Remove all possible LittleFS mentions

* Fix browser tab in Archive

* Ble: fix connection interval explanation

* Bump API Symbols

* BLE: Update comments interval connection comments

* Storage: clear FuriHalRtcFlagStorageFormatInternal if set

---------

Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
2024-08-10 13:18:51 +03:00
Georgii Surkov
f4122a924a [FL-3841] FuriEventLoop Pt.2 (#3703)
* Abstract primitive type from main logic in FuriEventLoop
* Remove message_queue_i.h
* Add stream buffer support for event loop
* Add semaphore support for event loop
* Add temporary unit test workaround
* Make the linter happy
* Add mutex support for event loop
* Implement event subscription and unsubscription while the event loop is running
* Implement edge events
* Fix leftover logical errors
* Add event loop timer example application
* Implement flag-based edge trigger and one-shot mode
* Add event loop mutex example application
* Only notify the event loop if stream buffer is at or above its trigger level
* Reformat comments
* Add event loop stream buffer example application
* Add event loop multiple elements example application
* Improve event loop flag names
* Remove redundant signal handler as it is already handled by the event loop
* Refactor Power service, improve ViewHolder
* Use ViewHolder instead of ViewDispatcher in About app
* Enable ViewDispatcher queue on construction, deprecate view_dispatcher_enable_queue()
* Remove all invocations of view_dispatcher_enable_queue()
* Remove app-scened-template
* Remove missing library from target.json
* Port Accessor app to ViewHolder
* Make the linter happy
* Add example_view_holder application, update ViewHolder docs
* Add example_view_dispatcher application, update ViewDispatcher docs
* Replace FuriSemaphore with FuriApiLock, remove workaround delay
* Fix logical error
* Fix another logical error
* Use the sources directive to speed up compilation
* Use constant define macro
* Improve FuriEventLoop documentation
* Improve FuriEventLoop documentation once more
* Bump API Version
* Gui: remove redundant checks from ViewDispatcher
* Gui: remove dead ifs from ViewDispatcher

Co-authored-by: Silent <CookiePLMonster@users.noreply.github.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-08-07 12:49:41 +09:00
Sean Skyhawk
41fcead710 Images linting: ensure that all images conform specification (#3802)
* Change all icons to be white background
* assets: re-processed all *.png images to 1-bit
* assets: also stripped profile data from .pngs
* assets: also stripped datetime from metadata (`-define png:exclude-chunks=date,time`)
* scripts: added image linter and formatter; fbt: added `lint_img` && `format_img` targets; github: integrated image lint step into CI
* scripts: imglint: fixed deprecation warning
* images: applied `format_img`
* fbt: added `lint_all` and `format_all` targets; docs: updated for new targets

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2024-08-07 11:57:32 +09:00
Willy-JL
b8a6579379 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-08-05 20:05:13 +02:00
あく
4d985ba8f8 Storage: remove LFS (#3577)
* Storage: drop internal storage

* Storage: rollback some unnecessary changes

* Storage: rollback some unnecessary changes part 2

* Storage: cleanup various defines and int handling. Ble: allow short connection interval if internal flash is not used.

* Storage: do not return storage if it is not ready

* Save PIN code to RTC, update settings

* Simplify the code, clean up includes

* Rearrange some code

* apps: storage_move_to_sd: conditionally enable with --extra-define=STORAGE_INT_ON_LFS

* Load Desktop settings automatically

* Redirect /any to /ext

* Abolish storage_move_to_sd app

* Remove as many mentions of ANY_PATH as possible

* Fix desktop settings wrongly not loading

* Improve desktop settings handling and strings

* Load BLE settings and keys automatically

* Improve BLE configuration procedure

* Do not load bluetooth keys twice if they were already loaded

* Load dolphin state automatically

* Fix merge artifact

* Load notification settings automatically

* Update desktop settings strings

* Load expansion settings automatically

* Do not use thread signals to reload desktop settings

* Load region data automatically, separate to its own hook

* Improve ble behaviour with no keys

* Fix Dolphin state not resetting correctly

* Add a status check

* Make Desktop save its own settings

* Check result when taking and releasing mutex

* Improve default thread signal handling in FuriEventLoop

* Make bt service in charge of saving settings, add settings api

* Fix a deadlock due to timer thread not receiving time

* Lock core2 when reinitialising bt

* Update clang-format

* Revert "Update clang-format"

This reverts commit d61295ac063c6ec879375ceeab54d6ff2c90a9a1.

* Format sources with clang-format

* Revert old stack size for desktop settings

* Allocate big struct dynamically

* Simplify PIN comparison

* Save pointer to storage in Desktop object

* Fix region provisioning for hardware regions

* Remove stale TODO + siimplify code

* Clean up region.c

* Use sizeof instead of macro define

* Limit PIN length to 10 for consistency

* Emit a warning upon usage of /any

* Add delay after finding flipper

* Remove unnecessary delay

* Remove all mentions of STORAGE_INT_ON_LFS

* Remove littlefs and internal storage

* Remove all possible LittleFS mentions

* Fix browser tab in Archive

* Ble: fix connection interval explanation

* Bump API Symbols

* BLE: Update comments interval connection comments

* Storage: clear FuriHalRtcFlagStorageFormatInternal if set

---------

Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
2024-08-04 10:54:02 +01:00
Willy-JL
53727022aa Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-08-02 21:56:35 +02:00
MX
856fe752de Merge remote-tracking branch 'OFW/dev' into dev 2024-08-02 11:09:56 +03:00
Astra
4f46032d32 [NFC] Change the plantain last number display from "?" to "X" (#3819) 2024-08-02 15:03:12 +09:00
Willy-JL
e5ccb3821e Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-08-01 00:05:36 +02:00
Astra
f73d60cba8 [FL-3766] Refactor detected protocols list (#3809)
* Refactor detected protocols list
* nfc app: fix detect protocols file name
* nfc app: fix function naming
* nfc app: fix detected protocol menu selection

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-08-01 06:37:37 +09:00
Willy-JL
b4c24e6e4b Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-07-31 23:06:48 +02:00
Astra
59eb749b2b [FL-3879] Fix plantain balance string (#3813)
* Fix balance string
* nfc app: remove ? in plantain

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-08-01 05:57:00 +09:00
MX
57f3bce8e3 merge manually formatted stuff too 2024-07-16 01:01:17 +03:00
Willy-JL
2eaf1ffc95 New formatting 2024-07-15 22:32:17 +01:00
Willy-JL
8a02a2c8dd Empty line after TAGs as per new formatting 2024-07-15 22:29:41 +01:00
Willy-JL
02f7207d28 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-07-15 22:18:35 +01:00
MX
726cb770d0 formatting 2024-07-15 20:02:45 +03:00
hedger
ffa3996a5e [FL-3867] Code formatting update (#3765)
* clang-format: AllowShortEnumsOnASingleLine: false
* clang-format: InsertNewlineAtEOF: true
* clang-format: Standard:        c++20
* clang-format: AlignConsecutiveBitFields
* clang-format: AlignConsecutiveMacros
* clang-format: RemoveParentheses: ReturnStatement
* clang-format: RemoveSemicolon: true
* Restored RemoveParentheses: Leave, retained general changes for it
* formatting: fixed logging TAGs
* Formatting update for dev

Co-authored-by: あく <alleteam@gmail.com>
2024-07-15 13:38:49 +09:00
MX
365159c11a update mf classic keys dict
from
810f085aae/client/dictionaries/mfc_default_keys.dic

and

2a623b4ff3/NFC/mf_classic_dict/mf_classic_dict_user.nfc
2024-07-15 04:31:32 +03:00
MX
8e58da2be1 Merge remote-tracking branch 'OFW/dev' into dev 2024-07-14 05:50:53 +03:00
Willy-JL
fa06d15612 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-07-13 23:55:10 +01:00
Zinong Li
5f9d68f3ad NFC: ISO15693 Render Typo Fix (#3784)
* Fixed the bug showing IC reference value as DSFID.
2024-07-14 00:05:54 +04:00
Willy-JL
826aa4ba3d Update MFC dict, 135 new keys from RRG pm3 repo and UberGuidoZ dump 2024-07-11 22:12:49 +01:00
Zinong Li
79d8b12c5e NFC: Add parser for CSC Service Works Reloadable Cash Card (#137)
* csc parser

* Added verification through keys. Recognize new cards.

* Correct typo, add comments

* Updated output word choice

* Added verify key in csc_parse to avoid false positive

* Format

* updated verification process

- Deleted key-based verification
- Added memory based checksum and backup block checks to ensure better verification performance

* Formatting and More Verify Steps

Added card type checks and verify for csc specific memory format
Formatted the code (indentation etc.)

* Update csc.c

* Test cleanup parser a bit

* Update changelog

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-07-10 11:43:38 +01:00
MX
e4f315188b fbt format 2024-07-08 07:37:28 +03:00
MX
a7ca56cf4e Merge remote-tracking branch 'OFW/dev' into dev 2024-07-07 02:22:08 +03:00
Willy-JL
9f03cdb721 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into mntm-dev 2024-07-06 19:44:49 +02:00
あく
d39c3b3776 Fix PVS Warnings (#3760) 2024-07-06 15:05:29 +01:00
WillyJL
a0eab5a371 NFC: Cache plugin name not full path, saves some RAM (#3737)
* NFC: Cache plugin name not full path, saves some RAM
* Remove file_path FuriString from context

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: gornekich <gornekich@users.noreply.github.com>
2024-07-06 13:18:48 +01:00
Willy-JL
0f4f844ff1 Format for toolchain 37, update changelog 2024-07-05 20:07:11 +02:00
Willy-JL
57f377af58 Merge remote-tracking branch 'fork-ofw/nfc-plugin-cache-names' into mntm-dev 2024-07-05 17:54:14 +02:00
MX
223de97d8c NFC: Cache plugin name not full path, saves some RAM [ci skip]
by Willy-JL
2024-07-04 22:53:47 +03:00
MX
842922f018 Merge remote-tracking branch 'OFW/dev' into dev [ci skip] 2024-07-04 04:56:04 +03:00
Willy-JL
7ef699d9f6 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into mntm-dev 2024-07-04 00:08:00 +02:00