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

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

Merged
merged 37 commits into from
Jun 8, 2023

Conversation

g3gg0
Copy link
Contributor

@g3gg0 g3gg0 commented Jan 17, 2023

What's new

This PR is related to #1991 (without all its history), built on top of #2070 (candidate for merge) and from a new branch.

  • Added NfcV through various layers
  • Added NfcV memory and system info reading
  • Added loading/saving/emulating
  • Added unlocking NfcV type NXP SLIX-L (reveal from privacy mode)
  • Usable for another module already in development by @nvx (picopass emulation)

This is a PR, being aware that:

  • rfalNfcv* calls are being made from lib/ level
  • Nfc code is undergoing a refactoring

Q: Might someone of the maintainers help touching some of the quesionable code sections, as i am still not very confident with
the inner workings etc?

I consider the code being good enough for a PR process, few reworking will have to be done. I you disagree, please tell.

regards,
g3gg0

@nemanjan00
Copy link
Contributor

READ_MULTI_BLOCKS seems to be broken:

Flipper:

        384 |      59264 | Rdr |62  23  ff  ff  ff  ff  00  00  07  e0  00  05  aa  eb                   |  ok | READ_MULTI_BLOCK(0-5)
      63296 |     177984 | Tag |00  12  34  56  78  90  12  34  56  78  90  12  34  56  78  90  12  34   |     | 
            |            |     |56  78  90  12  34  56  78  04  84                                       |  ok | 

Real card:
        384 |      59264 | Rdr |62  23  ff  ff  ff  ff  00  00  07  e0  00  05  aa  eb                   |  ok | READ_MULTI_BLOCK(0-5)
      63552 |     202816 | Tag |00  00  12  34  56  78  00  90  12  34  56  00  78  90  12  34  00  56   |     | 
            |            |     |78  90  12  00  34  56  78  90  00  12  34  56  78  55  31               |  ok | 

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jan 19, 2023

thanks, didn't notice and will have a look at it.

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jan 19, 2023

this is in unadressed mode:
grafik

here in adressed mode:
grafik

here with 1oo256 mode:
grafik

why is the custom bit set in your request?

@nemanjan00
Copy link
Contributor

20230120_00h53m48s_grim

Looks like you are missing block security status

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jan 19, 2023

from which datasheet are you citing?

@nemanjan00
Copy link
Contributor

BS_ISO_IEC_15693-3-2009__A2-2015.pdf

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jan 20, 2023

ah okay i have a quite old standard revision.
seems the block security status is requested when the custom flag is set (?)

need to find a latest datasheet. if someone knows where to find it -> git - at - g3gg0.de

@nemanjan00
Copy link
Contributor

Guessing you will probably write it better, but, anyway...

diff --git a/lib/nfc/protocols/nfcv.c b/lib/nfc/protocols/nfcv.c
index cc7f4ad5..2ffdd0ea 100644
--- a/lib/nfc/protocols/nfcv.c
+++ b/lib/nfc/protocols/nfcv.c
@@ -537,6 +537,29 @@ void nfcv_emu_handle_packet(
             nfcv_emu_send(
                 tx_rx, nfcv_data, ctx->response_buffer, 1, ctx->response_flags, ctx->send_time);
         } else {
+            if(ctx->command == ISO15693_READ_MULTI_BLOCK) {
+                ctx->response_buffer[0] = ISO15693_NOERROR;
+
+                for(int current_block = 0; current_block < blocks; current_block++) {
+                    memcpy(
+                        &ctx->response_buffer[1 + (1 + nfcv_data->block_size) * current_block + 1],
+                        &nfcv_data->data[nfcv_data->block_size * (block + current_block)],
+                        nfcv_data->block_size);
+
+                        ctx->response_buffer[1 + (1 + nfcv_data->block_size) * current_block] = 0;
+                }
+
+                nfcv_emu_send(
+                    tx_rx,
+                    nfcv_data,
+                    ctx->response_buffer,
+                    1 + (nfcv_data->block_size + 1) * blocks,
+                    ctx->response_flags,
+                    ctx->send_time);
+
+                break;
+            }
+
             ctx->response_buffer[0] = ISO15693_NOERROR;
             memcpy(
                 &ctx->response_buffer[1],

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jan 20, 2023

thanks, when trying a real SLIX-L it looks like that:
grafik

so if the custom bit is set, it seems the card will send the security status.
can you check the standard if this bit 6 (0x40) in the flags is set, the security status is prepended?

@nemanjan00
Copy link
Contributor

Yes, according to spec, Block security status is optional and depends on Option_flag

20230120_01h11m15s_grim

Also I have sent you email with spec pdf

@nemanjan00
Copy link
Contributor

Also, I assume TwoSubcarrier is not supported?

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jan 20, 2023

that is correct. this is not supported (yet).
see nfcv_emu_alloc() line 284
grafik
here i allocate the waveforms for high and low data rate.
subcarrier modulation would have to get added here.

@nemanjan00
Copy link
Contributor

Filetype: Flipper NFC device
Version: 3
# Nfc device type can be UID, Mifare Ultralight, Mifare Classic or ISO15693
Device type: ISO15693
# UID is common for all formats
UID: E0 07 00 00 FF FF FF FF
# Data Storage Format Identifier
DSFID: 00
# Application Family Identifier
AFI: 00
IC Reference: 01
# Number of memory blocks, usually 0 to 256
Block Count: 28
# Size of a single memory block, usually 4
Block Size: 04
Data Content: 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90 12 34 56 78 90 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
# Subtype of this card (0 = ISO15693, 1 = SLIX, 2 = SLIX-S, 3 = SLIX-L, 4 = SLIX2)
Subtype: 00
# End of ISO15693 parameters

Just in case you need sample I used that made PM3 use that flag

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jan 20, 2023

first/third real SLIX-L, second/fourth flipper
grafik

@nemanjan00
Copy link
Contributor

I use:

hf 15 rdmulti -* -b 0 --cnt 6

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jan 20, 2023

fixed that part, thanks a lot!

@nemanjan00
Copy link
Contributor

Thank you!

@nemanjan00
Copy link
Contributor

One of my readers causes Flipper to crash will NULL pointer when I open Log. I will be sniffing traffic tomorrow and sending more info

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jan 20, 2023

thanks. in the evening i will check where NULL dereference might have happened.

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jan 20, 2023

@nemanjan00
I pushed a few changes. maybe you can check if you still see crashes?
thanks!

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jan 20, 2023

One of my readers causes Flipper to crash will NULL pointer when I open Log. I will be sniffing traffic tomorrow and sending more info

this issue is also fixed. that was the case if the only received commands were addresses and the log was opened.

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jan 21, 2023

ok, added a few more optional commands, just to make it more complete.
not sure which systems use them, but now DSFID and AFI should be handled as the standard suggests.

@hedger hedger added NFC NFC-related UI Affects UI labels Jan 25, 2023
@skotopes
Copy link
Member

skotopes commented Jun 8, 2023

@g3gg0 that was some serious journey, my congratulations.

@skotopes skotopes merged commit c186d2b into flipperdevices:dev Jun 8, 2023
@team-orangeBlue
Copy link

and it's merged. cool!

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jun 8, 2023

wow, great!!
thanks a lot to you and all contributors!

C0n4r7157 referenced this pull request in C0n4r7157/Flipper-Xtreme Jun 8, 2023
* 'dev' of https://github.com/ClaraCrazy/Flipper-Xtreme: (102 commits)
  Add sanity checks for pin code validity
  Auto unlock rpc for u2f
  Scripts: WiFi board updater (#2625)
  [FL-3351] github: re-enabled f18 build (#2743)
  added ISO15693 (NfcV) reading, saving, emulating and revealing from privacy mode (unlock) (#2316)
  [FL-3346] fbt: added Flipper selection when multiple are connected over USB (#2723)
  Format
  Begone, uselessness!
  Connection go much brrr
  upd anims
  Update docs
  Rename and remove old apps
  bump ver
  Fix? I have no way to check if sensor still works
  Fix
  SCD30 Unitemp
  Remove broken modulation that was causing buffer Overrun
  Fix ProtoView issue Flipper-XFW#503
  Typo
  Add missing anims, fix butthurt values
  ...
@eychei
Copy link

eychei commented Jun 16, 2023

Hi everyone,

@g3gg0
I am trying to emulate a Slix2 tag with a different originality signature.

This is from the datasheet:

• Originality signature:
32 byte ECC based originality signature

It is set by NXP in production and can be changed for customers.

The Dymo label writers do have a different signature thus I can not emulate the tag.
This is a link to the forum post: https://www.eevblog.com/forum/reviews/dymo-550-thermal-printer-drm-hacking/

This is a dump of a tag with the originality signature (the signature is different for every UID it seems):

inventory: 0x01,0x5C,0x63,0x7B,0x3F,0x08,0x01,0x04,0xE0
sysInfo: 0x0F,0x5C,0x63,0x7B,0x3F,0x08,0x01,0x04,0xE0,0x01,0x3D,0x4F,0x03,0x01
signature: 0x6A,0x67,0x2D,0xAE,0x8D,0xFB,0xC7,0xC2,0x12,0x65,0x49,0x41,0x9B,0x3C,0x5F,0xAF,0xD7,0xC6,0xC0,0x97,0x33,0x43,0x99,0xE5,0xD0,0x5A,0xD9,0x71,0xFE,0x7B,0x74,0xA9
blocks:
0x03,0x0A,0x82,0xED,0x86,0x39,0x61,0xD2,0x03,0x14,0x1E,0x32,0xB6,0xCA,0x00,0x3C,0x62,0x64,0xCE,0x0F,0x33,0x30,0x32,0x35,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x24,0x01,0x01,0x00,0x00,0x00,0x22,0x04,0x1E,0x00,0x23,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0xF8,0x03,0x4B,0x02,0x00,0x00,0x00,0x00,0x6B,0x02,0x2C,0x01, 0x04,0x3E,0x1E,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD7,0xFA,0x00,0x1C,0x63,0xF2,0x1B,0xE0,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDD,0x4B,0x9D,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x8C,0x00,0x30,0x06,0xE2,0xDA,0x89, 0x00,0x00,0x00,0x00,0x6B,0x22,0xD6,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0xF3,0x00,0x2C,0xDD,0xC3,0x3E,0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB6,0xFE,0x00,0x01

Hope you can help out.

-e

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jun 16, 2023

a) as I didnt check that stuff yet, I cannot tell anything.
b) i can add those extended SLIX2 features (statically) and supply some test releases
c) send me a tag and I can check if it behaves as the original.

Please note that the signature seems to be a ECC signature and emulating it (i.e. generating matching it to the emulated UID) is nearly impossible.
Asymmetric ciphers are designed to not be cracked by hobbyists btw :)

NXP AN11600 describes how to verify the signature, but it is restricted.
If anyone has it, feel free to mail iso15693g3gg0.de

@eychei
Copy link

eychei commented Jun 16, 2023

Thanks.
It seems that if we just emulate the signature (memory) nothing needs to be computed.
The reader firmware will check if the signature is correct.
Where can I send you a tag to? Will do asap.

-e

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jun 16, 2023

ah, found this.

yes, that can be emulated easily i guess.

@eychei
Copy link

eychei commented Jun 16, 2023

I think one little bit is also missing.

The read password needs to be set to increment the counter. It is set for each tag differently. I can sniff the password for one of my tags and we could test on that data.

-e

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jun 16, 2023

if the code accepts any password, wouldn't that work as well?

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jun 16, 2023

the code says so

@eychei
Copy link

eychei commented Jun 16, 2023

The firmware needs the correct password. It is generated for each UID.
I do not have the generation scheme.
The firmware is locked and I can not read it out. The STM32F072 is in RDP Level 2.
I do have a chipwhisperer but can not get it down to Level 1 or 0.

It may be that the counter will not work but the firmware may ignore that.
We could have the generate random number command send out the same number every time and the set password command always return a 1 (OK).

OH!
You are right. This is not needed. Just return the signal as true (success).

@g3gg0
Copy link
Contributor Author

g3gg0 commented Jun 16, 2023

can you start a feature request / issue for this?

@eychei
Copy link

eychei commented Jun 16, 2023

Yes will do now.

-e

@eychei
Copy link

eychei commented Jun 16, 2023

Added feature request here:

#2781 (comment)

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>
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>
@semaf
Copy link

semaf commented Dec 3, 2023

@g3gg0

What is the point of "Can not save key file" after I try to save the read data (tonies)? Emulating is working. It still save it but get the error "Can not parse file".

Content of the .nfc file:

Filetype: Flipper NFC device
Version: 3
Nfc device type can be UID, Mifare Ultralight, Mifare Classic, FeliCa or ISO15693
Device type: ISO15693

I managed to read before with your fork that saved .nfc and .shd files but now the official firmware nor the rogue firmware is working. Not tested with your latest fork on github. Emulating on official firmware is not working but on Rogue firmware.

@skotopes
Copy link
Member

skotopes commented Dec 7, 2023

@semaf do you have proxmark ? can you send us card dump ?

@g3gg0
Copy link
Contributor Author

g3gg0 commented Dec 7, 2023

Unfortunately I don't have my flipper at the moment.
Back then, the code did unlock and save the. nfc file immediately.
Seems something has changed and the saving code doesn't work anymore. Thus you get the error I guess?

@semaf
Copy link

semaf commented Dec 7, 2023

@semaf do you have proxmark ? can you send us card dump ?

Yes I do but will have time the next days..

@semaf
Copy link

semaf commented Dec 7, 2023

Unfortunately I don't have my flipper at the moment.

Back then, the code did unlock and save the. nfc file immediately.

Seems something has changed and the saving code doesn't work anymore. Thus you get the error I guess?

The latest unleashed firmware version is working without any issue. Saving .nfc files.

@bitboxer
Copy link

Is there a reason this is no longer on the dev branch of Flipper? This PR #3050 removed it all?

@team-orangeBlue
Copy link

Well, yes.
The NFC refactor blew up all of NFC. It now works for itself and nothing else.
That means, the app will work, but

  • nfc apdu is gone
  • Outside implementations, like nested/NFC magic are gone
  • other firmwares (lol) just didn't merge this and when one did (MH-HM) the dev said his compiler exploded

So uhhh... yeah. But we still have ISO15693!

@gornekich
Copy link
Member

@bitboxer We are working on this functionality now. Will be ready soon

@g3gg0
Copy link
Contributor Author

g3gg0 commented Dec 29, 2023

didn't follow the development since merge.
do you need support from my side?

@gornekich
Copy link
Member

@g3gg0 thanks, I think I will do it by my self and once it's done I will ask you to test it

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 UI Affects UI
Projects
None yet
Development

Successfully merging this pull request may close these issues.