Commit Graph

7805 Commits

Author SHA1 Message Date
Willy-JL
62ce89e41e Merge remote-tracking branch 'ul/dev' into mntm-dev 2024-09-24 05:47:20 +01:00
MX
ba4c4e528a Merge remote-tracking branch 'OFW/portasynthinca3/3332-autolock-fixes' into dev 2024-09-21 03:54:08 +03:00
MX
0df33899eb Frequency analyzer fixes and improvements
disable ext module due to lack of required hardware on them and incorrect usage of freq analyzer, like trying to receive "signals" with it (from the space??), while it should be used only to get frequency of the remote placed around 1-10cm around flipper's left corner

Also fix possible GSM mobile towers signal interference by limiting upper freq to 920mhz max

Fix dupliacted freq lists and use user config for nearest freq selector too (finally)
2024-09-20 06:35:46 +03:00
Willy-JL
97879c3bf3 Update apps
- NFC Playlist: Add playlist already exists error, general improvements (by acegoal07)
2024-09-18 02:11:30 +01:00
jay candel
65df2e4d1f NFC: SmartRider Parser (#203)
* adding smartrider_parser

* adding SmartRider parser

new parser for SmartRider cards, a public transport smart card system used in Western Australia.
extracts and interprets key information from the card, including:
-Current balance
-Card serial number
-Concession type
-Purchase cost
-Details of the last two trips (including tag on/off status, cost, route, transaction number, and journey number)

* optimising

- removed all logging to simplify output.
- used early returns for clearer error handling.
- optimized setups outside loops to improve memory use.
- simplified flows by removing unnecessary loops.
- placed variables closer to their use for better readability.
- cached data blocks to streamline data handling.
- added a helper function for parsing trips, reducing redundancy.
- corrected loop counter types to avoid compile-time errors.

* cleaning displayed data

- removed transaction (txn) and journey (jrn) numbers to declutter the trip details.
- shortened "previous trip" to "prev trip" to optimize screen space usage.

* added and refined displayed data

added auto load field "threshold amount / reload amount"
changed serial to display first two digits as SR0 for consistency with physical card.

* Format

* Improved Verification Process

- Added definitions for STANDARD_KEY_2 and STANDARD_KEY_3
- Enhanced smartrider_verify function to check for all three specific keys:
  - STANDARD_KEY_1 in Sector 0 as Key A
  - STANDARD_KEY_2 in Sector 6 as Key A
  - STANDARD_KEY_3 in Sector 6 as Key B
- Implemented read operations to verify actual key values stored on the card
- Added comparisons between read key data and expected key values
- Improved debug logging for each step of the verification process

* Integrated Verification into Parse Function

- Added key verification for sectors 0 and 6
- Implemented do-while loop structure for early exit on verification failure
- Moved block readability checks inside verification process
- Added parsed flag to indicate successful parsing
- Updated return value to reflect parsing success
- Maintained existing parsing logic and output format

* fixed false positives

recieved some cuid cards today so was able to test for myself can confirm works... finally
changes made: 
-updated key assignment in smartrider_read
-simplified key verification in smartrider_parse
-improved error handling and logging
-streamlined data parsing process
-corrected key checking logic
-added checks for required block readability
-improved flow control with strategic breaks
-adjusted block data access method

* small optimizations

- refactored `smartrider_verify` and `smartrider_read` by abstracting repeated key operations into `authenticate_and_read` function for improved code maintainability.
- optimized `smartrider_read` by introducing a loop for key setup, reducing redundancy and improving efficiency.
- streamlined error handling in `smartrider_read` by replacing do-while loop with conditional checks.
- changed standard key references to use `standard_keys` array indices

* formatting

* Delete duplicate smartrider.c

* updated smartrider.c

* found 'fbt format'

* transaction parsing updates

-removed last trip/prev trip wording and replaced with "Trip History" header
-added date in front of each transaction 
-only shows transaction cost if it's higher than 0
-changed tag on/tag off to +/- to save room
-added 8 more transactions to Trip History
-verified still working and formatted with fbt

* fixed reboot with partially unlocked card

-added bounds checking for all block accesses to prevent out-of-range memory access
-implemented improved error handling with an error_occurred flag
-introduced a maximum iteration count for date calculation to prevent infinite loops
-used snprintf with size limits for all string operations to avoid buffer overflows
-added validation for trip count to ensure it doesn't exceed the maximum allowed
-implemented checks to skip unread or out-of-range blocks during trip parsing
-added safeguards against corrupted or invalid timestamp data

* optimized SmartRider card parsing and verification

- replaced do-while loop with direct error checks in smartrider_parse
- optimized key verification using direct memcmp in smartrider_verify
- introduced inline functions for common operations (e.g., set_key, read_le16)
- replaced bubble sort with insertion sort for trip data
- simplified date calculation using a lookup table for days in month
- used uint_fast8_t for loop counters to allow compiler optimization
- added __attribute__((hot)) to key functions for aggressive optimization
- removed redundant variable declarations and function calls
- optimized memory usage with static const arrays for required blocks
- simplified error handling in smartrider_read and authenticate_and_read
- used __builtin_memcpy and __builtin_memcmp for potential compiler optimizations
- tested and formatted with fbt

* small fixes

-renamed "Trip History" to "Tag On/Off History"
-fixed date calculation to account for leap years
-misc changes

* Update changelog

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-09-18 03:00:49 +02:00
m7i-org
df273950cc Sub-GHz: Show satellites count with an icon (#215)
* feat(subghz): show satellites if enabled

Replaces the display of the number of satellites during SubGHz scanning. If GPS is enabled (an an external module connected) it will blink a GPS icon with the number of sats currently in range (even if zero).
Using a 10x10px "positioning" icon that replaces the SubGHz icon on the bottom right.

* Revert api version to ofw release

* f18 too

* Tweak icon a little

* Update changelog

* Format

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-09-18 01:43:30 +02:00
m7i-org
3351f9b636 Sub-GHz: Add Bresser 3CH weather station protocol (#217)
* feat(subghz): added Bresser 3CH weather station

Added the Bresser 3CH, a weather station supported by rtl_433 already.

* Update changelog

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-09-18 01:14:29 +02:00
Mihai
425a97fe95 NFC: Added 6 new Mifare Classic keys from Bulgaria Hotel (#216)
* Update mf_classic_dict.nfc

Added 6 new keys from Bulgaria Hotel
Keys are not duplicated!

* Add section delimiter

* No LF at EOF

* Update changelog

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-09-18 00:24:21 +02:00
Willy-JL
de5b0a42d1 Add Sub-GHz: Radio Scanner app (by RocketGod-git) 2024-09-17 23:18:03 +01:00
Willy-JL
2b8159fcd6 Picopass: Force ISO15693 1OutOf4 mode (by aaronjamt)
- Fixes crashes in some noisy readers
2024-09-17 23:13:35 +01:00
Willy-JL
f6025cee28 Revert, app is not ready for new lib yet
maybe git subtrees need some more work, to better sync with submodule indexes?
2024-09-17 22:39:26 +01:00
Willy-JL
12f9bd73b7 Update apps --nobuild
- Laser Tag: Crash fixes (by RocketGod-git), thread leak fix (by jamisonderek)
- Pokemon Trading: Update gblink library with printer support (by kbembedded)
2024-09-17 22:20:58 +01:00
Willy-JL
d1bc8e53f3 Merge remote-tracking branch 'ofw/dev' into mntm-dev --nobuild 2024-09-17 22:02:22 +01:00
MX
31df2c0655 upd changelog 2024-09-16 19:17:05 +03:00
MX
521de2bc04 Merge remote-tracking branch 'OFW/dev' into dev 2024-09-16 18:00:02 +03:00
Anna Antonenko
1a9aca2d8c fix: always autolock if pin set 2024-09-16 17:11:31 +03:00
Anna Antonenko
15b271bd92 fix: cli autolock inhibit 2024-09-16 16:27:24 +03:00
Anna Antonenko
a5b3d71e59 feat: cli icon on the desktop 2024-09-16 15:37:40 +03:00
porta
19a3736fe5 [FL-3891] Folder rename fails (#3896)
* fix, refactor: storage is_subdir API
* docs: fix incorrect comment
* test: new storage apis
* test: use temporary path
* style: fix formatting
* UnitTest: storage path macros naming
* UnitTest: storage path macros naming part 2

Co-authored-by: あく <alleteam@gmail.com>
2024-09-15 16:01:42 +01:00
Willy-JL
9c54336f1d Update apps
- Quac!: iButton support (by rdefeo)
- DTMF Dolphin: Add EAS tone support (by JendrBendr)
2024-09-14 03:02:53 +02:00
Willy-JL
b31dec8e71 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-09-14 01:10:44 +02:00
MX
891a6c047a Merge remote-tracking branch 'OFW/dev' into dev 2024-09-13 22:26:58 +03:00
porta
b670d5b6e2 [FL-3885] Put errno into TCB (#3893)
* feat: thread-safe errno
* ci: fix pvs warning
* ci: silence pvs warning
* fix: 🤯
* test: convert test app into a unit test
2024-09-13 18:31:07 +01:00
porta
0428e82b14 Fix USB-UART bridge exit screen stopping the bridge prematurely (#3892)
* fix: exit screen stopping bridge prematurely
* refactor: merge exit confirmation scene into main usb uart scene
2024-09-12 17:32:07 +01:00
MX
2aa4797b12 Merge remote-tracking branch 'OFW/portasynthinca3/usbuart-stay-fix' into dev 2024-09-11 01:44:29 +03:00
Willy-JL
0477dc4d9f Add NFC Cyborg Detector app by RocketGod-git 2024-09-10 20:33:04 +02:00
Willy-JL
e38a684193 Update apps 2024-09-10 20:27:35 +02:00
Anna Antonenko
c1a009aed0 fix: exit screen stopping bridge prematurely 2024-09-10 19:58:44 +03:00
MX
ce53ed2a7c fix wrong menu order [ci skip] 2024-09-10 06:03:54 +03:00
Willy-JL
26959f73d8 Merge remote-tracking branch 'ul/dev' into mntm-dev --nobuild 2024-09-10 01:03:42 +02:00
Willy-JL
e282d8050f Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-09-09 23:20:14 +02:00
MX
80ad381eef extra checks [ci skip] 2024-09-09 05:13:02 +03:00
MX
7711b2daae Merge remote-tracking branch 'OFW/dev' into dev 2024-09-09 04:11:35 +03:00
MX
5da447a2b0 more chance to generate working remote at gangqi 2024-09-09 04:11:00 +03:00
christhetech131
543f6058e5 Infrared: add TCL 75S451 to TV universal remote (#3880)
* Update tv.ir
* Infrared: mark TCL 75S451 block in universal remote, cleanup extra spaces

Co-authored-by: あく <alleteam@gmail.com>
2024-09-08 23:54:38 +01:00
Eric Betts
75f4782fab Rename 'Detect Reader' to 'Extract MF Keys' (#3874)
* Rename 'Detect Reader' to 'Collect Nonces'
* Updated name
* Updated name
* Format Sources

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-09-08 23:43:14 +01:00
MX
6911ba12ad Merge remote-tracking branch 'OFW/dev' into dev 2024-09-07 22:31:11 +03:00
Silent
8c2223df5d Threading, Timers improvements (#3865)
* FuriTimer: Use a local variable to wait for deletion

This combines the current synchronous behaviour
(as we could have deferred the free call too) with
a smaller FuriTimer - it's safe to pass a pointer to
a local variable to this pending timer call, because we
know it'll be finished before the caller returns

* Tighten the use of FuriThread* vs FuriThreadId

Event loop and Loader mixed those two,
but the fact those are aliases should be an implementation detail.
For this reason, thread.c is still allowed to mix them freely.
2024-09-07 19:18:51 +01:00
Willy-JL
3eab261ec2 MNTM: Lock dolphin butthurt if happy mode 2024-09-07 19:20:23 +02:00
Willy-JL
2b5b6543d6 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-09-07 19:14:22 +02:00
Willy-JL
c5fa2c46f8 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-09-07 18:37:13 +02:00
Silent
8672a1d94c Replace all calls to strncpy with strlcpy, use strdup more, expose strlcat (#3866)
strlcpy doesn't zero the buffer and ensures null termination,
just like snprintf

strlcat is already used by mjs and it's a safe alternative to strcat,
so it should be OK to expose to apps
2024-09-07 17:16:56 +01:00
Willy-JL
5aff32575c About: Fix BLE stack version string 2024-09-07 16:13:05 +02:00
Thomas Nemer
9bdf41d8ff feat: add linux/gnome badusb demo resource files (#3846)
* feat: add linux/gnome badusb demo resource files
* doc: use latest appimage package and install icon and desktop file

Co-authored-by: Thomas N <atom@fortytwo.fr>
Co-authored-by: あく <alleteam@gmail.com>
2024-09-07 13:25:13 +01:00
porta
266d4b3234 [FL-3897] Happy mode (#3863)
* feat: happy mode
* feat: remove sad dolphin when powering off in happy mode
* style: address review comments
* Dolphin: add missing furi_checks
* Komi: add missing region initialization on startup

Co-authored-by: あく <alleteam@gmail.com>
2024-09-07 12:54:23 +01:00
Willy-JL
45fab3cf3d Merge remote-tracking branch 'ul/dev' into mntm-dev 2024-09-07 00:16:52 +02:00
Willy-JL
543d4c1415 Update app
- UL: Sub-GHz Bruteforcer: Add new protocols for existing dump option (by xMasterX)
2024-09-06 23:48:20 +02:00
Willy-JL
cb0798cdc3 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-09-06 23:09:48 +02:00
Willy-JL
263de09a5f Storage: Fallback SD format when app unavailable (#208) --nobuild 2024-09-06 23:02:51 +02:00
Willy-JL
5901fa4844 Add explanation 2024-09-06 18:29:47 +02:00