Commit Graph

583 Commits

Author SHA1 Message Date
Willy-JL 02e00498a1 BadKB: Rename code to BadUSB for easier merges
Still called BadKB for display name and appid
2025-02-28 00:06:57 +00:00
Willy-JL 268b694362 BadKB: Rewrite BadKB extras on "new" OFW BadUSB structure
- Mainly, HID interface abstractions and porting all BadKB options to it
- Tying up some loose ends, some things still not ideal but good enough
- Can customize BLE MAC address when BLE Remember is enabled
- Added BLE_ID command, alias for BT_ID (OFW BadUSB calls everything BLE)
2025-02-27 04:33:21 +00:00
Willy-JL 30df72a835 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-02-20 04:20:28 +00:00
Anna Antonenko 0f240c4dbc [FL-3949] Universal IR signal selection (#4085)
* feat: universal ir signal selection
* fix: f18, format specifiers
* update labels with suggestions from the ui team

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2025-02-20 08:58:55 +09:00
Willy-JL 72281d9666 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-02-18 16:25:29 +00:00
あく 3a42bf812d Furi, USB, BLE, Debug: various bug fixes and improvements (#4114)
* Furi, USB, BLE: extra stack space for some threads, small code cleanup.

* Furi: thread watermark check on exit, explicitly crash if built with LIB_DEBUG=1

* Debug: color logging in apps/furi gdb helper, check and show crash message in gdb console.
2025-02-17 22:16:14 +04:00
Yukai Li 59fe896ce8 nfc: Enable MFUL sync poller to be provided with passwords (#4050)
* nfc: Enable MFUL sync poller to be provided with passwords
* Sync targret api versions

Co-authored-by: あく <alleteam@gmail.com>
2025-02-13 19:31:56 +09:00
Anna Antonenko e27f82f041 [FL-3925, FL-3942, FL-3944] JS features & bugfixes (SDK 0.2) (#4075)
* feat: JS GPIO PWM, JS GUI Widget view; fix: JS EvtLoop stop on request, JS EvtLoop stop on error
* fix: f18 build
* docs: widget
* fix: js unit test
* change feature naming

Co-authored-by: あく <alleteam@gmail.com>
2025-02-13 17:50:38 +09:00
あく ac1b723436 Infrared: increase max carrier limit (#4070)
Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
2025-02-13 03:53:14 +09:00
Astra 00f287e297 [FL-2754, FL-3945] EM4305 support (#4069)
* Initial EM4305 write support
* Support for writing EM4100 data to EM4305 blank tags
* F18 API version bump
* Satisfy pvs
* Lib: cleanup em4305 code
* Mask size fix
* Electra
* Fix leftovers from a previous implementation
* Viking
* Gallagher
* LFRFID: cleanup em4305

Co-authored-by: あく <alleteam@gmail.com>
2025-02-13 03:04:24 +09:00
Anna Antonenko 7a92fd359c [FL-3950] Update mbedtls & expose AES (#4092)
* update mbedtls
* expose mbedtls/aes.h
* update f18

Co-authored-by: あく <alleteam@gmail.com>
2025-02-10 20:57:16 +09:00
Willy-JL 8553132b71 Merge remote-tracking branch 'ul/dev' into mntm-dev 2025-02-05 01:57:25 +00:00
MX 0112a733c4 Merge remote-tracking branch 'OFW/aku/g4067_infrared_carrier' into dev 2025-01-17 14:57:59 +03:00
Willy-JL 39486d1a80 Bump API 79.2 for OFW 1.2.0-rc 2025-01-17 00:16:40 +00:00
Willy-JL 574933a500 Small cleanup of #314 --nobuild 2025-01-17 00:06:48 +00:00
Cody Tolene 530f3d4f22 Main Menu: Add coverflow menu style (#314)
* Add coverflow menu style.

* Update with new canvas extended function `canvas_draw_icon_animation_ex`
2025-01-16 23:50:33 +00:00
Aleksandr Kutuzov 5096b9c88b Infrared: increase max carrier limit 2025-01-16 23:51:10 +09:00
Dmitry422 c73495767c Auto_poweroff option moved from desktop to power.
Add settings for power service (load|save).
2025-01-14 02:01:54 +07:00
Willy-JL f2011a446b Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-01-11 05:06:46 +00:00
Willy-JL 69754a8da3 Revert "NFC: Add API to enforce ISO15693 mode (#225)"
This reverts commit 5afc01a4c3.
2025-01-11 03:50:22 +00:00
MX 189c87cb08 Merge remote-tracking branch 'OFW/dev' into dev 2024-12-24 14:04:07 +03:00
Anna Antonenko 5fd423951b [FL-3933] Pipe (#3996)
* feat: FuriThread stdin
* ci: fix f18
* feat: stdio callback context
* feat: FuriPipe
* POTENTIALLY EXPLOSIVE pipe welding
* fix: non-explosive welding
* Revert welding
* docs: furi_pipe
* feat: pipe event loop integration
* update f18 sdk
* f18
* docs: make doxygen happy
* fix: event loop not triggering when pipe attached to stdio
* fix: partial stdout in pipe
* allow simultaneous in and out subscription in event loop
* refactor: move pipe out of furi and decouple from event loop
* chore: api versioning
* Bump api versions
* refactor: rename pipe_set_pipe_broken_callback
* Toolbox: add missing pragma once

Co-authored-by: あく <alleteam@gmail.com>
2024-12-24 10:58:27 +09:00
MX 9c5341edb1 Merge remote-tracking branch 'OFW/dev' into dev 2024-12-23 15:56:12 +03:00
Jan Wiesemann e11a62694e Added flipper_format_write_empty_line(...) (#4029)
* Added flipper_format_write_empty_line(...)
* Format sources

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-12-23 11:32:53 +09:00
Astra a02781b936 [FL-3920] Fix lost BadBLE keystrokes (#3993)
* WIP: fix lost BadBLE keystrokes
* Switch to semaphores for synchronization
* Move checking to the gap level
* Remove leftovers from hid_service
* Remove more leftovers from hid_service
* De-allocate the semaphore after use
* Change the timeout to account for unforeseen situation
* Update F18 API
* Fix naming and unbump api version
* Move away from semaphores
* Remove the left over include
* Ble: cleanup error handling in ble_gatt_characteristic_update
* Fix PVS warning

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-12-23 09:18:14 +09:00
MX bd348cf72d Merge remote-tracking branch 'OFW/dev' into dev 2024-12-21 17:37:08 +03:00
Anna Antonenko 8d078e4b8c [FL-3927] FuriThread stdin (#3979)
* feat: FuriThread stdin
* ci: fix f18
* feat: stdio callback context

Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-12-19 05:38:43 +09:00
Astra 9917579619 Increase system stack's reserved memory size (#4025)
Co-authored-by: あく <alleteam@gmail.com>
2024-12-19 04:23:29 +09:00
Willy-JL 88a474f604 Merge remote-tracking branch 'ul/dev' into mntm-dev 2024-12-10 05:07:49 +00:00
MX 0d61de4584 Merge remote-tracking branch 'OFW/astra/3936-usb-uart-crash' into dev 2024-12-03 11:33:05 +03:00
Astra 0fd26ee148 Increase system stack's reserved memory size 2024-12-02 19:24:20 +09:00
Willy-JL 17fde2779d Oops --nobuild 2024-11-27 12:43:32 +00:00
Willy-JL 1373f91de2 Merge remote-tracking branch 'ul/dev' into mntm-dev 2024-11-27 11:23:46 +00:00
MX fc25c9fba0 Merge remote-tracking branch 'OFW/gsurkov/vcp_break_support' into dev [ci skip] 2024-11-26 05:19:11 +03:00
Georgii Surkov e3c3edcc7e Add send break support 2024-11-17 21:01:15 +00:00
Willy-JL aee7c2c5bb API: Move furi_hal_bt_reverse_mac_addr() out of API 2024-11-08 04:47:54 +00:00
WillyJL 3ef283824d FBT: Optimize icons blob -4KB DFU, scrub unused icons (#291)
* Unused icons to check later

* Exclude disabled icons from firmware

* Format

* Also report free flash in gh comment

* Fix free flash calc

* Fix?

* Fix??

* Split to next line

* Remove dead icons

* Some spring cleaning of icons cooker

* Improve unused icons script

* Disable icons that cant be used in asset packs

* These will need a workaround for external

* Revert "These will need a workaround for external"

This reverts commit fb23d97952.

* Here's the workaround: split assets lib

now there is "assets" and "fwassets"

firmware links with fwassets and includes all icons
however not all of them are exposed to api

if an app needs a firmware icon not in api, it can use fap_libs=["assets"]
this will link against this dummy assets lib
it only contains the icons that arent exposed to api

this way, an app using assets lib will still benefit from asset packs
but at same time, we can remove pointless icons from dfu blob

* Update changelog
2024-11-05 08:32:24 +01:00
Willy-JL f0f1068be3 Fix Alarm unsatisfied imports 2024-10-31 19:37:27 +00:00
Willy-JL 41832151aa Fix API symbols 2024-10-31 19:03:35 +00:00
Willy-JL 6f5ef19172 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-10-31 18:20:25 +00:00
MX 04c8093672 Merge remote-tracking branch 'OFW/dev' into dev 2024-10-31 21:17:01 +03:00
Willy-JL a010a9e933 Merge commit 'e4c82708242b25a9af4d2695dd72f4eef44631eb' into mntm-dev 2024-10-31 16:40:46 +00:00
Willy-JL 04360a47cc Merge commit '8427ec0098129a07f985e94248e12205883f2e41' into mntm-dev 2024-10-31 16:22:28 +00:00
あく 561b4e947a 目覚め時計 (#3906)
* FuriHal: add RTC alarm support

* FuriHal: RTC alarm API. Alarm settings app. Alarm app.

* FuriHal: remove unnecessery init mode enters in RTC

* Update targets/f7/furi_hal/furi_hal_rtc.h

Co-authored-by: Silent <CookiePLMonster@users.noreply.github.com>

* Update targets/f7/furi_hal/furi_hal_rtc.c

Co-authored-by: Silent <CookiePLMonster@users.noreply.github.com>

* Update targets/f7/furi_hal/furi_hal_rtc.h

Co-authored-by: Silent <CookiePLMonster@users.noreply.github.com>

* FuriHal: add seconds in rtc alarm getter

* Alarm & Clock: redesign and cleanup setting and alarm apps, cleanup API

* Spelling and time separator in alarm

* Api Symbols: hide rtc alarm related methods

* Clock alarm: new thread cleanup routine, hour/minute separator in alarm

* Clock: move clock_settings_start into clock_settings fam

* Seettings: update clock and alarm UI according to figma

* Format icons

---------

Co-authored-by: Silent <CookiePLMonster@users.noreply.github.com>
2024-10-31 15:42:03 +04:00
Skorpionm 6d823835df FurEventLoop: add support for FuriEventFlag, simplify API (#3958)
* Core: event_flag, removing duplicate code
* event_loop: add support furi_event_flags
* Examples: add missing free in event loop examples
* Furi: fix event flag
* Sync api symbols
* Unit_test: evet_loop_event_flags
* Fix multiple waiting list elements handling
* Unit_test: add event_loop_event_flag test
* FURI: event_loop add restrictions
* Fix multiple waiting lists items for good
* Improve FuriEventLoop unit tests
* Abolish callback return value
* Remove return value from callback signature
* Use bool level value instead of int32_t
* Add unit tests for FuriStreamBuffer
* Add unit tests for FuriSemaphore
* Speed up test execution
* Improve docs
* Add a stub for furi os-level primitives
* Add more checks for edge cases
* Allow event loop notification from ISR
* Bump api version

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
2024-10-31 10:58:16 +09:00
Nathan N 8427ec0098 MIFARE Classic Key Recovery Improvements (#3822)
* Initial structure for nonce collection
* Nonce logging
* Dictionary attack structure
* Fix compilation
* Identified method to reduce candidate states
* Use EXT_PATH instead of ANY_PATH
* Use median calibrated distance, collect parity bits
* Modify parity collection
* Fixed parity bit collection
* Add note to fix nonce logging
* Fix nonce logging
* Clean redundant code
* Fix valid_nonce
* First attempt disambiguous nonce implementation
* FM11RF08S backdoor detection
* Initial accelerated dictionary attack for weak PRNGs
* Refactor to nested dictionary attack
* Renaming some variables
* Hard PRNG support for accelerated dictionary attack
* Update found keys, initial attempt
* Update found keys, second attempt
* Code cleanup
* Misc bugfixes
* Only use dicts in search_dicts_for_nonce_key if we have them
* Collect nonces again
* Should be detecting both backdoors now
* Relocate backdoor detection
* Hardnested support
* Fix regression for regular nested attack
* Backdoor read
* Backdoor working up to calibration
* Backdoor nested calibration
* Don't recalibrate hard PRNG tags
* Static encrypted nonce collection
* Update TODO
* NFC app UI updates, MVP
* Bump f18 API version (all functions are NFC related)
* Add new backdoor key, fix UI status update carrying over from previous read
* Clear TODO line
* Fix v1/v2 backdoor nonce collection
* Speed up backdoor detection, alert on new backdoor
* Add additional condition to backdoor check
* I'll try freeing memory, that's a good trick!
* Do not enter nested attack if card is already finished
* Do not reset the poller between collected nonces
* Clean up various issues
* Fix Hardnested sector/key type logging
* Add nested_target_key 64 to TODO
* Implement progress bar for upgraded attacks in NFC app
* Typo
* Zero nested_target_key and msb_count on exit
* Note TODO (malloc)
* Dismiss duplicate nonces
* Fix calibration (ensure values are within 3 standard deviations)
* Log static
* No nested dictionary attack re-entry
* Note minor inefficiency
* Uniformly use crypto1_ prefix for symbols in Crypto1 API
* Fix include paths
* Fix include paths cont
* Support CUID dictionary
* Fix log levels
* Avoid storage errors, clean up temporary files
* Handle invalid key candidates
* Fix memory leak in static encrypted attack
* Fix memory leak, use COUNT_OF macro
* Use single call to free FuriString
* Refactor enums to avoid redefinition
* Fix multiple crashes and state machine logic
* Fix inconsistent assignment of known key and known key type/sector
* Backdoor known key logic still needs the current key
* Larger data type for 4K support
* Fix typo
* Fix issue with resume logic
* Mark TODOs for next PR
* Remove redundant assignment
* Fix size_t format specifier
* Simplify auth_passed condition

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-10-31 09:53:58 +09:00
Willy-JL 38471fdd75 GUI: Refactor TextInput illegal symbols API 2024-10-29 22:08:52 +00:00
Luu 8174ffa5b3 NFC: NDEF parser Mifare Classic support, protocol-agnostic refactor and more improvements (#265)
* Update ndef.c

included mifare classic support

* Update application.fam

* Update ndef.c

* Update ndef.c

* Update ndef.c

* Update ndef.c

* Update ndef.c for better parsing

Because mifare classic 1k has a sector trailer, the ndef parser might conflict with it if the payload is long enough or if there's too many payloads. This code removes all sector trailer in a new buffer and uses that for parsing without any problems.

* Rewrite NDEF as protocol agnostic

* Move type name buffer to stack when possible

* Parse URI without heap buffer

* Reduce binary sizes by using preprocessor defines

* Parse MFC without clone buffer and support MAD2

* Keep message count between different TLVs

* Simplify macro check

* Simplify length conversion

* Improve output of unparsed types

* Add some more logging

* Fix WiFi parsing

* Check MAD key before reading

* Rename ndef_read() to ndef_get()

* Update changelog

* Wording

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2024-10-24 07:55:47 +02:00
MX 3ba530555d Merge remote-tracking branch 'noproto/nestednonces' into dev 2024-10-18 14:30:43 +03:00
noproto db26c85b23 Backdoor known key logic still needs the current key 2024-10-18 00:46:24 -04:00