-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Mifare Ultralight authentication #1365
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
Conversation
There was a problem hiding this 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:

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?
|
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. |
Sadly, pages where they are located may be protected, so we can only try reading them and hope they are accessible. |
I will discuss with our UX team and come back with our solution later |
# Conflicts: # applications/nfc/nfc_worker.c # lib/misc.scons
|
Hello @ezhevita ! 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. |
|
Hello! Sure thing, I'll try to rework this in the nearest future - I have already started moving authentication part to extra actions. |
638bf82 to
b058a09
Compare
Mifare Ultralight authentication (flipperdevices#1365)
There was a problem hiding this 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) { |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spelling errors throughout
There was a problem hiding this comment.
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]; |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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); |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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)) { |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
| typedef enum { | ||
| MfUltralightAuthLimitUnknown, | ||
| MfUltralightAuthLimitNotSupported, | ||
| MfUltralightAuthLimitConfigured, | ||
| MfUltralightAuthLimitNotConfigured, | ||
| } MfUltralightAuthLimit; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused?
There was a problem hiding this comment.
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) { |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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", |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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!
There was a problem hiding this comment.
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.
* 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 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]>
What's new
Supported algorithms:
Verification
Checklist (For Reviewer)