mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2026-08-21 10:29:50 +00:00
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>
Structure
debug
Applications for factory testing the Flipper.
accessor- Wiegand serverbattery_test_app- Battery debug appblink_test- LED blinkerbt_debug_app- BT test app. Requires full BT stack installeddisplay_test- Various display tests & tweaksfile_browser_test- Test UI for file pickerkeypad_test- Keypad testlfrfid_debug- LF RFID debug tooltext_box_test- UI testsuart_echo- UART mode testunit_tests- Unit testsusb_mouse- USB HID testusb_test- Other USB testsvibro_test- Vibro test
main
Applications for main Flipper menu.
archive- Archive and file managerbad_usb- Bad USB applicationgpio- GPIO application: includes USART bridge and GPIO controlibutton- iButton application, onewire keys and moreinfrared- Infrared application, controls your IR deviceslfrfid- LF RFID applicationnfc- NFC application, HF rfid, EMV and etcsubghz- SubGhz application, 433 fobs and etcu2f- U2F Application
services
Background services providing system APIs to applications.
applications.h- Firmware application list headerbt- BLE service and applicationcli- Console service and APIcrypto- Crypto cli toolsdesktop- Desktop servicedialogs- Dialogs service: GUI Dialogs for your appdolphin- Dolphin service and supplementary appsgui- GUI service and APIinput- Input serviceloader- Application loader servicenotification- Notification servicepower- Power servicerpc- RPC service and APIstorage- Storage service, internal + sdcard
settings
Small applications providing configuration for basic firmware and its services.
about- Small About application that shows flipper infobt_settings_app- Bluetooth optionsdesktop_settings- Desktop configurationdolphin_passport- Dolphin passport appnotification_settings- LCD brightness, sound volume, etc configurationpower_settings_app- Basic power optionsstorage_settings- Storage settings appsystem- System settingsinput_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 remotejs_app- JS engine runnersnake_game- Snake gamestorage_move_to_sd- Data migration tool for internal storageupdater- Update service & application