Skip to content

Conversation

@ezhevita
Copy link
Contributor

@ezhevita ezhevita commented Jul 4, 2022

What's new

  • Adds authentication for Mifare Ultralight tags and some algorithms to generate password based on UID of the tag.

Supported algorithms:

  • Amiibo
  • Xiaomi Purifier
  • Default (0xFFFFFFFF)

Verification

  • Read an ultralight tag with password generated by one of the algorithms (Amiibo is fine) - it should be read successfully

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

Copy link
Member

@gornekich gornekich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good work! What do you think about cards with unsuccessful password verifications limit set?
Here is the part from datasheet:
image
So I guess there is a risk of bricking the card, which will not allow authentication after limitted number of unsuccessful password verification. That's why I don't think that it's right to continuously try different password in a loop.
When I was thinking to add this for writing tags, the best decision I came to is to check if card has set auth limits and if not - try different passwords in the loop. However this is not applicable for reading routine.
Another possible solution it to get user's confirmation each time we want to auth with password. But that seems to be bad UX.
What do you think about it? May be @GMMan has some thoughts to share?

@GMMan
Copy link
Contributor

GMMan commented Jul 5, 2022

Exceeding negative auth limit counter is definitely a risk. If you want to try authenticating, best start with positively identifying which tag type it is, figure out where its config pages are, and read AUTH0 and AUTHLIM, skipping authentication if AUTH0 is past the last page. Reference NXP NFC TagInfo for behavior: usually if there's no AUTHLIM it'll try factory default password and display it in dump together with the PACK, but will not attempt at all if it can't read the config page or if AUTHLIM is set.

Code-wise, I would suggest moving authentication out of the page read function for separation of concerns, and you also need to check whether authentication is actually supported before attempting to send the command.

@ezhevita
Copy link
Contributor Author

ezhevita commented Jul 5, 2022

and read AUTH0 and AUTHLIM

Sadly, pages where they are located may be protected, so we can only try reading them and hope they are accessible.
I would suggest asking for user permission if those are not available.

@gornekich
Copy link
Member

and read AUTH0 and AUTHLIM

Sadly, pages where they are located may be protected, so we can only try reading them and hope they are accessible. I would suggest asking for user permission if those are not available.

I will discuss with our UX team and come back with our solution later

@gornekich
Copy link
Member

Hello @ezhevita
We decided to add "Extra Actions" in main NFC menu to give users option to read locked card with chosen password. I will finish NFC design rework #1364 and then we can merge your PR after small rework

@hedger hedger added NFC NFC-related New Feature Contains an IMPLEMENTATION of a new feature labels Jul 20, 2022
# Conflicts:
#	applications/nfc/nfc_worker.c
#	lib/misc.scons
@gornekich
Copy link
Member

gornekich commented Jul 27, 2022

Hello @ezhevita !
Let me share with you our new NFC design: https://miro.com/app/board/uXjVOlznagk=/
First iteration of new design is in dev now however It's not completely equivalent to MIRO reference yet.
I want to discuss new approach for reading locked Mf Ultralight and NTAGs. We want to read as much as possible data from locked cards and notify user that flipper couldn't read all pages.
After that we want to save all data that we managed to read. I think we should add new line in Flipper File Format for Mf Ultralight / NTAG, with how many pages were read.
Then in extra actions we will add new option for reading locked cards with generated or manually entered password. (Not in MIRO yet)

It seems like a lot of work has to be done. However we can't merge your PR and refactor code, because users can brick their cards. Please, let me know if you want to rework your PR to meet mentioned requirements. If you won't, please let me use your code to write everything myself.

@ezhevita
Copy link
Contributor Author

Hello! Sure thing, I'll try to rework this in the nearest future - I have already started moving authentication part to extra actions.

@djsime1 djsime1 mentioned this pull request Jul 29, 2022
3 tasks
@gornekich gornekich force-pushed the ezhevita/mf-ul-auth branch from 638bf82 to b058a09 Compare August 7, 2022 14:53
@skotopes skotopes merged commit 9ffcc52 into flipperdevices:dev Aug 7, 2022
MrFish256 added a commit to MrFish256/flipperzero-firmware-mrfish256 that referenced this pull request Aug 7, 2022
Copy link
Contributor

@GMMan GMMan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the late review, but I found a few things that should probably be addressed.

As a side note, PWD and PACK are officially 32-bit and 16-bit little-endian integers respectively, not 4- and 2-byte arrays, but I don't really care as long as the endian conversion isn't messed up.

Submenu* submenu = nfc->submenu;
MfUltralightData* data = &nfc->dev->dev_data.mf_ul_data;

if(data->data_read != data->data_size) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would recommend checking whether authentication is supported by tag instead of whether the entire tag has been read, since some tags are not read-protected, but are write-protected and emulation may not work with original reader if PACK is incorrect.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree

nfc);
submenu_add_item(
submenu,
"Auth As Ameebo",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling errors throughout

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was intentionally, since amiibo is registered trademark

}

if(pack != NULL) {
*pack = (tx_rx->rx_data[0] << 8) | tx_rx->rx_data[1];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure this is right, PACK is stored little endian, this would turn it big endian and subsequently reverse the bytes when sending PACK in emulated auth.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree, must be fixed

FuriHalNfcTxRxContext* tx_rx,
MfUltralightReader* reader,
MfUltralightData* data) {
mf_ultralight_read_version(tx_rx, reader, data);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Separation of concerns: caller should have read version already before calling this function.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually this function is not called. Missed that after my rework

return -2;
}

if(!mf_ultralight_read_pages_direct(tx_rx, config_pages_index, data->data)) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know how this function was intended to be used since nothing calls it, but reading into the beginning of the data instead of where it's supposed to be breaks all sorts of expectations. If you're not actually going to put the data where it's supposed to be, use a separate buffer, not the MfUltralightData.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused function should be removed by now, I agree

Comment on lines +59 to +64
typedef enum {
MfUltralightAuthLimitUnknown,
MfUltralightAuthLimitNotSupported,
MfUltralightAuthLimitConfigured,
MfUltralightAuthLimitNotConfigured,
} MfUltralightAuthLimit;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unused?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here

return false;
}

void mf_ul_reset(MfUltralightData* data) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally I would add a comment of the fields retained and why, otherwise it's not clear why a memset is not sufficient.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't come to better solution to pass MfUltralightAuthMethod field from nfc_scene_mf_ultralight_unlock_menu. I really don't want to add extra scenes and NfcWorkerStates. It seems that we should refactor it

nfc);
submenu_add_item(
submenu,
"Unlock NTAG/Ultralight",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Possibly unclear wording. Unlock implies removing the protection on the tag, which this doesn't do.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess it might be more clear for users who don't know internal MF Ultralight structure. They just want "unlock" card to read it :)
Feel free to suggest your naming!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe just "Read protected NTAG/Ultralight" would work, though that might be a bit long. Can shorten "Ultralight" to "MFUL" in that case.

zigad pushed a commit to zigad/flipperzero-firmware that referenced this pull request Aug 8, 2022
* mifare ultralight auth prototype
* it works!
* Reference source
* use countof
* rework everything
* oops forgot scenes
* build: revert changes in manifest, stack size
* build: fix buid, format sources
* nfc: update unlock ultralight GUI
* nfc: fix byte input header
* nfc: add new scenes for locked ultralight
* nfc: add data read to ultralights
* nfc: add unlock option in mf ultralight menu
* nfc: add data read init in ultralight generation
* nfc: lin sources, fix unlocked save
* nfc: format python sources
* nfc: clean up

Co-authored-by: gornekich <[email protected]>
0xchocolate referenced this pull request in 0xchocolate/flipperzero-wifi-marauder Aug 16, 2022
commit 1d50a59
Author: hedger <[email protected]>
Date:   Tue Aug 9 18:57:11 2022 +0300

    [FL-2059] Storage fixes for handling empty files (#1563)

    * storage: fixed handling of zero-length files
    * docs: added ReadMe.md for vscode workspace
    * rpc: storage: improved empty file & error handling in write handler
    * docs: markdown fix
    * docs: typo fixes

    Co-authored-by: SG <[email protected]>
    Co-authored-by: あく <[email protected]>

commit 01eb92d
Author: Astra <[email protected]>
Date:   Tue Aug 9 18:45:52 2022 +0300

    Mifare Classic emulation fixes (#1566)

    * Add fix for field
    * More small bugfixes
    * Clean up

commit ca23d0c
Author: MX <[email protected]>
Date:   Tue Aug 9 15:16:09 2022 +0300

    fix building updater package (#1564)

commit a7316e7
Author: Oleg K <[email protected]>
Date:   Sun Aug 7 19:08:00 2022 +0300

    Added support for Samsung TVs using address 07. (#1509)

    * Added support for Samsung TVs using address 07. Samsung QEXX, UEXX
    * Recompile assets and update manifest

    Co-authored-by: あく <[email protected]>

commit 416cce9
Author: Skorpionm <[email protected]>
Date:   Sun Aug 7 19:56:45 2022 +0400

    [FL-2718,  FL-2719] SubGhz: add protocol BERNER / ELKA / TEDSEN / TELETASTER / Doitrand / Marantec / Phoenix V2 (static mode) / Phox (static mode), fix Princeton (#1516)

    * SubGhz: add protocol marantec
    * SubGhz: add protocol BERNER / ELKA / TEDSEN / TELETASTER
    * SubGhz: add protocol Doitrand
    * SubGhz: delete debug
    * SubGhz: add protocol Phoenix V2 (static mode)
    * SubGhz: fix serial decode Phoenix V2
    * SubGhz: fix Princeton, display serial number and button on boot
    * SubGhz: fix Bett decoder and fix unit_test
    * SubGhz: update test_random_raw for unit_test

    Co-authored-by: あく <[email protected]>

commit 81b404a
Author: Mayco <[email protected]>
Date:   Sun Aug 7 17:40:09 2022 +0200

    Add ability to type a space with the input keyboard by long-pressing "_" (#1550)

    Co-authored-by: Mayco <[email protected]>
    Co-authored-by: あく <[email protected]>

commit 173c941
Author: gornekich <[email protected]>
Date:   Sun Aug 7 18:33:14 2022 +0300

    NFC: Add Skylanders support (#1553)

    * nfc: add skylanders support
    * nfc: format sources

    Co-authored-by: あく <[email protected]>

commit f3d7d7d
Author: Peter Seprus <[email protected]>
Date:   Sun Aug 7 17:28:04 2022 +0200

    Extend random name generator (#1551)

    * Extend random name generator
    * Format sources

    Co-authored-by: あく <[email protected]>

commit 67a9753
Author: Astra <[email protected]>
Date:   Sun Aug 7 18:18:39 2022 +0300

    Add a Mifare Classic info screen to parser output (#1504)

    * Add the info screen
    * Oops, don't dupe the points!
    * Show ATQA and SAK, remove the back label
    * And the dolphin doesn't need to be imported anymore
    * Correct UX to the approved one

    Co-authored-by: gornekich <[email protected]>

commit 9ffcc52
Author: Vitaliya Chumakova <[email protected]>
Date:   Sun Aug 7 18:09:00 2022 +0300

    Mifare Ultralight authentication (#1365)

    * mifare ultralight auth prototype
    * it works!
    * Reference source
    * use countof
    * rework everything
    * oops forgot scenes
    * build: revert changes in manifest, stack size
    * build: fix buid, format sources
    * nfc: update unlock ultralight GUI
    * nfc: fix byte input header
    * nfc: add new scenes for locked ultralight
    * nfc: add data read to ultralights
    * nfc: add unlock option in mf ultralight menu
    * nfc: add data read init in ultralight generation
    * nfc: lin sources, fix unlocked save
    * nfc: format python sources
    * nfc: clean up

    Co-authored-by: gornekich <[email protected]>

commit d147190
Author: Georgii Surkov <[email protected]>
Date:   Fri Aug 5 18:38:20 2022 +0300

    [FL-2717] Fix unexpected behaviour when opening a remote from outside (#1538)

    * Fix unexpected behaviour when opening remote from outside
    * Same fix for editing button name
    * Exit application correctly if remote was deleted
    * Remove duplicate function from ibutton
    * Use COUNT_OF macro

    Co-authored-by: あく <[email protected]>

commit 55b4ff8
Author: Mewa <[email protected]>
Date:   Fri Aug 5 17:12:13 2022 +0200

    Documentation: fixed outdated naming (#1518)

    * Documentation: fixed outdated naming: changed outdated naming in assets/dolphin/ReadMe. `essential -> blocking`
    * Updated naming convencion in assets/ReadMe file and assets/dolphin/ReadMe file

    Co-authored-by: あく <[email protected]>

commit 040558c
Author: TQMatvey <[email protected]>
Date:   Thu Aug 4 19:18:34 2022 +0700

    PicoPass: Fix Card Detection Visuals (#1511)

    Co-authored-by: あく <[email protected]>

commit 8a370d7
Author: Georgii Surkov <[email protected]>
Date:   Thu Aug 4 15:11:01 2022 +0300

    [FL-2700] Fix IR hangup with short signals (#1535)

    * Do not use infrared worker callback for notifications
    * Remove tx callback
    * Port Infrared notifications to hardware blinker
    * Move all blink message definitions to notification_messages.h
    * Fix potential hangup after leaving debug scene

commit 4460010
Author: SG <[email protected]>
Date:   Thu Aug 4 14:34:04 2022 +1000

    Archive: fix null dereference #1531 (#1532)

commit 4c499d9
Author: HexPandaa <[email protected]>
Date:   Wed Aug 3 19:13:06 2022 +0200

    Fix directory name in lib readme (#1528)

    Co-authored-by: あく <[email protected]>

commit 3ee93e1
Author: Fedor Indutny <[email protected]>
Date:   Wed Aug 3 10:07:35 2022 -0700

    nfc: make dict attack more interactive (#1462)

    * nfc: deduplify dict attack worker code
    * nfc: make dict attack more interactive

    Co-authored-by: gornekich <[email protected]>
    Co-authored-by: あく <[email protected]>

commit 284c567
Author: Ryan Murphy <[email protected]>
Date:   Wed Aug 3 18:00:17 2022 +0100

    NFC: Edit UID feature (#1513)

    * Added option to edit UID in saved NFC files
    * Fixed bug with saved filename
    * Only show for data that can't be read

    Co-authored-by: あく <[email protected]>

commit 135fbd2
Author: Georgii Surkov <[email protected]>
Date:   Wed Aug 3 19:43:14 2022 +0300

    [FL-2693] RW buffered streams (#1523)

    * Add write methods for stream cache
    * Fix logical error
    * Implement write cache for buffered file streams
    * Minor code refactoring
    * Less ugly code
    * Better read() implementation
    * Intermediate implementation
    * Fix logical error
    * Code cleanup
    * Update FFF comments
    * Fix logical error
    * Github: rsync with delete

    Co-authored-by: あく <[email protected]>

commit 6499597
Author: hedger <[email protected]>
Date:   Wed Aug 3 19:32:31 2022 +0300

    vscode: initial development configuration (#1520)

    * vscode: initial development configuration; fbt: `vscode_dist` target for deploying vscode config
    * vscode: fixed fbt blackmagic command

    Co-authored-by: あく <[email protected]>

commit 51f5641
Author: Žiga Deisinger <[email protected]>
Date:   Wed Aug 3 18:18:48 2022 +0200

    FIX: Fixed inconsistencies between texts (#1496)

    * FIX: Fixed inconsistencies between texts: I have changed inconsistencies. Sometimes there was a missing capital letter and sometimes there was dot instead of exclamation mark and so on. No other changes were made. I have made the correction based on how other text looks on Fliper and for headers most texts use Pascal Case.

    * FIX: Fixed inconsistencies between texts: Found 2 more texts with inconsistencies.

    Co-authored-by: あく <[email protected]>

commit bc34689
Author: SG <[email protected]>
Date:   Thu Aug 4 02:00:17 2022 +1000

    Make printf great again (#1438)

    * Printf lib: wrap *printf* functions
    * Printf lib, FW: drop sprintf. Dolphin: dump timestamp as is, wo asctime.
    * FW: remove sniprintf, wrap assert functions
    * Printf lib: wrap putc, puts, putchar
    * Printf: a working but not thread-safe concept.
    * Poorly wrap fflush
    * stdglue: buffers
    * Core: thread local buffers
    * Core: move stdglue to thread api, add ability to get FuriThread instance of current thread.
    * RPC tests: replace sprintf with snprintf
    * Applications: use new stdout api
    * Printf lib: wrap more printf-like and stdout functions
    * Documentation
    * Apps: snprintf size fixes

    Co-authored-by: あく <[email protected]>

commit eed4296
Author: SG <[email protected]>
Date:   Thu Aug 4 01:47:10 2022 +1000

    MPU Hal (#1492)

    * Furi HAL: memory protection unit
    * Core: prohibit NULL dereferencing, even for reads.
    * Applications: fix NULL dereference
    * Core: stack protection by MPU
    * MPU: stack region alignment
    * Apps: fix null pointer dereferences
    * Threads: fix non-null arg check
    * Desktop settings: fix null pointer dereference
    * Core: documented null-check hack
    * Fix null dereference issues
    * Apps: args check
    * Core: naming fixes
    * format code
    * Core: remove NONNULL specifier
    * FurHal: move MPU initialization to begining, fix enum naming

    Co-authored-by: あく <[email protected]>

commit 4a6477a
Author: SG <[email protected]>
Date:   Wed Aug 3 22:01:38 2022 +1000

    Core, logs: removed tag concatenation (#1524)

    * Core, logs: removed tag concatenation
    * Logs: remove unused fn
    * Logs: remove allocation

commit 93a4b9c
Author: Max Andreev <[email protected]>
Date:   Tue Aug 2 17:05:31 2022 +0300

    [FL-2649] Drop Docker in CI/CD (#1412)

    * enable sparseCheckout, moving github actions from docker to raw shell
    * fix missing known_hosts while setting ssh priv key
    * fix build.yml
    * add ssh key to upload just in time
    * fixing rsync syntax
    * fix build.yml
    * try to fix build.yml again
    * testing rsync
    * test rsync again
    * add linters
    * add Black Python linter to submodules
    * add Black submodule
    * add working python linter target, dirty file list
    * up toolchain to version 4
    * up toolchain to ver 5
    * up toolchain version to 6
    * fbt: using black 22.6.0
    * remove Black submodule, up toolchain to ver 7
    * fbt: added lint_py, format_py targets
    * add pvs_studio workflow
    * fix pvs_studio segfault
    * fix pvs_studio command
    * fix pvs_studio command 2
    * show env before run pvs_studio
    * try to debug pvs_studio
    * try to strace pvs_studio..
    * Add FBT_TOOLCHAIN_PATH, MacOS Rosseta check, and ignore non-x86_64 linux architectures
    * prevent redownloading toolchain on github-runners
    * fix toolchain download exitcode
    * add strace to debug pvs_studio segfault
    * disable strace to catch full code dump
    * Add './fbt cli' target to access Flipper CLI via PySerial
    * remove pvs_studio from this PR
    * removing clang-format from toolchain due errors
    * make source easy, and fix some mistakes found by @hedger
    * Add check_submodules workflow, some fixes
    * fixing mistakes

    Co-authored-by: hedger <[email protected]>
    Co-authored-by: hedger <[email protected]>

commit a1637e9
Author: hedger <[email protected]>
Date:   Tue Aug 2 16:46:43 2022 +0300

    fbt fixes & improvements (#1490)

    * fbt: minimal USB flash mode; scripts: faster storage.py with larger chunks
    * fbt: fixed creation of temporary file nodes confusing scons
    * docs: removed refs to --with-updater
    * fbt: removed splashscreen from minimal update package
    * fbt: renamed dist arguments for consistency
    * docs: fixed updater_debug target
    * fbt: separate target for generating compilation_database.json without building the code.
    * fbt: added `jflash` target for programming over JLink probe; refactored usb flashing targets
    * fbt: building updater_app in unit_tests configuration
    * fbt: fixed reset behavior after flashing with J-Link
    * fbt: generating .map file for firmware binary & external apps
    * fbt/core: moved library contents before apps code

    Co-authored-by: あく <[email protected]>

commit 1e73283
Author: hedger <[email protected]>
Date:   Tue Aug 2 16:29:16 2022 +0300

    ci: check for uncommited changes after build (#1461)

    * ci: check for uncommited changes after build
    * assets: updated Manifest to match sources
    * ci: simplified uncommited files check
    * resources: Updated Manifest
    * fbt: always rebuild manifest

    Co-authored-by: あく <[email protected]>

commit 01afb28
Author: Georgii Surkov <[email protected]>
Date:   Tue Aug 2 16:17:37 2022 +0300

    [FL-2713] Buffered file streams fix (#1515)

    * Fix incorrect buffered stream behaviour
    * Add specific tests
    * Make the test fail on wrong behaviour
    * Better names

    Co-authored-by: あく <[email protected]>

commit f9745b4
Author: あく <[email protected]>
Date:   Tue Aug 2 21:54:12 2022 +0900

    [FL-2705] App RPC Bug Fixes and redesign  (#1491)

    * Rpc: remove callback timer
    * Rpc: simplify rpc event callback
    * Rpc: migrate to new confirmation schema
    * Rpc: migrate to new confirmation schema part2: finalize ibutton and rfid
    * Rpc: migrate to new confirmation schema part3: finallize nfc and fix id in load
    * Rpc: hardened sequencing check
    * Rpc: migrate to new confirmation schema part4: finalize subghz
    * iButton: properly handle exit
    * Nfc: correct sequence for rpc exit send
    * Rpc: fix review issues and nfc exit message
    * Rpc: more logging and condition race fix in confirmation
    * Rpc: migrate to new confirmation schema part5: finalize infrared
    * Rpc: more logging

commit f9386b2
Author: SG <[email protected]>
Date:   Tue Aug 2 21:24:42 2022 +1000

    Assets: unused assets removed (#1514)

commit 4da6eba
Author: Skorpionm <[email protected]>
Date:   Mon Aug 1 16:24:21 2022 +0400

    [FL-2706, FL-2709] SubGhz: checking saved key files for length (#1485)

    * [FL-2706] SubGhz: checking saved key files for length
    * SubGhz: fix RAW file upload error
    * [FL-2709] GubGhz: RAW screen fix

    Co-authored-by: あく <[email protected]>

commit 84550d5
Author: hedger <[email protected]>
Date:   Sun Jul 31 02:48:55 2022 +0300

    [FL-2654] Updater: retrying pre-boot SD card mount multiple times (#1402)

    * Updater: retrying pre-boot SD card mount multiple times
    * Updater: added delay before retrying SD card mount on early boot

    Co-authored-by: あく <[email protected]>

commit 712a48b
Author: MX <[email protected]>
Date:   Sun Jul 31 02:34:38 2022 +0300

    Fix typo in subghz (#1467)

    * fix typo across subghz

    Co-authored-by: あく <[email protected]>
    Co-authored-by: Aleksandr Kutuzov <[email protected]>

commit 4c39dcb
Author: Anna Prosvetova <[email protected]>
Date:   Sun Jul 31 01:14:16 2022 +0200

    ☦️ Rpc: fix backup commands responses (#1502)

commit c40e881
Author: gornekich <[email protected]>
Date:   Thu Jul 28 15:34:28 2022 +0300

    [FL-2701], [FL-2702], [FL-2699] NFC fixes (#1478)

    * nfc: change read scene views
    * nfc: rework return after save success
    * nfc: add fallback to read UID of unrecognized iso14443-3
    * nfc: show mifare desfire on read success
    * nfc: add restore original confirm scene
    * nfc: fix icon name
    * nfc: clear 6 bit in SAK to emulate 14443-4 uids
    * nfc: don't change original sak

commit b6e52e9
Author: TQMatvey <[email protected]>
Date:   Thu Jul 28 16:48:45 2022 +0700

    Infrared.c: Dont Close GUI 2 times (#1477)

    GUI was being closed 2 times upon exit, this PR fixes that by removing 1 of those cases

commit c777206
Author: gornekich <[email protected]>
Date:   Tue Jul 26 20:28:37 2022 +0300

    NFC: fix navigation from menu scenes #1459

commit 80a7de8
Author: hedger <[email protected]>
Date:   Tue Jul 26 20:13:09 2022 +0300

    updater: fixed dolphin level not being migrated (#1458)

commit 9c59bcd
Author: gornekich <[email protected]>
Date:   Tue Jul 26 18:30:49 2022 +0300

    [FL-2605] NFC new design (#1364)

    * nfc: add new read scene

    * lib: refactore nfc library

    * mifare desfire: add read card fuction

    * lib nfc: add auto read worker

    * nfc: add supported cards

    * nfc: add mifare classic read success scene

    * nfc: add troyka support

    * submodule: update protobuf

    * nfc: mifare classic keys cache

    * nfc: rework mifare classic key cache

    * Correct spelling

    * nfc: add user dictionary

    * nfc: introduce block read map in fff

    * nfc: rework dict attack

    * nfc: improve dict attack

    * nfc: rework mifare classic format

    * nfc: rework MFC read with Reader

    * nfc: add gui for MFC read success scene

    * nfc: fix dict attack view gui

    * nfc: add retry and exit confirm scenes

    * nfc: add retry and exit scenes navigation

    * nfc: check user dictionary

    * nfc: remove unused scenes

    * nfc: rename functions in nfc worker

    * nfc: rename mf_classic_dict_attack -> dict_attack

    * nfc: change scenes names
    * nfc: remove scene tick events
    * nfc: rework dict calls with buffer streams
    * nfc: fix notifications
    * nfc: fix mf desfire navigation
    * nfc: remove notification from mf classic read success
    * nfc: fix read sectors calculation
    * nfc: add fallback for unknown card
    * nfc: show file name while emulating
    * nfc: fix build
    * nfc: fix memory leak
    * nfc: fix desfire read
    * nfc: add no dict found navigation
    * nfc: add read views
    * nfc: update card fix
    * nfc: fix access bytes save
    * nfc: add exit and retry confirm to mf ultralight read success
    * nfc: introduce detect reader
    * nfc: change record open arg to macros
    * nfc: fix start from archive

    Co-authored-by: Astra <[email protected]>
    Co-authored-by: あく <[email protected]>

commit ec19c11
Author: Skorpionm <[email protected]>
Date:   Tue Jul 26 18:16:59 2022 +0400

    [FL-2669] SubGhz: add support for loading custom presets (#1398)

    * SubGhz: load custom -preset
    * SubGhz: fix error prt=0
    * SubGhz: load custom preset
    * SubGhz: code refactoring to support custom preset
    * SubGhz: add custom presert refactoring
    * SubGhz: fix alloc history alloc preset
    * SubGhz: fix error load file
    * SubGhz: fix start custom preset
    * SubGhz: fix delete custom preset
    * SubGhz: add description Custom_preset_data for CC1101
    * SubGhz: debug logging and buffer size rounding

    Co-authored-by: あく <[email protected]>
    Co-authored-by: Aleksandr Kutuzov <[email protected]>

commit ed7db33
Author: Skorpionm <[email protected]>
Date:   Tue Jul 26 16:58:07 2022 +0400

    [FL-2684, FL-2685] bugfix subghz (#1446)

    * [FL-2684] SubGhz: fix incorrect CAME TWICE protocol definition
    * [FL-2685] SubGhz: fix the recorded RAW signal is deleted when trying to transmit on a prohibited frequency

    Co-authored-by: あく <[email protected]>

commit 3fa5e18
Author: hedger <[email protected]>
Date:   Tue Jul 26 15:44:03 2022 +0300

    [FL-2692, FL-2604, FL-2632] New first start sequence (#1456)

    * desktop: restored automatic power off & manual power off on slideshow view; assets: added frames for new first start sequence; docs: added info on slideshow compilation
    * desktop: restarting long timer on OK button release

    Co-authored-by: あく <[email protected]>

commit 056446d
Author: hedger <[email protected]>
Date:   Tue Jul 26 15:21:51 2022 +0300

    [FL-2675] /int space reservation (#1448)

    * storage: added global #defines for /int, /ext & /any
    * storage: introduced PATH_EXT, PATH_INT& PATH_ANY macros
    * core apps: moved hardcoded config files names to separate headers; prefixed them with "."; updater: added file name migration to new naming convention on backup extraction
    * storage: fixed storage_merge_recursive handling of complex directory structures; storage_move_to_sd: changed data migration logic to all non-dot files & all folders
    * core: added macro aliases for core record names
    * Bumped protobuf commit pointer
    * storage: reserved 5 pages in /int; denying write&creation of non-dot files when running out of free space

    Co-authored-by: あく <[email protected]>

commit 52a83fc
Author: Georgii Surkov <[email protected]>
Date:   Tue Jul 26 14:46:14 2022 +0300

     [FL-2688] Fix incorrect remote renaming behaviour #1455

commit 05b8164
Author: TijnMertens <[email protected]>
Date:   Tue Jul 26 11:13:04 2022 +0200

    Minor grammar and typo fix (#1454)

commit e03b102
Author: MX <[email protected]>
Date:   Tue Jul 26 02:09:04 2022 +0300

    Fix git submodules update called anyways (#1450)

    Ignoring FBT_NO_SYNC

commit 27b698f
Author: Szymon Lisowiec <[email protected]>
Date:   Mon Jul 25 23:31:34 2022 +0200

    fbt: Fixed build for users with space in username (#1437)

    Co-authored-by: あく <[email protected]>
    Co-authored-by: hedger <[email protected]>

commit d085af3
Author: AlexeyOplachko <[email protected]>
Date:   Mon Jul 25 23:34:49 2022 +0300

    Fixing a typo in Bug Report Issue Template (#1449)

commit cd77b93
Author: Eric Betts <[email protected]>
Date:   Mon Jul 25 08:36:38 2022 -0700

    Picopass: dump full card, extract some details (#1408)

    * Dump entire picopass card
    * Capture more iClass details
    * facility code bugfix

    Co-authored-by: あく <[email protected]>

commit f8e0ec4
Author: Yukai Li <[email protected]>
Date:   Mon Jul 25 09:21:05 2022 -0600

    nfc: NTAG203 support (#1383)

    * nfc: Fix original MFUL feature flags
    * nfc: Add NTAG203 read support
    * nfc: Update emulation lock byte handling for NTAG203
    * nfc: Add NTAG203 counter emulation support
    * nfc: Add NTAG203 tag generator
    * nfc: Fix NTAG203 emulating GET_VERSION
    * nfc: Fix MFUL version reading
    * nfc: Complete NTAG203 counter emulation behavior
    * nfc: Complete NTAG203 emulation
    * nfc: Remove unnecessary init in MFUL emulation
    * nfc: Add notes about MFUL type enum

    Co-authored-by: gornekich <[email protected]>
    Co-authored-by: あく <[email protected]>

commit 30820b8
Author: Nikolay Minaylov <[email protected]>
Date:   Mon Jul 25 17:46:42 2022 +0300

    [FL-2464, FL-2466] RFID, ibutton text fix #1413

    Co-authored-by: あく <[email protected]>

commit ac60d18
Author: Wyatt Neal <[email protected]>
Date:   Mon Jul 25 10:35:02 2022 -0400

    fixing typos, satus -> status (#1422)

    Co-authored-by: あく <[email protected]>

commit d80edba
Author: Nikolay Minaylov <[email protected]>
Date:   Mon Jul 25 17:16:45 2022 +0300

    RPC App: state message and GUI update (#1423)

    * RPC App: state message and GUI update
    * Protobuf submodule update

    Co-authored-by: SG <[email protected]>
    Co-authored-by: あく <[email protected]>

commit f1cb956
Author: Kowlin <[email protected]>
Date:   Mon Jul 25 15:11:24 2022 +0200

    Port over Issue templates to new YML format (#1433)

    * WIP Push
    * Add feature request label to template
    * Punctuation helps
    * rename feature request and add in enhancement
    * wording
    * Add in extra markdown explanations

    Co-authored-by: SG <[email protected]>
    Co-authored-by: あく <[email protected]>

commit f5d6a80
Author: Nikolay Minaylov <[email protected]>
Date:   Mon Jul 25 15:11:34 2022 +0300

     [FL-2668] GUI message screens update #1428

    Co-authored-by: SG <[email protected]>
    Co-authored-by: あく <[email protected]>

commit 3ee592c
Author: Ruben van Baarle <[email protected]>
Date:   Mon Jul 25 13:48:06 2022 +0200

    Fix SubGHz chat immediately closing #1440

    It's just an if condition which should've been inverted

    Co-authored-by: あく <[email protected]>

commit c22d665
Author: Georgii Surkov <[email protected]>
Date:   Mon Jul 25 14:23:47 2022 +0300

     [FL-2682] Allow spaces in file names #1444

commit 7c49f60
Author: Zoë Prosvetova <[email protected]>
Date:   Sat Jul 23 18:33:39 2022 +0200

    Fix toolchain typos (#1435)

commit 253b98c
Author: ESurge <[email protected]>
Date:   Fri Jul 22 20:35:14 2022 -0700

    Added condition to cli "log" command to end if serial terminal is disconnected. (#1425)

    * Added condition to cli "log" command. If USB is disconnected while "log" command is running, it will end the command.
    * Reverted change on cli_commands.c
      Added condition in cli.c for cli_cmd_interrupt_received function to react appropriately when serial terminal is disconnected.
      Added condition in subghz_cli.c for subghz chat cmd to exit gracefully when serial terminal is disconnected.
    * Formatting

    Co-authored-by: あく <[email protected]>

commit 16e598b
Author: Georgii Surkov <[email protected]>
Date:   Fri Jul 22 19:00:25 2022 +0300

    [FL-2655, FL-2650] Buffered file streams (#1424)

    * Initial buffered file stream implementation
    * Fix logical errors
    * Fix more logical errors
    * Minimally working implementation
    * Adapt infrared unit tests for buffered streams
    * Increase read buffer size from 512 to 1K
    * Correct naming and formatting
    * More code improvements
    * Allow passing access and open modes for buffered streams
    * Implement tests for buffered streams
    * Better file and method names
    * Add comments and correct formatting
    * Use buffered streams in Infrared
    * Fix compilation error

commit ec57dd3
Author: adisbladis <[email protected]>
Date:   Wed Jul 20 20:48:10 2022 +0800

    fbt: Respect SOURCE_DATE_EPOCH when setting build date (#1421)

    * fbt: using SOURCE_DATE_EPOCH from environment for build timestamp (if set)

    Co-authored-by: hedger <[email protected]>

commit e3c7201
Author: あく <[email protected]>
Date:   Wed Jul 20 13:56:33 2022 +0300

    Furi: core refactoring and CMSIS removal part 2  (#1410)

    * Furi: rename and move core
    * Furi: drop CMSIS_OS header and unused api, partially refactor and cleanup the rest
    * Furi: CMSIS_OS drop and refactoring.
    * Furi: refactoring, remove cmsis legacy
    * Furi: fix incorrect assert on queue deallocation, cleanup timer
    * Furi: improve delay api, get rid of floats
    * hal: dropped furi_hal_crc
    * Furi: move DWT based delay to cortex HAL
    * Furi: update core documentation

    Co-authored-by: hedger <[email protected]>

commit f9c2287
Author: Dom <[email protected]>
Date:   Sun Jul 17 03:09:47 2022 -0700

    Update ReadMe.md (#1409)

    - Minor correction in grammar for ReadMe.

    Co-authored-by: あく <[email protected]>

commit 73711c7
Author: t0m1o1 <[email protected]>
Date:   Sun Jul 17 10:56:47 2022 +0100

    Update bad_usb_script.c to fix incorrect ALT key const #1406

    Co-authored-by: あく <[email protected]>

commit e7c3da1
Author: Skorpionm <[email protected]>
Date:   Sun Jul 17 13:45:21 2022 +0400

    [FL-2658, FL-2657] SubGhz: add new protocol (IronLogic, Comunello, Sommer(fsk476), Normstahl, KEY, EcoStar, Gibidi, Mutancode) (#1404)

    * Subghz: fix cli  no load keeloq_mfcodes_user
    * SubGhz: add new protocol (IronLogic, Comunello, Sommer(fsk476), Normstahl, KEY, EcoStar, Gibidi, Mutancode)
    * SubGhz: fix syntax
    * SubGhz: fix error build

    Co-authored-by: あく <[email protected]>

commit 7741a19
Author: SG <[email protected]>
Date:   Sun Jul 17 12:34:13 2022 +0300

    Better crash handling (#1397)

    * Core: correct ISR flag check on crash, dump heap and stack info on crash
    * Core: crash, show task name
    * Core crash: optimization

    Co-authored-by: あく <[email protected]>

commit 80629de
Author: Georgii Surkov <[email protected]>
Date:   Sun Jul 17 12:21:56 2022 +0300

    [FL-2601] Move Infrared unit test data to assets (#1396)

    * Move samsung raw data to assets
    * Add more assets and fix bugs
    * Clean up code
    * Implement all raw data as assets
    * Remove input data from old test files
    * Better signal names
    * Better file opening logic
    * Implement loading parsed data from files
    * Move most of RC5 tests into assets
    * Add more test cases
    * Add more test cases
    * Eliminate RUN_DECODER macro
    * Better code structure
    * Implement run_encoder function
    * More encoder tests
    * Move all encoder tests to assets
    * Move all test data to assets
    * Normalise function names
    * Rename code files
    * Uncomment other tests
    * Swich test order to avoid weird memory leaks
    * UnitTests: cleanup output and redirect it into stdout
    * UnitTests: selectable tests and better reporting

    Co-authored-by: あく <[email protected]>

commit 877c5c8
Author: Nikolay Minaylov <[email protected]>
Date:   Sun Jul 17 10:41:16 2022 +0300

    [FL-1962, FL-2464, FL-2465, FL-2466, FL-2560, FL-2637, FL-2595] Ibutton, Infrared, LfRFID GUI fixes (#1392)

    * Ibutton, Infrared, LfRFID GUI fixes
    * Loading screens update

    Co-authored-by: あく <[email protected]>

commit edc6ca0
Author: Eric Betts <[email protected]>
Date:   Sat Jul 16 23:13:51 2022 -0700

    Log MFC nonces for use with mfkey32v2 (#1390)

    Co-authored-by: あく <[email protected]>

commit c29ab50
Author: Eric Betts <[email protected]>
Date:   Sat Jul 16 23:01:19 2022 -0700

    Calculate picopass CRC dynamically (#1389)

    Co-authored-by: あく <[email protected]>
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.

5 participants