Commit graph

239 commits

Author SHA1 Message Date
gornekich
6bc63b7734
[FL-3676] Slix disable privacy (#3425)
* slix: add unlock option
* slix: add features for nxp get info and signature commands
* slix: working unlock
* nfc app: rewrite slix unlock
* slix poller: simplify unlock state handler
* nfc app: fix slix key setting
* nfc app: fix navigation
* slix poller: code clean up
* slix: resolve TODO, clean code
* nfc app: fix naming
* nfc app: rework slix unlock success scene
* slix poller: add documentation
* slix listener: fix password comparison

Co-authored-by: あく <alleteam@gmail.com>
2024-02-09 15:07:54 +07:00
Nick Mooney
f6eb79e1e5
NFC: Add support for Gallagher access control (MIFARE Classic only) (#3306)
* Merge remote-tracking branch 'origin/dev' into dev
* Add basic API interface (inspired by advanced plugins example), modify NfcSupportedCardsLoadContext to contain a pointer to a resolver
* WIP: API resolver implemented / passed to plugin via context, still having resolution issues
* Attempt to add constants to the nfc_app_api_table list
* WIP: We're defining the constants directly in nfc_app_api.c to see if this fixes our woes, which it does not.
* WIP: Remove furi_assert(false) (lmao)
* Working implementation of Gallagher decoding via exposed plugin API
* lib: api_hashtable: change log level for symbol not found message
* nfc app: alloc composite resolver along with supported cards
* nfc app: rework nfc api structure
* nfc app: fix memory leakage in supported cards

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-02-09 15:00:17 +07:00
gornekich
4984e9e414
nfc app: fix incorrect protocol detection in save scene (#3430) 2024-02-06 23:25:55 +04:00
RebornedBrain
8c54c14742
[FL-3758] NFC: MFC Unlock with Dictionary (#3411)
* New menu item "Unlock with Dictionary" added to classic menu

* No retry also returns to dictionary attack if it was previously displayed

* nfc app: format code

---------

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-02-06 23:11:27 +04:00
gsp8181
e180266c1a
ITSO Parser (UK) (#3325)
* Create ITSO parser

Standard for UK transport cards outside of Oyster

* Update application.fam with ITSO parser

* Update date buffer to fix access outside array

* nfc app: use rtc function in itso plugin

---------

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2024-02-06 18:55:38 +00:00
RebornedBrain
cd8e76bbcd
[FL-3757] NFC: fix application opening from browser (#3396)
* nfc_protocol_support_has_feature is now public

* Added function to show different scene depending on supported features of the device

* Fix delete button logic when selected from browser

* Fix rename button logic when selected from browser

* Update nfc_scene_save_success.c

---------

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2024-02-06 22:26:05 +04:00
RebornedBrain
9d6f51484a
[FL-3755] Rework more info scene for Ultralight cards (#3391)
* Changed event handler signature. Now we put whole SceneManagerEvent not only custom event.

* Changed signature and implementation of common on_event callback

* Changes required due to event signature adjustment

* Reset widget on exit from more info scene

* Enum for more info scene states for ultralight cards

* New implementation of more info logic added

* Check simplified

* Update nfc_protocol_support.c

---------

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-02-06 22:20:57 +04:00
RebornedBrain
9a77dbec56
[FL-3678] NFC UI refactor (#3382)
* Added new image DolphinSaved_113x58.png for all "saved" pages

* New image DolphinDone_80x58.png added

* Replaced dolphins on all scenes accroding to new UI specs

* New success dolphin image added

* Success scene image replaced

* Changed image and text for update initial scene

* Image and text adjusted for "Original restored" scene

* Removed old DolphinNice_96x59.png image

* New image for LFRFID scene

* Removed unused image

* New UI image added to assets

* Replaced warning dolphin on mf_classic write initial fail scene

* Removed old image

* Changed image on scenes to a new one

* New dolphin mafia image

* Replaced dolphin mafia image to a new one

* Removed DolphinMafia_115x62.png

* New check symbol on completed state for detect_reader

* Adjusted layout elements position

* Removed second switching to popup view in order to achieve control in support callbacks

In general now we show generic scene and after that in on_enter callback we can redefine it for particular protocol

* CardDetected event now also triggers on_event callback

* Now on AuthRequest we throw CardDetected custom event

* Added callback for read_on_event

* Now we show different screen while reading and unlocking

* Fixed missing asstes for some scenes

* Update DolphinMafia_119x62.png

* Adjusted all the scenes with DolphinMafia image

* Scenes with save image adjusted

* Removed unnecessary assets DolphinMafia_119x62.png and DolphinSaved_113x58.png

* All common dolphins moved to Dolphin folder

* Moved DolphinReadingSuccess_59x63.png to Dolphin folder

* Set proper led color for detect and read scenes

* Added new notification sequence for semi_success results

* Use new sequence for semi_success nfc reads

* Different events are now throwed depending on read result

* Added handling of incomplete event for ultralight cards

* Replaced image for iButton scene

* Updated API for f18

* Fixed issue with unlock retry sequence

* Fix after review

* Success notification replaced to semi success in case of incomplete mf classic reading

* New text for read scene

* New read result sound notification logic for mf classic cards

* Change MIFARE name accroding to new requirements

* New QR code image for MFKey app

* Update nfc_scene_mf_classic_mfkey_complete.c scene according to new UI requirements

* Update detect_reader.c and check_big_20x17.png

* New nfc save confirm scene added

* Implemented new flow for 'Detect Reader button' after partial mf classic read according to new UI

* UID for 15693 tags now shown on the new line

* Fix nfc unit tests

* Revert "Fix nfc unit tests"

This reverts commit 685ed6bfad.

* Rolled back all Mifare renamings in library files

* Revert "Change MIFARE name accroding to new requirements"

This reverts commit cfb974dc1f.

* Now Mifare word is changed only on the app level without changes to lib level

* Filename or "Unsaved + CardType" is now showed for saved cards during emulation

* Headers added to Write scenes

* Reordered menu items accrding to new spec

* Filename will be printed for saved tag in info scene

* New info render format for 14443_3a cards

* New info render format for 14443_3b cards

* New info render format for 14443_4a cards

* New info render format for iso15693 cards.

Also More_Info scene added to display Memory data

* New info render format for slix cards.

Also More_Info scene added to display Memory data

* Fixed "Mifare" word for desfire cards

* Aligned text and replaced dolphin image on emulate scene

* Fixed Mifare caption after QA

* Realigned emulation scene and fixed replaced Mifare to MIFARE

---------

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-02-06 21:57:06 +04:00
Jeremy Cooper
a83e421d71
Add an NFC parser for the San Francisco Bay Area "Clipper" transit card. (#3344)
* Add an NFC parser for the San Francisco Bay Area "Clipper" transit card.

* Add more agencies and stations, decode vehicle ids, refactor.

Add more agencies and station names using data from local research
and:

* Metrodroid project (GPLv3): https://github.com/metrodroid/metrodroid
* Farebot (GPLv3): https://github.com/codebutler/farebot

---------

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2024-02-06 21:47:44 +04:00
MMX
2c784d3fea
Fix nfc_protocol_support_scene_save_name_on_event crash (#3418)
* Add Clearing of detected protocols list in nfc_scene_start

* Apply patch

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
2024-02-06 21:42:06 +04:00
Tolly Hill
c736c3f3f0
NFC: Display unread Mifare Classic bytes as question marks (#3384)
* NFC: Display unread Mifare Classic bytes as ??

* Apply patch from @gornekich

---------

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-02-06 21:34:54 +04:00
Astra
e0782966d4
[FL-3661] Troika layout fixes (#3365)
* Add support for different troika layouts

* Display additional data if debug is enabled in settings

* Support for layout 2, where there's no balance

* nfc app plugins: fix mfc read error processing

* nfc app: clean up troika plugin

* nfc app: troika parser more clean up

---------

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2024-02-06 21:29:17 +04:00
Leptopt1los
ed34dfa1c6
NFC: MF Classic parsers read() fix (dictionary attack skip) (#3355)
* NFC: MF Classic lib: MfClassicErrorPartialRead added

* unnecessary imports removed

* MfClassicError refactor by @gornekich

Co-authored-by: gornekich <n.gorbadey@gmail.com>

---------

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-02-06 20:53:42 +04:00
Georgii Surkov
e6f078eeb7
[FL-3759] Fix expansion protocol crash when fed lots of garbage (#3409)
* Fix crash caused by garbage input
* Add unit tests for garbage input
* Enable applications to disable and then restore expansion module support
* GPIO App: disable expansion on app start and re-enable on exit

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-01-30 22:54:25 +09:00
あく
c8ea167a06
0.98.0-rc various fixes (#3402) 2024-01-29 21:35:46 +09:00
Sergei Gavrilov
027ea9ea36
RFID CLI: better usage (#3376)
Co-authored-by: あく <alleteam@gmail.com>
2024-01-16 18:51:36 +09:00
RebornedBrain
a11fcfc72d
[FL-3678] NFC UI refactor (#3369)
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-01-16 18:29:17 +09:00
あく
fc043da9c6
FuriHal: UART refactoring (#3211)
* FuriHal: UART refactoring
* ApiSymbols: add furi_record_destroy
* FuriHal: cleanup serial API, add logging configuration in RTC
* FuriHal: hide private part in _i header. Toolbox: cleanup value index. SystemSettings: logging device and baudrate.
* FuriHal: RTC logging method documentation
* Synchronize API Symbols
* Furi: mark HEAP_PRINT_DEBUG as broken
* FuriHal: furi_hal_serial, add custom IRQ func
* Fix PR review issues
* FuriHal: UART add reception DMA (#3220)
* FuriHal: add DMA serial rx mode
* usb_uart_bridge: switch to working with DMA
* Sync api symbol versions
* FuriHal: update serial docs and api
* FuriHal: Selial added similar API for simple reception mode as with DMA
* FuriHal: Update API target H18
* API: ver API H7
* FuriHal: Serial error processing
* FuriHal: fix furi_hal_serial set baudrate
* Sync api symbols
* FuriHal: cleanup serial isr and various flag handling procedures
* FuriHal: cleanup and simplify serial API
* Debug: update UART Echo serial related flags
* FuriHal: update serial API symbols naming
* FuriHalSerial: various improvements and PR review fixes
* FuriHal: proper ISR function signatures

---------

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: SkorP <skorpionm@yandex.ru>
Co-authored-by: Skorpionm <85568270+Skorpionm@users.noreply.github.com>
2024-01-16 03:09:37 +04:00
Skorpionm
d73d007797
SubGhz: add subghz tx_from_file CLI cmd, major TX flow refactoring, various improvements and bug fixes (#3302)
* SubGhz: add cmd CLI "subghz tx_from_file"
* SubGhz:  add sending raw.sub files
* SubGhz: add load custom preset
* SubGhz: remove unnecessary files
* SubGhz: change message
* SubGhz: fix printf formatting
* SubGhz: Cli refactoring code
* FuriHal: add furi_hal_subghz Tx Rx IDLE state switching test
* SubGhz: remove debug code, fix ext driver compilation
* SubGhz: cleanup code, move wait status routine to cc1101 driver
* SubGhz: proper pin mode transition in tx stop isr routine, proper DMA and ISR priorities, fix issue with async tx stuck
* SubGhz: simplify async tx stop flow, fix ISR ARR check condition race
* SubGhz: check ARR only when we transmitting
* SubGhz: check ARR only when we transmitting for ext cc1101
* SubGhz: lower ISR priorities to safe level
* SubGhz: proper gpio config, comments update

Co-authored-by: あく <alleteam@gmail.com>
2024-01-15 14:38:43 +09:00
RebornedBrain
1f9fd4c42a
[FL-3678] NFC UI refactor (#3361)
* Added new image DolphinSaved_113x58.png for all "saved" pages
* New image DolphinDone_80x58.png added
* Replaced dolphins on all scenes accroding to new UI specs
* New success dolphin image added
* Success scene image replaced
* Changed image and text for update initial scene
* Image and text adjusted for "Original restored" scene
* Removed old DolphinNice_96x59.png image
* New image for LFRFID scene
* Removed unused image
* New UI image added to assets
* Replaced warning dolphin on mf_classic write initial fail scene
* Removed old image
* Changed image on scenes to a new one
* New dolphin mafia image
* Replaced dolphin mafia image to a new one
* Removed DolphinMafia_115x62.png
* New check symbol on completed state for detect_reader
* Adjusted layout elements position
* Removed second switching to popup view in order to achieve control in support callbacks
  In general now we show generic scene and after that in on_enter callback we can redefine it for particular protocol
* CardDetected event now also triggers on_event callback
* Now on AuthRequest we throw CardDetected custom event
* Added callback for read_on_event
* Now we show different screen while reading and unlocking
* Fixed missing asstes for some scenes
* Update DolphinMafia_119x62.png
* Adjusted all the scenes with DolphinMafia image
* Scenes with save image adjusted
* Removed unnecessary assets DolphinMafia_119x62.png and DolphinSaved_113x58.png
* All common dolphins moved to Dolphin folder
* Moved DolphinReadingSuccess_59x63.png to Dolphin folder
* Set proper led color for detect and read scenes
* Added new notification sequence for semi_success results
* Use new sequence for semi_success nfc reads
* Different events are now throwed depending on read result
* Added handling of incomplete event for ultralight cards
* Replaced image for iButton scene
* Updated API for f18
* Fixed issue with unlock retry sequence
* Fix after review
* Success notification replaced to semi success in case of incomplete mf classic reading
* New text for read scene
* New read result sound notification logic for mf classic cards
* Change MIFARE name accroding to new requirements
* New QR code image for MFKey app
* Update nfc_scene_mf_classic_mfkey_complete.c scene according to new UI requirements
* Update detect_reader.c and check_big_20x17.png
* New nfc save confirm scene added
* Implemented new flow for 'Detect Reader button' after partial mf classic read according to new UI
* UID for 15693 tags now shown on the new line
* Fix nfc unit tests
* Revert "Fix nfc unit tests"
  This reverts commit 685ed6bfad.
* Rolled back all Mifare renamings in library files
* Revert "Change MIFARE name accroding to new requirements"
  This reverts commit cfb974dc1f.
* Now Mifare word is changed only on the app level without changes to lib level

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-01-14 14:47:38 +09:00
Skorpionm
48e4de1213
[FL-3743] SubGhz: UI update (#3352)
* [FL-3743]SubGhz: screen refactoring
* SubGhz: fix syntax
* SubGhz: gui
* SubGhz: add animation icon ant in read_info scene
* SubGhz: up speed animation icon

Co-authored-by: あく <alleteam@gmail.com>
2024-01-14 13:58:29 +09:00
Augusto Zanellato
0b15fc3807
Fix MyKey production date parsing (#3332)
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-01-10 22:49:30 +09:00
Leptopt1los
4d99a454fd
NFC: parsers minor cleanup (#3329)
* WashCity cards parser cleanup
* umarsh includes cleanup

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-01-10 20:55:45 +09:00
RebornedBrain
3452fbc351
[FL-3744] [NFC] Ntag success write freeze when not saved card (#3354)
* New scenes for ultralight poller write mode
* Added new button and transition logic for write operation
  For now write is only possible for NTAG21x cards with default password and no AUTHLIM set
* Poller states extended
* Enums and datatypes extended for new poller mode
* Added mode field to poller instance datatype
* New states for poller added in order to implement write mode
* Added new event type for locked cards in order to simplify state flow
* New logic for poller write commands
* Scenes adjustments
* Scenes renamed
* New field added to poller instance
* Now we write in 'page per call' mode
* Now function takes callback return value into account
* Callback will be called only in write mode
* Event type added
* Log adjusted and start page to write set
* Logs added and check in now false at start, then it moves to true
* Now mf_ultralight_poller_handler_request_write_data halts card in case of check failure and stops poller
* All fail events now returns NfcCommandStop callback
* In case of fail we move back properly
* Remove garbage
* Fix moving to previous screen in case of not saved ultralight

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-01-10 20:46:55 +09:00
RebornedBrain
d511d76a1b
[FL-3678] [FL-3733] [FL-3723] UI refactor (#3323)
* Added new image DolphinSaved_113x58.png for all "saved" pages
* New image DolphinDone_80x58.png added
* Replaced dolphins on all scenes accroding to new UI specs
* New success dolphin image added
* Success scene image replaced
* Changed image and text for update initial scene
* Image and text adjusted for "Original restored" scene
* Removed old DolphinNice_96x59.png image
* New image for LFRFID scene
* Removed unused image
* New UI image added to assets
* Replaced warning dolphin on mf_classic write initial fail scene
* Removed old image
* Changed image on scenes to a new one
* New dolphin mafia image
* Replaced dolphin mafia image to a new one
* Removed DolphinMafia_115x62.png
* New check symbol on completed state for detect_reader
* Adjusted layout elements position
* Removed second switching to popup view in order to achieve control in support callbacks
In general now we show generic scene and after that in on_enter callback we can redefine it for particular protocol
* CardDetected event now also triggers on_event callback
* Now on AuthRequest we throw CardDetected custom event
* Added callback for read_on_event
* Now we show different screen while reading and unlocking
* Fixed missing asstes for some scenes
* Update DolphinMafia_119x62.png
* Adjusted all the scenes with DolphinMafia image
* Scenes with save image adjusted
* Removed unnecessary assets DolphinMafia_119x62.png and DolphinSaved_113x58.png
* All common dolphins moved to Dolphin folder
* Moved DolphinReadingSuccess_59x63.png to Dolphin folder
* Set proper led color for detect and read scenes
* Added new notification sequence for semi_success results
* Use new sequence for semi_success nfc reads
* Different events are now throwed depending on read result
* Added handling of incomplete event for ultralight cards
* Replaced image for iButton scene
* Updated API for f18
* Fixed issue with unlock retry sequence
* Fix after review
* Success notification replaced to semi success in case of incomplete mf classic reading
* New text for read scene
* New read result sound notification logic for mf classic cards

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-01-02 15:43:46 +09:00
Arthur Braghetto
2a0a54a224
Add Samsung AC remotes DB93 and AR-EH04 (#3301)
Co-authored-by: あく <alleteam@gmail.com>
2023-12-28 14:35:01 +09:00
YaBa
35e74c07d1
Added NFC plugin; parser for WashCity cards. (#3319)
* Added NFC plugin; parser for WashCity cards.
* Fixed file to the correct path
* Added demo file Demo_WC_20E.nfc
* Fixed clang format
* fixed typo (balance_cents)
* Removed demo file as requested.

Co-authored-by: あく <alleteam@gmail.com>
2023-12-28 14:23:12 +09:00
ry4000
f6a38352e8
Update mf_classic_dict.nfc (#3314)
This Commit proposes the addition of the 33 Bandai Namco Passport / Sega Aime Card static access keys that has been available to Members of the Flipper Devices Discord Server; for convenience, they are listed in Sector Key A/B order.

Sector 0 Key B has two possible access keys;
019761AA8082 [current Bandai Namco Passports]
574343467632 [Sega Aime Cards / early-edition Bandai Namco Passports]

Co-authored-by: あく <alleteam@gmail.com>
2023-12-28 14:12:13 +09:00
Eric Betts
76ed466eb4
Nfc: HID MFC Plugin (#3312)
Co-authored-by: あく <alleteam@gmail.com>
2023-12-28 14:03:50 +09:00
Skorpionm
17b122990f
USART Bridge: added support for software control of DE/RE pins (#3280)
* USART Bridge: added support for software control of DE/RE pins
* USART Bridge: fix syntax
* UsbUsartBridge: add TODO ticket
* UsbUsartBridge: add second TODO ticket
* GpioUartBridge: human readable configuration
* GpioUartBridge: rename `Soft DE/RE` to `DE/RE Pin`
* GpioUartBridge: push pull for DE/RE pin

Co-authored-by: あく <alleteam@gmail.com>
2023-12-19 14:13:37 +00:00
gornekich
6f6074dc01
Keys Dict: fix PVS warnings (#3299)
* keys dict: fix PVS warnings
* nfc app: suppress PVS warning
2023-12-19 12:11:35 +00:00
Andrea Maugeri
7642d67cae
NfcDict Refactoring (#3271)
* toolbox(keys_dict): generalize nfc_dict
* nfc: rework nfc app and tests
* toolbox(keys_dict): improve code readability
2023-12-18 14:30:56 +00:00
MarcelSchm
8c4716f170
added new TV Philips OLED 934/12 (#3293)
Co-authored-by: あく <alleteam@gmail.com>
2023-12-15 19:07:01 +00:00
Gustavo de León
11ac6240d2
Add AC's Carrier 42QG5A580SC and AUX YKR-H/006E (#3284)
* Add Carrier 42QG5A580SC
* Add AC Model: AUX YKR-H/006E
* Cleanup ac.ir
* Infrared: Move Carrier 42QHB12D8S to the back of universal remote
* Infreared: more universal ac cleanup

Co-authored-by: あく <alleteam@gmail.com>
2023-12-15 18:57:08 +00:00
gornekich
d6680d1f75
[FL-3719] NFC Plugins loading rework (#3295)
* nfc app: rework supported cards
* nfc app: supported cards optimization
* nfc app: remove old nfc support implementation
* nfc app: add documentation for supported cards
* nfc app: format sources
* nfc app: fix PVS warnings
* nfc app: one more PVS fix
* nfc app: PVS please stop
* nfc app: add missing documentation

Co-authored-by: あく <alleteam@gmail.com>
2023-12-15 18:09:52 +00:00
gornekich
09540929c3
[FL-3717] MFC emulation fix (#3291)
* mf classic listener: reset state before sleep and after nack
* Fix PVS warnings
* Fix PVS and compiler disagree on builtins

Co-authored-by: あく <alleteam@gmail.com>
2023-12-15 17:51:20 +00:00
Leptopt1los
0af74fb755
Umarsh transport cards parser (#3277)
* Umarsh transport card parser added
* Volna transport cards keys added

Co-authored-by: あく <alleteam@gmail.com>
2023-12-14 14:02:40 +00:00
Augusto Zanellato
78b7310057
Add MyKey parser (#3262)
Co-authored-by: あく <alleteam@gmail.com>
2023-12-14 13:54:58 +00:00
Skorpionm
7b85e04462
[FL-3681] SubGhz: changed the name of the button when sending RAW to SubGHz (#3275) 2023-12-12 13:59:22 +00:00
gornekich
82baf1e923
[FL-3701] NFC fixes (#3264)
* nfc app: fix unlock with manual password crash
* nfc app: preserve card detected state
* nfc app: fix mf keys scene switch
* nfc app: fix multiple protocol tag detect notification
* nfc plugin: fix retrun in function body in aime parser
* iso14443-3b poller: rework ATTRIB response check
* nfc app: fix navigation after file load failur
* iso14443-3b poller: fix PVS warning
* mfc listener: add crutch in mfc emulation
2023-12-05 22:40:06 +09:00
Honghao Zeng
c477d1321a
nfc: m1k-based Aime (non-AIC) card support (#3241)
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2023-12-03 20:00:46 +09:00
RebornedBrain
6a5d63803a
[FL-3675] Ntag21x write (#3246)
* New scenes for ultralight poller write mode
* Added new button and transition logic for write operation
   For now write is only possible for NTAG21x cards with default password and no AUTHLIM set
* Poller states extended
* Enums and datatypes extended for new poller mode
* Added mode field to poller instance datatype
* New states for poller added in order to implement write mode
* Added new event type for locked cards in order to simplify state flow
* New logic for poller write commands
* Scenes adjustments
* Scenes renamed
* New field added to poller instance
* Now we write in 'page per call' mode
* Now function takes callback return value into account
* Callback will be called only in write mode
* Event type added
* Log adjusted and start page to write set
* Logs added and check in now false at start, then it moves to true
* Now mf_ultralight_poller_handler_request_write_data halts card in case of check failure and stops poller
* All fail events now returns NfcCommandStop callback
* In case of fail we move back properly
* Remove garbage

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2023-12-02 13:45:47 +09:00
Augusto Zanellato
c1e0d02afc
ST25TB poller refining + write support (#3239)
* nfc: st25tb: rework async poller
* nfc: st25tb: introduce sync poller
* nfc: st25tb: add write support
* nfc: st25tb: rewrite poller to use better states
* nfc: st25tb: move to mode request state after success
* nfc: st25tb: minor bug fixes
* type wasn't properly set on ready event
* sending NfcCustomEventPollerFailure on St25tbPollerEventTypeFailure caused poller to being freed and ultimately resulted in a thread crash

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-12-01 18:42:00 +09:00
hedger
890c9e87ce
[FL-3690] Libraries cleanup; u2f crypto rework to use mbedtls (#3234)
* examples: plugins: utilize fal_embedded
* libs: removed fnv1a_hash
* furi: added FURI_PACKED; apps, libs: changed to use FURI_PACKED
* lib: mbedtls: using custom config
* lib: toolbox: removed md5, switched to mbedtls
* targets: f18: link fix
* lib: added mbedtls_cfg.h
* apps: nfc: explicit dependency on libmbedtls
* u2f: reworking to mbedtls
* u2f: replaced sha256 & hmac with mbedtls
* u2f: functional rework using mbedtls
* libs: dropped micro-ecc
* u2f: dropped old implementation
* toolbox: removed sha256 impl
* mcheck() for mbedtls
* libs: removed libmisc; split into smaller libs
* apps: debug: fixed display_test
* apps: include cleanups
* fbt: fixed VERSIONCOMSTR
* furi: added FURI_CHECK_RETURN
* lib: removed qrcode
* cleanup
* fbt: lint_py+format_py: fixed excessive command length
* api: Removed bzero from f7
* api: Removed bzero from f18
* Bump API Symbols

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-12-01 18:16:48 +09:00
RebornedBrain
1c3cbec661
[FL-3640] NFC: Felica UID emulation (#3190)
* Added basic template of Felica listener
* Raw nfc felica listener functions
* Added functions to setup chip for felica listener
* Cleanup function templates from unnecessary parts
* Removed todo comment
* Updated api versions
* Adjusted chip config for felica
* Set proper chip passive target mode for felica
* Added felica function to unit tests
* Update furi_hal_nfc_felica.c
* Removed duplication

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2023-11-26 17:10:33 +09:00
Sergey Gavrilov
4b3e8aba29
[FL-3664] 64k does not enough (#3216)
* Unit tests: add "exists" to furi_record tests
* Unit tests: mu_warn, storage 64k test
* Storage: read/write over 64k
* Unit tests: moar tests for storage r/w for >64k cases
* Apps, libs: replace uint16_t with size_t on storage r/w operations
* Unit tests: better data pattern, subghz: warning if transmission is prohibited

Co-authored-by: あく <alleteam@gmail.com>
2023-11-16 01:39:27 +09:00
Georgii Surkov
615a147973
[FL-3608] Fix iButton crash on missing file (#3210)
Co-authored-by: あく <alleteam@gmail.com>
2023-11-15 17:45:41 +09:00
gornekich
c00776ca22
[FL-3666] NFC API improvements (#3214)
* drivers: expose st25r3916 driver API
* nfc poller: add start with custom callback
* mf classic: rework sync API with poller custom start
* mf ultralight: rework sync API with poller custom start
* iso14443_3a poller: remove unused col res state
* nfc: rework nfc poller custom start
* mf ultralight: rename sync API
* mf classic: rename sync API
* iso14443-3a: rename sync API
* nfc: remove async prefix in internal functions
* nfc: expose internal API
* nfc: fix sync api include and docs
* targets: fix f18 build
* nfc: rework NfcGenericEventEx type
* nfc poller: add documentation
* iso14443-3a poller: add documentation
* felica poller: add documentation
* iso14443_3b poller: add documentation
* so14443_4a poller: add documentation
* iso14443_4b poller: add documentation
* iso15693 poller: add documentation
* slix poller: add documentation
* mf desfire poller: add documentation
* mf ultralight poller: fix API and add documentation
* mf classic poller: add documentation

Co-authored-by: あく <alleteam@gmail.com>
2023-11-15 17:32:45 +09:00
Georgii Surkov
49dcf81743
[FL-3618] Infrared remote button index support (#3180)
* Do not load all signals at once (Draft)
* Minor cleanup
* Refactor remote renaming
* Improve function signatures
* Rename infrared_remote functions
* Optimise signal loading
* Implement adding signals to remote
* Add read_name() method
* Deprecate a function
* Partially implement deleting signals (draft)
* Use m-array instead of m-list for signal name directory
* Use plain C strings instead of furi_string
* Implement deleting signals
* Implement deleting signals via generalised callback
* Implement renaming signals
* Rename some types
* Some more renaming
* Remove unused type
* Implement inserting signals (internal use)
* Improve InfraredMoveView
* Send an event to move a signal
* Remove unused type
* Implement moving signals
* Implement creating new remotes with one signal
* Un-deprecate and rename a function
* Add InfraredRemote API docs
* Add InfraredSignal API docs
* Better error messages
* Show progress pop-up when moving buttons in a remote
* Copy labels to the InfraredMoveView to avoid pointer invalidation
* Improve file selection scene
* Show progress pop-up when renaming buttons in a remote
* Refactor a scene
* Show progress when deleting a button from remote
* Use a random name for temp files
* Add docs to infrared_brute_force.h
* Rename Infrared type to InfraredApp
* Add docs to infrared_app_i.h
* Deliver event data via a callback
* Bundle event data together with event type
* Change DataExchange behaviour
* Adapt RPC debug app to new API
* Remove rogue output
* Add Doxygen comments to rpc_app.h
* Simplify rpc_app.c code
* Remove superflous parameter
* Do not allocate protobuf messages on the stack
* Fix GetError response
* Support for button indices
* Comment out shallow submodules
* Fix F18 api
* Fix logical error and add more debug output
* fbt: testing unshallow for protobuf
* github: lint&checks: unshallow prior to checks
* Fix a TODO
* github: do not unshallow the unshallowed
* fbt: assets: only attempt to unshallow if cannot describe
* Do not use the name when loading a signal by index (duh)
* Simplify loading infrared signals by name
* Sync with protobuf release
* Infrared: use compact furi_crash macros

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-11-10 16:22:34 +09:00
Georgii Surkov
0131eb3aa2
[FL-3656] Fix crash when exiting write mode (#3191) 2023-11-02 22:10:16 +09:00