Files
b90057e472 NFC: say what became of an Ultralight authentication (#1090)
Auth failed and auth never attempted produced the same read-success
screen, and they are opposites in cost - one can spend an attempt the
card counts, the other deliberately spends nothing. A user who cannot
tell them apart retries, which on an AUTHLIM card is how it gets locked
for good.

MfUltralightPollerEventTypeAuthFailed had exactly one consumer in the
tree, the CLI dump command; the GUI ignored it. Handle it, record the
outcome, and render a line for it on the read result. Only user-driven
auth reaches that event - the poller's default-password probe
authenticates directly and emits nothing - so it cannot fire on a plain
read. The skipped case comes from #1086: a UID the Amiibo/Xiaomi
generator cannot derive a password from now says so.

The wording stays conditional ("cards with an auth limit counted this
attempt") because AUTHLIM is frequently 0, in which case a failed
PWD_AUTH costs nothing - and per #1089 it is often unreadable anyway.

The outcome is cleared by whoever starts a read, not by
mf_ultralight_auth_reset(). That reset scrubs credentials and runs after
the result is drawn, so hanging the outcome off it would have wiped the
banner on any re-entry - Retry then Stay, or More then Back, both
re-run the scene's on_enter - and would have left a stale verdict for
the dictionary-attack scenes, which reach the same screen without
touching the unlock helper. A failed unlock followed by a successful
dictionary attack would have reported "auth failed" over unlocked data.

Also stop the unlock screen printing a password it does not have.
nfc_render_mf_ultralight_pwd_pack() rendered PWD/PACK whenever the card
type has a config page, but those pages read back masked as zero when
auth did not succeed, so a failed unlock displayed
"Password: 00 00 00 00" as though recovered. Its sibling _if_read()
already gated on mf_ultralight_is_pwd_pack_read(); this one now does too.

MfUltralightAuth gained a field and protocol plugins dereference it, so
the plugin API version goes to 3.

Not covered, and unchanged by this: UL-C 3DES unlocks still report
nothing either way, because that poller handler raises neither
AuthSuccess nor AuthFailed in read mode.

Closes #1088

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 00:48:07 +03:00
..
2026-08-16 15:32:31 +03:00
2026-08-16 04:18:50 +03:00

Structure

debug

Applications for factory testing the Flipper.

  • accessor - Wiegand server
  • battery_test_app - Battery debug app
  • blink_test - LED blinker
  • bt_debug_app - BT test app. Requires full BT stack installed
  • display_test - Various display tests & tweaks
  • file_browser_test - Test UI for file picker
  • keypad_test - Keypad test
  • lfrfid_debug - LF RFID debug tool
  • text_box_test - UI tests
  • uart_echo - UART mode test
  • unit_tests - Unit tests
  • usb_mouse - USB HID test
  • usb_test - Other USB tests
  • vibro_test - Vibro test

main

Applications for main Flipper menu.

  • archive - Archive and file manager
  • bad_usb - Bad USB application
  • gpio - GPIO application: includes USART bridge and GPIO control
  • ibutton - iButton application, onewire keys and more
  • infrared - Infrared application, controls your IR devices
  • lfrfid - LF RFID application
  • nfc - NFC application, HF rfid, EMV and etc
  • subghz - SubGhz application, 433 fobs and etc
  • u2f - U2F Application

services

Background services providing system APIs to applications.

  • applications.h - Firmware application list header
  • bt - BLE service and application
  • cli - Console service and API
  • crypto - Crypto cli tools
  • desktop - Desktop service
  • dialogs - Dialogs service: GUI Dialogs for your app
  • dolphin - Dolphin service and supplementary apps
  • gui - GUI service and API
  • input - Input service
  • loader - Application loader service
  • notification - Notification service
  • power - Power service
  • rpc - RPC service and API
  • storage - Storage service, internal + sdcard

settings

Small applications providing configuration for basic firmware and its services.

  • about - Small About application that shows flipper info
  • bt_settings_app - Bluetooth options
  • desktop_settings - Desktop configuration
  • dolphin_passport - Dolphin passport app
  • notification_settings - LCD brightness, sound volume, etc configuration
  • power_settings_app - Basic power options
  • storage_settings - Storage settings app
  • system - System settings
  • input_settings_app - Basic input options

system

Utility apps not visible in other menus, plus few external apps pre-packaged with the firmware.

  • hid_app - BLE & USB HID remote
  • js_app - JS engine runner
  • snake_game - Snake game
  • storage_move_to_sd - Data migration tool for internal storage
  • updater - Update service & application