Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NFC: Add support for Gen4 "ultimate card" in Magic app #2238

Merged
merged 25 commits into from
May 25, 2023

Conversation

nullableVoidPtr
Copy link
Contributor

@nullableVoidPtr nullableVoidPtr commented Jan 2, 2023

What's new

  • Add functionality to the nfc_magic for Gen4 magic cards
    • Write Mifare Classic 1k/4k or Ultralight
    • Change password
    • Wipe
  • Restructure app GUI to accommodate for multiple magic card types
  • Refactor NFC Magic worker code
  • Define NfcMagicDevice struct to hold magic device information

Verification

  • I verified all functions (check, write, wipe, change passwords) with my own magic devices (Gen1A keyfob and Gen4 card)

Checklist (For Reviewer)

  • PR has description of feature/bug or link to Confluence/Jira task
  • Description contains actions to verify feature/bugfix
  • I've built this code, uploaded it to the device and verified feature/bugfix

@nullableVoidPtr nullableVoidPtr marked this pull request as ready for review January 2, 2023 12:35
@rozetkinrobot
Copy link

rozetkinrobot commented Jan 3, 2023

Not working with my Gen4 Card because of 2 problems:

  1. Can't select 7uid/4k card dump (on-screen "Gen1 only supports 4 bytes UID Mifare classic 1k", but there is Gen4 card)
  2. Using furi_hal_nfc_detect at nfc_magic_worker_write produces an infinity loop of card detection (like in firmware nfc app), so writing dump to the card is impossible

@nullableVoidPtr
Copy link
Contributor Author

1. Can't select 7uid/4k card  dump (on-screen "Gen1 only supports 4 bytes UID Mifare classic 1k", but there is Gen4 card)

Could you provide more details of the dump? Is it an Ultralight dump, or a Classic with 7 UID? The error message also needs to be more specific so I'll get around to improving that.

2. Using furi_hal_nfc_detect at nfc_magic_worker_write produces an infinity loop of card detection (like in firmware nfc app), so writing dump to the card is impossible

Assuming it's already detected as Gen 4 GTU at the read screen, I can only guess that the same CUID check fails (which in hindsight I should have made clear in the GUI), although this is behavior which I never observed with my magic card that I tested this with. Which supplier did you get your card from?

@eliecharra
Copy link

I tried this PR locally, and yeah it seems that we cannot write Mifare classic 1K with 7 bytes UID.

Screenshot-20230105-195152

It is working well with a 4 byte dump for me, no infinite loop.

Thanks for adding gen 4 support 👍🏻

@skotopes skotopes added NFC NFC-related New Feature Contains an IMPLEMENTATION of a new feature labels Jan 6, 2023
@skotopes
Copy link
Member

skotopes commented Jan 6, 2023

@gornekich can you take a look?

@rozetkinrobot
Copy link

I can only guess that the same CUID check fails (which in hindsight I should have made clear in the GUI)

No, I checked, and it stops on calling furi_hal_nfc_detect(&nfc_data, 200), not on CUID check. For same reason, this card cannot be readed through the NFC application.

It's card from proxgrind store on Aliexpress.

@nullableVoidPtr
Copy link
Contributor Author

No, I checked, and it stops on calling furi_hal_nfc_detect(&nfc_data, 200), not on CUID check. For same reason, this card cannot be readed through the NFC application.

Sorry that I misunderstood you at first and thanks for debugging for me! I don't have access to a WiFi dev board or any other means to debug "properly".
It may be the case that the card is misconfigured with an incorrect parameters (combination of ATQA + SAK and configured UID length) and the "normal" anti-collision/card-activation sequence fails. In your case, the card is probably activated at one cascade level, but the Flipper Zero is now expecting a response for higher cascade level since it has calculated it from the SAK value, but it's hard to know for sure without further debugging into RFAL.

If you have a Proxmark, please refer to this to see if you can restore your card such that the main NFC reader app can read it. Use -k to keep the field so you can reconfigure your card:

hf 14a config --atqa force --bcc ignore --cl2 force --cl3 skip --rats skip
hf 14a reader -k

With this you are essentially forcing activation of a card to a certain cascade level (try 1 then 2 then 3) while ignoring ATQA and SAK. You can test if the card is activated after a select attempt using this raw command:

hf 14a raw -s -c -t 1000 CF00000000C6

The above assumes a default password of 00000000, but if you have really lost the backdoor password to your magic card, then there is no way to recover this.

@rozetkinrobot
Copy link

rozetkinrobot commented Jan 9, 2023

In your case, the card is probably activated at one cascade level, but the Flipper Zero is now expecting a response for higher cascade level since it has calculated it from the SAK value, but it's hard to know for sure without further debugging into RFAL.

In my case, there is really a problem at the anticollision stage. Flipper's trace debug:

501339980 [T][FuriHalNfc] State change 0 -> 10
501340118 [T][FuriHalNfc] State change 10 -> 11
501340132 [T][FuriHalNfc] State change 11 -> 34
501340135 [T][FuriHalNfc] State change 34 -> 2
501340138 [T][FuriHalNfc] State change 2 -> 10
501340231 [T][FuriHalNfc] State change 10 -> 11
501340245 [T][FuriHalNfc] State change 11 -> 34
501340248 [T][FuriHalNfc] State change 34 -> 2
501340251 [T][FuriHalNfc] State change 2 -> 10
501340277 [T][FuriHalNfc] Timeout

According to rfal_nfc.h there is a broken sequence: RFAL_NFC_STATE_NOTINIT -> RFAL_NFC_STATE_POLL_TECHDETECT -> RFAL_NFC_STATE_POLL_COLAVOIDANCE -> RFAL_NFC_STATE_DEACTIVATION

The card works correctly on all my devices except Flipper Zero (I tested it on 2 flippers). I tried to reconfigure the card, but it does not help. My guess is there is a problem in that fact, that card responds to 14a and 14b protocol commands at the same time.

I would be very grateful if you could help me in debugging and fixing this problem.

There is a trace of proxmark's hf 14a sniff:

      Start |        End | Src | Data (! denotes parity error)                                           | CRC | Annotation
------------+------------+-----+-------------------------------------------------------------------------+-----+--------------------
          0 |        992 | Rdr |52                                                                       |     | 
       2260 |       4628 | Tag |04  00                                                                   |     | 
      36240 |      41008 | Rdr |50  00  57  cd                                                           |     | 
    1219408 |    1220400 | Rdr |52                                                                       |     | 
    1544848 |    1545840 | Rdr |52                                                                       |     | 
    1547092 |    1549460 | Tag |04  00                                                                   |     | 
    1581088 |    1585856 | Rdr |50  00  57  cd                                                           |     | 
    2765232 |    2766224 | Rdr |52                                                                       |     | 
    3090656 |    3091648 | Rdr |52                                                                       |     | 
    3092916 |    3095284 | Tag |04  00                                                                   |     | 
    3126896 |    3131664 | Rdr |50  00  57  cd                                                           |     | 
    5342528 |    5343520 | Rdr |52                                                                       |     | 
    5344772 |    5347140 | Tag |04  00                                                                   |     | 
    5378752 |    5383520 | Rdr |50  00  57  cd                                                           |     | 
    6561968 |    6562960 | Rdr |52                                                                       |     | 
    6887408 |    6888400 | Rdr |52                                                                       |     | 
    6889652 |    6892020 | Tag |04  00                                                                   |     | 
    6923648 |    6928416 | Rdr |50  00  57  cd                                                           |     | 
    8162048 |    8163040 | Rdr |52                                                                       |     | 

hf 14b sniff:

      Start |        End | Src | Data (! denotes parity error)                                           | CRC | Annotation
------------+------------+-----+-------------------------------------------------------------------------+-----+--------------------
          0 |       3092 | Rdr |05  00  00  71  ff                                                       |     | 
 4294942868 |      34964 | Tag |50! 00! 01  02  03! 00! e9  b7! ff! 75  6d  af! 34  22!                  |     | 
     839428 |     842516 | Rdr |06  00  97  5b                                                           |     | 
    1441728 |    1444820 | Rdr |05  00  00  71  ff                                                       |     | 
    1417300 |    1476692 | Tag |50! 00! 01  02  03! 00! e9  b7! ff! 75  6d  af! 34  22!                  |     | 
    2254244 |    2257332 | Rdr |06  00  97  5b                                                           |     | 
    4483360 |    4486452 | Rdr |05  00  00  71  ff                                                       |     | 
    4458964 |    4518356 | Tag |50! 00! 01  02  03! 00! e9  b7! ff! 75  6d  af! 34  22!                  |     | 
    5295716 |    5298804 | Rdr |06  00  97  5b                                                           |     | 
    5851680 |    5854772 | Rdr |05  00  00  71  ff                                                       |     | 

@skynet01
Copy link

skynet01 commented Jan 27, 2023

I can confirm that selecting 7uid/4k card dump doesn't let you write it. Also an issue with NTAG I2C 2K PLUS card. It writes the card but then the card shows up as Mifare Classic with uid 1111111.
My card is from 401lab.

You can test this (along with other cards) by using the stock nfc app to generate blank cards of different variety (most worked for me). Thank you again for making this!

Small tweak request: when selecting write option it would be nice if it would take you to the nfc folder by default. Also would be awesome to be able to have other features like shadow mode or be able to set other parameters like SAK, ATS etc.

@nullableVoidPtr
Copy link
Contributor Author

I have made a small change which should allow 7-byte UIDs.
@rozetkinrobot I can't quite figure out what's going on, the code should mostly work with NFC-A unless I'm missing something. Your sniff using a proxmark is a simple WUPA which is being responded to with what appears to be a normal ATQA, at which point the reader issues a HLTA. Can you do a proper read, trying to read the ATQA, SAK, and full UID using the proxmark?

@skynet01
Copy link

I have made a small change which should allow 7-byte UIDs.

That's awesome! Any idea why NTAG I2C 2K PLUS does not get written properly? Also I noticed that wipe command does not work if something incorrect is written, for example if you write Ntag i2c 2k plus blank card (generated by NFC app) you can't wipe the card anymore as it's not being detected properly (proxmark3 wipes it fine without issues).

Maybe just adding a timeout to Authenticate 4gen scanning screen? if detection fails it gives you an option to force wipe the card (could also be a footer button screen option)?

@gornekich
Copy link
Member

gornekich commented Jan 30, 2023

Hi @nullableVoidPtr . Thanks for PR!
I am waiting for Gen4 card to test your PR. I might take some time...

By the way, is your PR WIP or it's ready for review? In case it's WIP, please convert it to draft

@nullableVoidPtr nullableVoidPtr marked this pull request as draft January 30, 2023 14:56
@nullableVoidPtr
Copy link
Contributor Author

I've made it a draft pending NTAG-writing issues and fleshing out GUI error reporting. I've ensured that something as simple as UL11 works by writing an NFC file and comparing differences between the original and a card read.

@nullableVoidPtr
Copy link
Contributor Author

nullableVoidPtr commented Feb 4, 2023

Also I noticed that wipe command does not work if something incorrect is written, for example if you write Ntag i2c 2k plus blank card

Wipe is rather slow as I'm (admittedly, very stupidly) overwriting every sector to the card to reset back to a MIFARE 4K. For whatever reason, the current code doesn't change the state of the wipe scene to "Card Found" upon finding a card, but I can confirm that wiping a card with I2C Plus 2K data works, just takes a while and is not visible.

I'll still need to figure out that, and why NTAG isn't quite working though. My proxmark appears to have read the card up to CL2 successfully but the 7 byte UID is all zero for whatever reason, just the ATQA and SAK appear to work fine.

@superswiegie
Copy link

I have made a small change which should allow 7-byte UIDs.
@rozetkinrobot I can't quite figure out what's going on, the code should mostly work with NFC-A unless I'm missing something. Your sniff using a proxmark is a simple WUPA which is being responded to with what appears to be a normal ATQA, at which point the reader issues a HLTA. Can you do a proper read, trying to read the ATQA, SAK, and full UID using the proxmark?

I'm super thankful for your support. Would love to write 7byte UID (finally). Could you tell me what the status is? Can I mail a 'maintainer'. to speed up the proces? Once more: Thanks for your contribution! I'm happy.

@skynet01
Copy link

+1 any updates on this. Willing to donate to this project to keep it going :)

@nullableVoidPtr nullableVoidPtr marked this pull request as ready for review May 7, 2023 13:11
@nullableVoidPtr
Copy link
Contributor Author

Ready for review now; I've deferred the NTAG I2C issue for later; it turns out the GTU card does not support the simpler I2C layout for first pages at all when determining its UID; the best it can do is send the corresponding ATQA and SAK. For any meaningful I2C emulation, the source data would have to be modified, specifically pages 0 and 1 to the different Ultralight layout, which may or may not effect anything which reads from the written I2C tag beyond anti-collision.

@skotopes skotopes marked this pull request as draft May 9, 2023 01:48
@skotopes
Copy link
Member

skotopes commented May 9, 2023

Un-draft when ready.

@nullableVoidPtr
Copy link
Contributor Author

Argh, looks like you don't trust sleep deprived code! The continues make card_found_notified kinda moot. I'll have to refactor how card found notifications work and retest all functionality.

@nullableVoidPtr nullableVoidPtr marked this pull request as ready for review May 15, 2023 12:14
@nullableVoidPtr
Copy link
Contributor Author

@skotopes bump: ready for review

@skotopes
Copy link
Member

image

@skotopes skotopes merged commit 490447b into flipperdevices:dev May 25, 2023
gornekich added a commit that referenced this pull request Jun 23, 2023
* fix typo in FuriHalDebuging.md (#2667)

* [FL-3317] fbt: allow strings for fap_version field in app manifests (#2672)

* [FL-3312] fix PIN retry count reset on reboot (#2671)

* api: added lib/nfc/protocols/nfc_util.h (#2674)

* Add new indexer (#2681)

* fbt: Use union for old py (#2685)

* fbt: Fix tar uid overflow when packaging (#2689)

* fbt: Fix tar uid overflow when packaging
* Fix trailing spaces

* [FL-3328] Removed user-specific data from tar artifacts (#2691)

* [FL-3327] Storage: common_rename is now POSIX compliant (#2693)

* Storage: common_rename is now POSIX compliant

* storage: check for success on storage_common_remove in file rename

---------

Co-authored-by: hedger <hedger@nanode.su>

* Services: remove deallocator for persistent services (#2692)

Co-authored-by: hedger <hedger@users.noreply.github.com>

* Storage, common_rename: check that old path is exists (#2698)

* Storage, common_rename: check that old path is exists
* Storage, common_rename: return correct status

* [FL-3315] Desktop,Rpc: desktop status subscription (#2696)

* Desktop,Rpc: desktop status subscription
* Desktop,RPC: properly handle unsubscribe

Co-authored-by: Sergey Gavrilov <who.just.the.doctor@gmail.com>

* ✨ Add fr-FR-mac key layout (#2666)

Co-authored-by: あく <alleteam@gmail.com>

* [FL-3322] Infrared: respect carrier frequency and duty cycle settings (#2677)

* Make infrared_worker respect carrier frequency and duty cycle
* Update comments

Co-authored-by: あく <alleteam@gmail.com>

* USB HID report timeout (#2682)

Co-authored-by: あく <alleteam@gmail.com>

* Add Airwell Prime DCI Series and match file style (#2686)

Co-authored-by: あく <alleteam@gmail.com>

* desktop: Refactor favorites settings and allow app browser in selection (#2687)

* desktop: Refactor favorites settings and allow app browser in selection
* desktop: Gate app browser entry add, just in case
* Desktop: simplify favorite application selection
* Desktop: refactor favorite application opening routine and cleanup code
* Desktop: handle exit from external application selection

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>

* NFC: Add support for Gen4 "ultimate card" in Magic app (#2238)

* NFC: gen4 gtu detect in magic app
* NFC: more support for GTU card
* NFC: Fix Gen1 in Magic
* Allow double UIDs for MFClassic on GTU cards
* NFC: Small magic app tweaks
* nfc magic: notify card event on wiping
* nfc magic: fix power consumption
* nfc magic: disable i2c writing and fix wipe loop
* NfcMagic: correct formatting in printf
* NfcMagic: correct formatting in printf, proper version
* nfc_magic: rework card found notification and gen4 wiping

Co-authored-by: あく <alleteam@gmail.com>

* nfc: Fix MFUL tearing flags read (#2669)

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

* api: added toolbox/api_lock.h (#2702)

Co-authored-by: あく <alleteam@gmail.com>

* Update ac.ir (#2701)

Co-authored-by: あく <alleteam@gmail.com>

* nfc: Mifare Ultralight C detection (#2668)

* nfc: Add Mifare Ultralight C detection
* nfc: Add display name for MFUL C and hide menu items
    MFUL C unlock and emulation currently not supported, so hide from menu
    if current card is MFUL C
* nfc: Also check response when probing 3DES auth
* nfc: Hide emulate option in saved menu for MFUL if not supported
* nfc: Remove unlock options from saved menu if Ultralight C


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

* [LRFID] Add support for Nexkey/Nexwatch (#2680)

* [LRFID] Add support for Nexkey/Nexwatch
* Update protocol_nexwatch.c: Remove unnecessary check

Co-authored-by: SG <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>

* Add Carrier 42QHB12D8S (#2707)

Co-authored-by: あく <alleteam@gmail.com>

* BadUSB: script execution pause (#2700)

Co-authored-by: あく <alleteam@gmail.com>

* Implement support for reading Opal card (Sydney, Australia) (#2683)

* Implement support for reading Opal card (Sydney, Australia)
* stub_parser_verify_read: used UNUSED macro
* furi_hal_rtc: expose calendaring as functions
* opal: use bit-packed struct to parse, rather than manually shifting about
* Update f18 api symbols

Co-authored-by: あく <alleteam@gmail.com>

* [FL-3295] FuriHal: add bus abstraction (#2614)

* FuriHal: add bus abstraction and port some subsystem to it
* Make PVS happy, cleanup code
* Update API symbols for f18
* F18: backport bus changes from f7
* Revert to STOP2 sleep mode
* Fix downgrading the firmware via updater
* Port iButton TIM1 to furi_hal_bus
* Port Infrared TIM1 and TIM2 to furi_hal_bus
* Just enable the timer bus
* Port furi_hal_pwm to bus API
* Fix include statement
* Port furi_hal_rfid to bus API
* Port furi_hal_subghz and others to bus API
* Remove unneeded include
* Improve furi_hal_infrared defines
* Reset LPTIM1 via furi_hal_bus API
* Crash when trying to enable an already enabled peripheral
* Better defines
* Improved checks
* Lots of macro wrappers
* Copy spi changes for f18
* Fix crashes in LFRFID system
* Fix crashes in NFC system
* Improve comments
* Create FuriHalBus.md
* Update FuriHalBus.md
* Fix crash when launching updater
* Documentation: couple small fixes in FuriHalBus
* FuriHal: fix copypaste in furi_hal_rfid_tim_reset
* FuriHal: reset radio core related peripherals on restart
* FuriHalBus: is enabled routine and bug fix for uart
* RFID HAL: accomodate furi hal bus

Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
Co-authored-by: SG <who.just.the.doctor@gmail.com>

* [FL-3330] fbt: added hooks for build & dist environments; added FW_ORIGIN_* macro for apps & SDK (#2705)

* fbt: added hooks for build & dist environments
* Moved env hooks to an optional file
* Fixed var name
* Added fw origin to device info
* Bumped device info version
* fbt: added FIRMWARE_ORIGIN option. Different implementation for FW_ORIGIN_* C macro.
* api: bumped versions
* fbt: added fbt_options_local.py
* gitignore: cleanup

Co-authored-by: あく <alleteam@gmail.com>

* [FL-3335] Dolphin: new animation (#2713)

* [FL-3340] SubGhz: fix flipper crashes after exiting broadcast blocking message and crash cli (#2714)

* NFC: Fix gen1 writing with invalid BCC (lost fix from PR #2511) (#2710)

Co-authored-by: あく <alleteam@gmail.com>

* Update dolphin.py (#2717)

Co-authored-by: あく <alleteam@gmail.com>

* NFC: fix MFC timings (#2719)

* digital signal: add optimization
* nfc test: more restrict tests
* digital signal: build as separate library
* digital signal: remove unused flags, format sources
* digital signal: fix cflag name
* target: fix build for f18 target

Co-authored-by: あく <alleteam@gmail.com>

* FuriHal: disable bus re-initialization on early init and extra asserts for AHB1,AHB2,AHB3 which must be left intact on entering to FUS (#2725)

* [DEVOPS-18]: Add map file parser, mariadb inserter (#2732)

* [FL-3293] FuriHal: add system setting to device info, bump device info version (#2736)

* [FL-3316] Settings: add contrast adjustment (#2737)

Co-authored-by: hedger <hedger@users.noreply.github.com>

* [FL-3213] f7: add PB9 to debug pins (#2738)

Co-authored-by: hedger <hedger@users.noreply.github.com>

* [FL-3352] Dolphin: new animation (#2735)

Co-authored-by: hedger <hedger@users.noreply.github.com>

* [FL-2872] Remove unused resources  (#2740)

Co-authored-by: hedger <hedger@users.noreply.github.com>

* Serial_CLI: Fixing serial cli logger error so it sounds more concise (#2721)

Co-authored-by: hedger <hedger@users.noreply.github.com>

* Furi: smaller critical enter and critical exit macro (#2716)

* Furi: smaller critical enter and critical exit macro
* api: bumped version

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>

* [FL-3331] SubGhz: add subghz_protocol_registry external API (#2712)

* [FL-3331] SubGhz: add subghz_protocol_registry external API

* F18: fix API version

---------

Co-authored-by: hedger <hedger@nanode.su>

* [FL-3045] Fix core2 permisions (#2742)

* Fix core2 permisions

* Fix Python code style

* scripts: copro: changed int literals

* scripts: copro: shorter string line in code

---------

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>

* [FL-3246] fbt, ufbt: added checks for appid in app manifests(#2720)

Co-authored-by: あく <alleteam@gmail.com>

* Map parser licence description (#2739)

* Add map parser licence description
* Add map parser copyright text & licence note

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>

* [FL-3346] fbt: added Flipper selection when multiple are connected over USB (#2723)

* fbt: added Flipper selection when multiple are connected over USB
* scripts: serial_cli: added --port (-p) option

* added ISO15693 (NfcV) reading, saving, emulating and revealing from privacy mode (unlock) (#2316)

* added support for ISO15693 (NfcV) emulation, added support for reading SLIX tags
* SLIX: fixed crash situation when an invalid password was requested
* ISO15693: show emulate menu when opening file
* rename NfcV emulate scene to match other NfcV names
* optimize allocation size for signals
* ISO15693: further optimizations of allocation and free code
* ISO15693: reduce latency on state machine reset
* respond with block security status when option flag is set
* increased maximum memory size to match standard
  added security status handling/load/save
  added SELECT/QUIET handling
  more fine grained allocation routines and checks
  fix memset sizes
* added "Listen NfcV Reader" to sniff traffic from reader to card
* added correct description to delete menu
* also added DSFID/AFI handling and locking
* increase sniff log size
* scale NfcV frequency a bit, add echo mode, fix signal level at the end
* use symbolic modulated/unmodulated GPIO levels
* honor AFI field, decrease verbosity and removed debug code
* refactor defines for less namespace pollution by using NFCV_ prefixes
* correct an oversight that original cards return an generic error when addressing outside block range
* use inverse modulation, increasing readable range significantly
* rework and better document nfc chip initialization
* nfcv code review fixes
* Disable accidentally left on signal debug gpio output
* Improve NFCV Read/Info GUIs. Authored by @xMasterX, committed by @nvx
* Fix crash that occurs when you exit from NFCV emulation and start it again. Authored by @xMasterX, committed by @nvx
* Remove delay from emulation loop. This improves compatibility when the reader is Android.
* Lib: digital signal debug output pin info

Co-authored-by: Tiernan Messmer <tiernan.messmer@gmail.com>
Co-authored-by: MX <10697207+xMasterX@users.noreply.github.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>

* [FL-3351] github: re-enabled f18 build (#2743)

* github: re-enabled f18 build
* scripts: storage: better transfer logging
* Fix PVS warnings

Co-authored-by: あく <alleteam@gmail.com>

* Scripts: WiFi board updater (#2625)

* Scripts: wifi updater
* WiFi board updater: lint, process download error
* WiFi board updater: auto cleanup temp dir
* Scripts: fix server address

* [FL-3267] ble: refactored bt gatt characteristics setup (#2587)

* ble: refactored bt gatt characteristics setup
* ble: naming fixes, small optimizations
* ble: expanded bitfields; fixed pvs warnings
* ble: fixed pvs warnings for real
* ble: using FlipperGattCharacteristicDataPropsFixed for char[] props
* ble: removed flipper_gatt_characteristic_props_const_char
* ble: gatt: naming changes
* ble: gatt: fixed device_info service constant attrs sizes
* ble: gatt: copy descriptors to char instances; reworked hid chars to be callback-based; moved max size getter to callback with NULL data; added comments
* ble: gatt: removed hid_svc_report_data_callback
* ble: hid svc: better double loop idx naming
* ble: hid svc: simplified hid_svc_update_info
* ble: gatt: removed magic values; fixed type for HidSvcGattCharacteristicInfo
* ble: gatt: moved long uuids to separate files

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

* [FL-3359] github: added debugapps artifact; packaging resources per-target (#2750)

* github: added debugapps artifact; packaging resources per-target
* github: target name fixes
* github: fixed path for debug apps
* scripts: dist: removed lib stub artifact
* scripts: fixed broken SDK
* github: removed unused step

* FuriHal: always clock SMPS from HSI (#2643)

* FuriHal: always clock SMPS from HSI

* FuriHal: add clock startup time check, ensure that we conform to core2 config value

* FuriHal: set sleep mode to legacy if clock startup time is too high

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>

* Core2, SRAM2: provide safety gap (#2754)

* Core2, SRAM2: use ob, provide safety gap
* thread: comment about critical section and scheduler state

* Services: simplify api (#2540)

Co-authored-by: あく <alleteam@gmail.com>

* weather_station: add oregon3 with THGR221 (#2748)

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>

* [FL-3361] fbt: stable build dates (#2751)

* scripts: using commit date for clean build timestamp; current day otherwise
* scripts: version: Removing GIT_COMMIT_DATE from final data

Co-authored-by: あく <alleteam@gmail.com>

* [FL-3284] Fix reading Mifare Classic cards with unusual access conditions and fix emulation of unknown keys (#2620)

* I was outplayed by the C programming language
* Fix emulating empty keys as 0s
* Add exceptions for Detect Reader
* Sync api_symbols.csv for F18
* Outplayed by the C language [X2]

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>

* FuriHal: remove clock startup time tracking from clean builds (#2764)

* furi_hal_nfc: fix rfalTransceiveBitsBlockingTx's 4th argument to bits count rather than bytes count (#2773)

* [FL-3376] Fixed GATT attribute order  (#2776)

* hal: gatt: swapped rx/tx serial chars order
* hal: gatt: reordered HID attrs to maintain previous order

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>

* Debug: sync apps on attach, makes it possible to debug already started app that has crashed (#2778)

* hal nfc: add bus handling

* nfc hal: fix timers work

* nfc app: move old nfc suctom events

---------

Co-authored-by: end-me-please <90796271+end-me-please@users.noreply.github.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: Max Andreev <drunkbatya.js@gmail.com>
Co-authored-by: MX <10697207+xMasterX@users.noreply.github.com>
Co-authored-by: Yukai Li <GMMan@users.noreply.github.com>
Co-authored-by: Sergey Gavrilov <who.just.the.doctor@gmail.com>
Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: Félix Legrelle <legrelle.f@gmail.com>
Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
Co-authored-by: Nikolay Minaylov <nm29719@gmail.com>
Co-authored-by: minchogaydarov <134236905+minchogaydarov@users.noreply.github.com>
Co-authored-by: Avery <30564701+nullableVoidPtr@users.noreply.github.com>
Co-authored-by: technobulb <84107091+technobulb@users.noreply.github.com>
Co-authored-by: Sebastian Mauer <mauimauer@gmail.com>
Co-authored-by: micolous <micolous+gh@gmail.com>
Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: Skorpionm <85568270+Skorpionm@users.noreply.github.com>
Co-authored-by: AloneLiberty <111039319+AloneLiberty@users.noreply.github.com>
Co-authored-by: Zoë Prosvetova <109866245+ZoeMeetAgain@users.noreply.github.com>
Co-authored-by: Astra <93453568+Astrrra@users.noreply.github.com>
Co-authored-by: DEXV <89728480+DXVVAY@users.noreply.github.com>
Co-authored-by: glebmashanov <65850300+glebmashanov@users.noreply.github.com>
Co-authored-by: g3gg0.de <git@g3gg0.de>
Co-authored-by: Tiernan Messmer <tiernan.messmer@gmail.com>
Co-authored-by: clashlab <nicolabriet@gmail.com>
Co-authored-by: Leopold <leommxj@gmail.com>
@CasseThor
Copy link

Same problem, buy ultimate card gen4 on lab401.com with latest flipper zero
cant write card (bip and redlight) (uid with 7byte) and doesn't detect card if i want wipe it !

gornekich added a commit that referenced this pull request Jul 1, 2023
* fix typo in FuriHalDebuging.md (#2667)

* [FL-3317] fbt: allow strings for fap_version field in app manifests (#2672)

* [FL-3312] fix PIN retry count reset on reboot (#2671)

* api: added lib/nfc/protocols/nfc_util.h (#2674)

* Add new indexer (#2681)

* fbt: Use union for old py (#2685)

* fbt: Fix tar uid overflow when packaging (#2689)

* fbt: Fix tar uid overflow when packaging
* Fix trailing spaces

* [FL-3328] Removed user-specific data from tar artifacts (#2691)

* [FL-3327] Storage: common_rename is now POSIX compliant (#2693)

* Storage: common_rename is now POSIX compliant

* storage: check for success on storage_common_remove in file rename

---------

Co-authored-by: hedger <hedger@nanode.su>

* Services: remove deallocator for persistent services (#2692)

Co-authored-by: hedger <hedger@users.noreply.github.com>

* Storage, common_rename: check that old path is exists (#2698)

* Storage, common_rename: check that old path is exists
* Storage, common_rename: return correct status

* [FL-3315] Desktop,Rpc: desktop status subscription (#2696)

* Desktop,Rpc: desktop status subscription
* Desktop,RPC: properly handle unsubscribe

Co-authored-by: Sergey Gavrilov <who.just.the.doctor@gmail.com>

* ✨ Add fr-FR-mac key layout (#2666)

Co-authored-by: あく <alleteam@gmail.com>

* [FL-3322] Infrared: respect carrier frequency and duty cycle settings (#2677)

* Make infrared_worker respect carrier frequency and duty cycle
* Update comments

Co-authored-by: あく <alleteam@gmail.com>

* USB HID report timeout (#2682)

Co-authored-by: あく <alleteam@gmail.com>

* Add Airwell Prime DCI Series and match file style (#2686)

Co-authored-by: あく <alleteam@gmail.com>

* desktop: Refactor favorites settings and allow app browser in selection (#2687)

* desktop: Refactor favorites settings and allow app browser in selection
* desktop: Gate app browser entry add, just in case
* Desktop: simplify favorite application selection
* Desktop: refactor favorite application opening routine and cleanup code
* Desktop: handle exit from external application selection

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>

* NFC: Add support for Gen4 "ultimate card" in Magic app (#2238)

* NFC: gen4 gtu detect in magic app
* NFC: more support for GTU card
* NFC: Fix Gen1 in Magic
* Allow double UIDs for MFClassic on GTU cards
* NFC: Small magic app tweaks
* nfc magic: notify card event on wiping
* nfc magic: fix power consumption
* nfc magic: disable i2c writing and fix wipe loop
* NfcMagic: correct formatting in printf
* NfcMagic: correct formatting in printf, proper version
* nfc_magic: rework card found notification and gen4 wiping

Co-authored-by: あく <alleteam@gmail.com>

* nfc: Fix MFUL tearing flags read (#2669)

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

* api: added toolbox/api_lock.h (#2702)

Co-authored-by: あく <alleteam@gmail.com>

* Update ac.ir (#2701)

Co-authored-by: あく <alleteam@gmail.com>

* nfc: Mifare Ultralight C detection (#2668)

* nfc: Add Mifare Ultralight C detection
* nfc: Add display name for MFUL C and hide menu items
    MFUL C unlock and emulation currently not supported, so hide from menu
    if current card is MFUL C
* nfc: Also check response when probing 3DES auth
* nfc: Hide emulate option in saved menu for MFUL if not supported
* nfc: Remove unlock options from saved menu if Ultralight C


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

* [LRFID] Add support for Nexkey/Nexwatch (#2680)

* [LRFID] Add support for Nexkey/Nexwatch
* Update protocol_nexwatch.c: Remove unnecessary check

Co-authored-by: SG <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>

* Add Carrier 42QHB12D8S (#2707)

Co-authored-by: あく <alleteam@gmail.com>

* BadUSB: script execution pause (#2700)

Co-authored-by: あく <alleteam@gmail.com>

* Implement support for reading Opal card (Sydney, Australia) (#2683)

* Implement support for reading Opal card (Sydney, Australia)
* stub_parser_verify_read: used UNUSED macro
* furi_hal_rtc: expose calendaring as functions
* opal: use bit-packed struct to parse, rather than manually shifting about
* Update f18 api symbols

Co-authored-by: あく <alleteam@gmail.com>

* [FL-3295] FuriHal: add bus abstraction (#2614)

* FuriHal: add bus abstraction and port some subsystem to it
* Make PVS happy, cleanup code
* Update API symbols for f18
* F18: backport bus changes from f7
* Revert to STOP2 sleep mode
* Fix downgrading the firmware via updater
* Port iButton TIM1 to furi_hal_bus
* Port Infrared TIM1 and TIM2 to furi_hal_bus
* Just enable the timer bus
* Port furi_hal_pwm to bus API
* Fix include statement
* Port furi_hal_rfid to bus API
* Port furi_hal_subghz and others to bus API
* Remove unneeded include
* Improve furi_hal_infrared defines
* Reset LPTIM1 via furi_hal_bus API
* Crash when trying to enable an already enabled peripheral
* Better defines
* Improved checks
* Lots of macro wrappers
* Copy spi changes for f18
* Fix crashes in LFRFID system
* Fix crashes in NFC system
* Improve comments
* Create FuriHalBus.md
* Update FuriHalBus.md
* Fix crash when launching updater
* Documentation: couple small fixes in FuriHalBus
* FuriHal: fix copypaste in furi_hal_rfid_tim_reset
* FuriHal: reset radio core related peripherals on restart
* FuriHalBus: is enabled routine and bug fix for uart
* RFID HAL: accomodate furi hal bus

Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
Co-authored-by: SG <who.just.the.doctor@gmail.com>

* [FL-3330] fbt: added hooks for build & dist environments; added FW_ORIGIN_* macro for apps & SDK (#2705)

* fbt: added hooks for build & dist environments
* Moved env hooks to an optional file
* Fixed var name
* Added fw origin to device info
* Bumped device info version
* fbt: added FIRMWARE_ORIGIN option. Different implementation for FW_ORIGIN_* C macro.
* api: bumped versions
* fbt: added fbt_options_local.py
* gitignore: cleanup

Co-authored-by: あく <alleteam@gmail.com>

* [FL-3335] Dolphin: new animation (#2713)

* [FL-3340] SubGhz: fix flipper crashes after exiting broadcast blocking message and crash cli (#2714)

* NFC: Fix gen1 writing with invalid BCC (lost fix from PR #2511) (#2710)

Co-authored-by: あく <alleteam@gmail.com>

* Update dolphin.py (#2717)

Co-authored-by: あく <alleteam@gmail.com>

* NFC: fix MFC timings (#2719)

* digital signal: add optimization
* nfc test: more restrict tests
* digital signal: build as separate library
* digital signal: remove unused flags, format sources
* digital signal: fix cflag name
* target: fix build for f18 target

Co-authored-by: あく <alleteam@gmail.com>

* FuriHal: disable bus re-initialization on early init and extra asserts for AHB1,AHB2,AHB3 which must be left intact on entering to FUS (#2725)

* [DEVOPS-18]: Add map file parser, mariadb inserter (#2732)

* [FL-3293] FuriHal: add system setting to device info, bump device info version (#2736)

* [FL-3316] Settings: add contrast adjustment (#2737)

Co-authored-by: hedger <hedger@users.noreply.github.com>

* [FL-3213] f7: add PB9 to debug pins (#2738)

Co-authored-by: hedger <hedger@users.noreply.github.com>

* [FL-3352] Dolphin: new animation (#2735)

Co-authored-by: hedger <hedger@users.noreply.github.com>

* [FL-2872] Remove unused resources  (#2740)

Co-authored-by: hedger <hedger@users.noreply.github.com>

* Serial_CLI: Fixing serial cli logger error so it sounds more concise (#2721)

Co-authored-by: hedger <hedger@users.noreply.github.com>

* Furi: smaller critical enter and critical exit macro (#2716)

* Furi: smaller critical enter and critical exit macro
* api: bumped version

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>

* [FL-3331] SubGhz: add subghz_protocol_registry external API (#2712)

* [FL-3331] SubGhz: add subghz_protocol_registry external API

* F18: fix API version

---------

Co-authored-by: hedger <hedger@nanode.su>

* [FL-3045] Fix core2 permisions (#2742)

* Fix core2 permisions

* Fix Python code style

* scripts: copro: changed int literals

* scripts: copro: shorter string line in code

---------

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>

* [FL-3246] fbt, ufbt: added checks for appid in app manifests(#2720)

Co-authored-by: あく <alleteam@gmail.com>

* Map parser licence description (#2739)

* Add map parser licence description
* Add map parser copyright text & licence note

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>

* [FL-3346] fbt: added Flipper selection when multiple are connected over USB (#2723)

* fbt: added Flipper selection when multiple are connected over USB
* scripts: serial_cli: added --port (-p) option

* added ISO15693 (NfcV) reading, saving, emulating and revealing from privacy mode (unlock) (#2316)

* added support for ISO15693 (NfcV) emulation, added support for reading SLIX tags
* SLIX: fixed crash situation when an invalid password was requested
* ISO15693: show emulate menu when opening file
* rename NfcV emulate scene to match other NfcV names
* optimize allocation size for signals
* ISO15693: further optimizations of allocation and free code
* ISO15693: reduce latency on state machine reset
* respond with block security status when option flag is set
* increased maximum memory size to match standard
  added security status handling/load/save
  added SELECT/QUIET handling
  more fine grained allocation routines and checks
  fix memset sizes
* added "Listen NfcV Reader" to sniff traffic from reader to card
* added correct description to delete menu
* also added DSFID/AFI handling and locking
* increase sniff log size
* scale NfcV frequency a bit, add echo mode, fix signal level at the end
* use symbolic modulated/unmodulated GPIO levels
* honor AFI field, decrease verbosity and removed debug code
* refactor defines for less namespace pollution by using NFCV_ prefixes
* correct an oversight that original cards return an generic error when addressing outside block range
* use inverse modulation, increasing readable range significantly
* rework and better document nfc chip initialization
* nfcv code review fixes
* Disable accidentally left on signal debug gpio output
* Improve NFCV Read/Info GUIs. Authored by @xMasterX, committed by @nvx
* Fix crash that occurs when you exit from NFCV emulation and start it again. Authored by @xMasterX, committed by @nvx
* Remove delay from emulation loop. This improves compatibility when the reader is Android.
* Lib: digital signal debug output pin info

Co-authored-by: Tiernan Messmer <tiernan.messmer@gmail.com>
Co-authored-by: MX <10697207+xMasterX@users.noreply.github.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>

* [FL-3351] github: re-enabled f18 build (#2743)

* github: re-enabled f18 build
* scripts: storage: better transfer logging
* Fix PVS warnings

Co-authored-by: あく <alleteam@gmail.com>

* Scripts: WiFi board updater (#2625)

* Scripts: wifi updater
* WiFi board updater: lint, process download error
* WiFi board updater: auto cleanup temp dir
* Scripts: fix server address

* [FL-3267] ble: refactored bt gatt characteristics setup (#2587)

* ble: refactored bt gatt characteristics setup
* ble: naming fixes, small optimizations
* ble: expanded bitfields; fixed pvs warnings
* ble: fixed pvs warnings for real
* ble: using FlipperGattCharacteristicDataPropsFixed for char[] props
* ble: removed flipper_gatt_characteristic_props_const_char
* ble: gatt: naming changes
* ble: gatt: fixed device_info service constant attrs sizes
* ble: gatt: copy descriptors to char instances; reworked hid chars to be callback-based; moved max size getter to callback with NULL data; added comments
* ble: gatt: removed hid_svc_report_data_callback
* ble: hid svc: better double loop idx naming
* ble: hid svc: simplified hid_svc_update_info
* ble: gatt: removed magic values; fixed type for HidSvcGattCharacteristicInfo
* ble: gatt: moved long uuids to separate files

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

* [FL-3359] github: added debugapps artifact; packaging resources per-target (#2750)

* github: added debugapps artifact; packaging resources per-target
* github: target name fixes
* github: fixed path for debug apps
* scripts: dist: removed lib stub artifact
* scripts: fixed broken SDK
* github: removed unused step

* FuriHal: always clock SMPS from HSI (#2643)

* FuriHal: always clock SMPS from HSI

* FuriHal: add clock startup time check, ensure that we conform to core2 config value

* FuriHal: set sleep mode to legacy if clock startup time is too high

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>

* Core2, SRAM2: provide safety gap (#2754)

* Core2, SRAM2: use ob, provide safety gap
* thread: comment about critical section and scheduler state

* Services: simplify api (#2540)

Co-authored-by: あく <alleteam@gmail.com>

* weather_station: add oregon3 with THGR221 (#2748)

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>

* [FL-3361] fbt: stable build dates (#2751)

* scripts: using commit date for clean build timestamp; current day otherwise
* scripts: version: Removing GIT_COMMIT_DATE from final data

Co-authored-by: あく <alleteam@gmail.com>

* [FL-3284] Fix reading Mifare Classic cards with unusual access conditions and fix emulation of unknown keys (#2620)

* I was outplayed by the C programming language
* Fix emulating empty keys as 0s
* Add exceptions for Detect Reader
* Sync api_symbols.csv for F18
* Outplayed by the C language [X2]

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>

* FuriHal: remove clock startup time tracking from clean builds (#2764)

* furi_hal_nfc: fix rfalTransceiveBitsBlockingTx's 4th argument to bits count rather than bytes count (#2773)

* [FL-3376] Fixed GATT attribute order  (#2776)

* hal: gatt: swapped rx/tx serial chars order
* hal: gatt: reordered HID attrs to maintain previous order

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>

* Debug: sync apps on attach, makes it possible to debug already started app that has crashed (#2778)

* [FL-2837][FL-3270] Loader refaptoring: second encounter (#2779)

* Core: rename internal FlipperApplication to FlipperInternalApplication
* FAP Loader: move load_name_and_icon to flipper_application library
* Loader menu: rework api
* View holder: move to gui service
* Loader: simple "loading" worker
* Loader: applications dialog
* Loader: fapping
* Update f18 api
* Apps: remove fap_loader
* Libs, flipper application: store args, rename thread allocation
* Loader: error handling
* Apps: use loader error handling
* Loader: documentation
* FBT: accomodate loader
* Loader: do not raise gui error if loader is locked
* Archive: accomodate loader
* Loader: fix loading message
* Flipper: drop some old dolphin legacy
* Loader: generalize error construction

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>

* [FL-3373] Scroll acceleration (#2784)

* Support for scroll acceleration
* Revert keyboard acceleration
* Add scroll acceleration to the text box
* Remove redundant code from the file manager input handler
* Archive: slightly better scrolling
* Gui,Archive: final version of accelerated scrolling

Co-authored-by: あく <alleteam@gmail.com>

* fix: make `dialog_file_browser_set_basic_options` initialize all fields (#2756)

* fix: make `dialog_file_browser_set_basic_options` initialize all fields
* fix(GH-2756): use alternative test for `test_dialog_file_browser_set_basic_options_should_init_all_fields`

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>

* Fix M*LIB usage (#2762)

* Fix M*LIB usage
* Fix oplist definition of SubGhzFrequencyAnalyzerLogItem
* Fix oplist definition of M_CSTR_DUP_OPLIST
* Remove dependency of furi_string_utf8_decode to the internal definition of string_unicode_t
* Replace obsolete macro M_IF_DEFAULT1 to M_DEFAULT_ARGS

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>

* Actions: unit_test and updater timeouts (#2807)

* added some extra timeouts, fixed duration of units run command and minor logging changes. No list_ports yet needed
* increased timeouts
* make pvs happy

---------

Co-authored-by: doomwastaken <k.volkov@flipperdevices.com>
Co-authored-by: SG <who.just.the.doctor@gmail.com>

* LF-RFID debug: make it work (#2793)

Co-authored-by: あく <alleteam@gmail.com>

* [FL-3386] Fast FAP Loader (#2790)

* FBT: build and add FastFAP(tm) sections
* Elf file: fast loading fap files. Really fast, like x15 times faster.
* fastfap.py: cleanup unused imports
* Toolchain: 23 version
* Elf File: remove log messages
* Scripts: fix file permissions
* FBT: explicit interpreter for fastfap invocation

Co-authored-by: あく <alleteam@gmail.com>

* [FL-3388] NFC/RFID detector  (#2795)

* Field_Validation: add driver fild_validation_rfid
* Field_Validation: add fild_validation_nfc
* Field_Presence: added field validation functions to furi_hal_nfc
* Field_Presence: added field validation functions to furi_hal_rfid
* Field_Presence: add "NFC/RFID detector" app
* Field_Presence: fix GUI "NFC/RFID detector"
* NFC/RFID detector: add auto turn on backlight when field is detected
* NFC/RFID detector: fix syntax errors
* ApiSymbols: fix incorrect name
* FuriHal: filed detect naming
* FieldDetector: fix grammar

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>

* Fix furi_hal_bus related crashes in plugins (#2799)

* Fix furi_hal_bus issues in plugins
* Rework pwm is running check
* ApiSymbols: update and sync targets

Co-authored-by: あく <alleteam@gmail.com>

* Fix fr-FR-mac keylayout (#2809)

Co-authored-by: あく <alleteam@gmail.com>

* Fix roll-over in file browser and archive (#2811)

* Add Mitsubishi MSZ-AP25VGK universal ac remote (#2800)

Co-authored-by: あく <alleteam@gmail.com>

* Added Power Button for an unknown Sharp Model (#2787)

Tested by me, i just asked if I can get the remote. Tested with the universal remote before and thought you would like to add the button data

Co-authored-by: あく <alleteam@gmail.com>

* NFC: Improvements to NFC Magic app (#2760)

Ability to write gen1b tags (ignore 0x43)
Ability to write gen1 7 byte UID tags
Fix detection of non magic cards

Co-authored-by: あく <alleteam@gmail.com>

* Keynote with vertical layout (#2794)

cherry pick from:
  * https://github.com/DarkFlippers/unleashed-firmware/pull/428/files
  * https://github.com/DarkFlippers/unleashed-firmware/pull/524/files
  Co-authored-by:
    * MX <10697207+xMasterX@users.noreply.github.com>
    * gid9798 <30450294+gid9798@users.noreply.github.com>

Co-authored-by: MX <10697207+xMasterX@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>

* SLIX2 emulation support / practical use for Dymo printers (#2783)

* improve digital_signal for longer packets, also clean up code
* added SLIX2 specific features like signature and unknown keys (for issue #2781), added WRITE_PASSWORD handling
* fix NfcV AFI selection
* when NFCV_CMD_READ_MULTI_BLOCK reads beyond memory end, return the maximum possible block's content
* added SLIX2 reading
* fix NXP SYSTEMINFO response check size
* capture the first received password if none was set before
* clear stored data before reading SLIX details renamed slix2_dump functions to slix2_read
* display card block size values as decimal

Co-authored-by: あく <alleteam@gmail.com>

* NFC: Fix key invalidation logic (#2782)

* NFC: Fix key invalidation logic
* NFC: Fix crash in CLI with empty response
* Fix incorrect key conversions
* Proper call to nfc_util

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: Astra <me@astrra.space>

* [FL-3211][FL-3212] Debug apps: speaker, uart_echo with baudrate (#2812)

* Music player: move music_worker to library
* Music player: drop cli
* Debug: speaker debug app
* Debug: baudrate arg in uart_echo app
* Libs: add music_worker to api
* Libs: add music_worker to targets linker_dependencies

Co-authored-by: あく <alleteam@gmail.com>

* increased timeouts (#2816)

Co-authored-by: doomwastaken <k.volkov@flipperdevices.com>

* Furi,FuriHal: various improvements (#2819)

* Lib: adjust default contrast for ERC displays

* Furi: various improvements in check module

* Format Sources

* FurHal: ble early hardfault detection

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>

* [FL-3375] SubGhz: add CC1101 module external (#2747)

* SubGhz: add CC1101 Ext driver
* SubGhz:  move TIM2 -> TIM17 use cc1101_ext
* FuriHal: SPI move channel DMA 3,4 -> 6.7
* Documentation: fix font
* SubGhz: add work with SubGhz devices by link to device
* SubGhz: add support switching external/internal cc1101 "subghz chat"
* SubGhz: add support switching external/internal cc1101 "subghz tx" and "subghz rx"
* SubGhz: add "Radio Settings" scene
* SubGhz: add icon
* SubGhz: add supported CC1101 external module in SubGhz app
* SubGhz: fix check frequency supported radio device
* SubGhz: fix clang-formatted
* Sughz: move dirver CC1101_Ext to lib , compile cmd ./fbt launch_app APPSRC=radio_device_cc1101_ext
* SubGhz: fix CLI
* SubGhz: fix PVS
* SubGhz: delete comments
* SubGhz: fix unit_test
* Format sources
* Update api symbols and drivers targets
* Drivers: find proper place for target option
* SubGhz: external device connected method naming
* Format sources
* SubGhz:  fix module selection menu, when external is not connected
* SubGhz: fix furi_assert(device);
* SubGhz: fix split h and c
* SubGhz: furi_hal_subghz remove preset load function by name
* SubGhz: deleted comments
* Format Sources
* SubGhz: add some consts and fix unit tests
* Sync API Symbols

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>

* fix width of submenu items on Vertical orientation (#2306)

* fix width of submenu items on vertical view
* Gui: slightly better canvas width handling in submenu
* Gui: remove unused include

Co-authored-by: あく <alleteam@gmail.com>

* SubGHz: properly working with missing external driver (#2821)

* all: revert incorrect changes

* nfc app: apply correct changes

* nfc: build fixes

---------

Co-authored-by: end-me-please <90796271+end-me-please@users.noreply.github.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: Max Andreev <drunkbatya.js@gmail.com>
Co-authored-by: MX <10697207+xMasterX@users.noreply.github.com>
Co-authored-by: Yukai Li <GMMan@users.noreply.github.com>
Co-authored-by: Sergey Gavrilov <who.just.the.doctor@gmail.com>
Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: Félix Legrelle <legrelle.f@gmail.com>
Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
Co-authored-by: Nikolay Minaylov <nm29719@gmail.com>
Co-authored-by: minchogaydarov <134236905+minchogaydarov@users.noreply.github.com>
Co-authored-by: Avery <30564701+nullableVoidPtr@users.noreply.github.com>
Co-authored-by: technobulb <84107091+technobulb@users.noreply.github.com>
Co-authored-by: Sebastian Mauer <mauimauer@gmail.com>
Co-authored-by: micolous <micolous+gh@gmail.com>
Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: Skorpionm <85568270+Skorpionm@users.noreply.github.com>
Co-authored-by: AloneLiberty <111039319+AloneLiberty@users.noreply.github.com>
Co-authored-by: Zoë Prosvetova <109866245+ZoeMeetAgain@users.noreply.github.com>
Co-authored-by: Astra <93453568+Astrrra@users.noreply.github.com>
Co-authored-by: DEXV <89728480+DXVVAY@users.noreply.github.com>
Co-authored-by: glebmashanov <65850300+glebmashanov@users.noreply.github.com>
Co-authored-by: g3gg0.de <git@g3gg0.de>
Co-authored-by: Tiernan Messmer <tiernan.messmer@gmail.com>
Co-authored-by: clashlab <nicolabriet@gmail.com>
Co-authored-by: Leopold <leommxj@gmail.com>
Co-authored-by: Petr Portnov | PROgrm_JARvis <gh@progrm-jarvis.ru>
Co-authored-by: PpHd <patrick.pelissier@gmail.com>
Co-authored-by: Konstantin Volkov <72250702+doomwastaken@users.noreply.github.com>
Co-authored-by: doomwastaken <k.volkov@flipperdevices.com>
Co-authored-by: Patrick Kilter <patrick.kilter@gmail.com>
Co-authored-by: Dmitry Zinin <admin@kami-no.ru>
Co-authored-by: Astra <me@astrra.space>
Co-authored-by: Slavik Nychkalo <slavik.nychkalo@gmail.com>
@skotopes
Copy link
Member

@CasseThor check latest version of the Magic app from catalog.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
New Feature Contains an IMPLEMENTATION of a new feature NFC NFC-related
Projects
None yet
Development

Successfully merging this pull request may close these issues.