Commit graph

2456 commits

Author SHA1 Message Date
Georgii Surkov
022fccf0d7
[FL-3783] Asynchronous Infrared remote manipulation (#3503)
* Introduce ConcurrentRunner, load universal and regular remotes concurrently
* Perform all lengthy operations in a ConcurrentRunner
* Fix python formatting
* Clean up code
* Add usage warning
* Remove ConcurrentRunner, use a plain FuriThread instead
* Load remotes asynchronously in RPC mode as well
* Reorder code for clarity
* Clean up, use thread return code to report errors
* Improve wording
* Fix logical error
2024-03-12 02:35:51 +09:00
あく
adbe4d44f4
DateTime: fix missing weekday in datetime_timestamp_to_datetime conversion (#3508) 2024-03-11 17:09:39 +04:00
Astra
4f7eb77071
Fix troika 4K keys (#3499) 2024-03-07 15:57:32 +09:00
Astra
ecab4d53d2
[FL-870] Auto-generated firmware documentation take two (#2944)
* Add doxygen and doxygen-awesome css, cleanup docs files
* Ignore more libraries and remove leftover local variables
* Create an actual intro page
* .md files linting
* Add doxygen action
* Fix Doxygen path
* Fix doxyfile path
* Try to upload
* Change docs branch
* Add submudules checkout
* Disable doxygen on PR
* Mention the firmware docs in the readme
* More dev docs mentions in the readme
* Fix runner group, add tags
* Test dev in PR
* Disable running on PR
* Fix a typo in the doxyfile
* Try upload to S3
* Fix local path
* Fix S3 ACL
* Add delete flag, unifying dev and tags
* Update ignored directories
* More ignored directories
* Even more ignored directories
* Fix submodule
* Change S3 uploader
* Change S3 uploader version
* Fix aws sync flags
* Fix ACL
* Disable ACL
* Improve ignores, add WiFi devboard docs
* TEMP: generate dev docs
* TEMP: generate 0.89.0 docs
* Disabling PR trigger
* Enable submodules and test build
* Enable test build
* Disable test build
* Change docs directory structure
* Fix accidentally committed submodule
* Fix submodules
* Update links to the developer documentation
* Markdown linting
* Update workflow, enable test build
* Fix doxygen dir path
* Update Doxyfile-awesome.cfg
* Change paths
* Fix upload docs path
* Disable pull_request debug trigger
* Disable tags building
* Remove autolinks and namespaces
* Establish basic documentation structure
* Add missing changes
* Improve stylesheet, move some files
* Improve examples
* Improve the main page
* Improve application dev docs
* Improve system programming docs
* Improve development tools docs
* Improve other docs
* Improve application examples
* Fix formatting
* Fix PVS-studio warnings
* Improve visuals
* Fix doxygen syntax warnings
* Fix broken links
* Update doxygen action

Co-authored-by: DrunkBatya <drunkbatya.js@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
2024-03-06 15:25:21 +09:00
Silent
5e47048369
Archive: Fix item focus after aborting the Delete operation (#3475)
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-03-05 12:03:46 +09:00
assasinfil
a6c5a1ba69
Troyka parser improvements (#3390)
* Updated troyka layout (full version)
* Changed to furi func
* Small refactor
* Bitlib refactor
* Moved to API
* Rollback troyka parser
* Fix functions
* Parser func refactor start
* Layout E3 refactored
* Layout E4 refactored
* Layout 6 refactored
* Layout E5 refactored
* Layout 2 refactored
* Layout E5 fix
* Layout E6 refactored, valid_date need fix
* Layout E6 fix
* Layout FCB refactored
* Layout F0B refactored
* Layout 8 refactored
* Layout A refactored
* Layout C refactored
* Layout D refactored
* Layout E1 refactored
* Layout E2 refactored
* Fixes
* Old code cleanup
* Memory cleanup
* Unused imports cleanup
* Keys struct refactor
* Layout E1 fix
* Added debug info for layout and department
* Fix PVS warnings
* Fix more PVS warnings

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-03-05 11:56:35 +09:00
philicious
7b26dc5ebf
NFC: Fix washcity plugin verify function being to greedy (#3467)
* NFC: Fix washcity plugin verify function being to greedy
  It verifies only a single sector and that one using one of the commonly used key 0xA0A1A2A3A4A5
  This leads to false-positives and the dicts not being used at all
* nfc app: washcity plugin: fix verify function

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-03-05 11:42:39 +09:00
Rodrigo Basoalto
1070064f89
Parser for Santiago, Chile BIP transit card (#3456)
* Parser for Santiago, Chile BIP transit card
  It's used for all public transportation in the city of Santiago, Chile
  (bus, subway). We've reverse-engineered most of the non-zero bits of
  data found, and checked them across dozens of cards.
* Update to use bit_lib instead of nfc_util
* PR feedback

Co-authored-by: Rodrigo Basoalto <basoalto@fintual.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-03-04 18:50:28 +09:00
Sergei Gavrilov
4b7ca736d6
WiFi board: fixed update script on Windows (unfortunately also Mac and Linux) (#3485)
* WiFi board update: windows fix

* Scripts: add python\Scripts to the path

* Windows: another way to call esptool

* Aaaaaand once more!

* logz

* wifi board scripts: udev rule, dev channel

* fbt: added ARGS variable for passing extra options to certain scripts; removed `devboard_flash_dev` in favor of `devboard_flash ARGS="-c dev"`

* fbt: fully removed `devboard_flash_dev

* scripts: wifi_board.py: cleanup

* ufbt: ported ARGS for supported targets to ufbt

* docs: updated for ARGS=...

---------

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2024-03-01 15:58:15 +04:00
Sergei Gavrilov
18ea2371a4
Gui: reset canvas orientation and frame when entering direct draw mode (#3488) 2024-02-29 02:09:55 +04:00
Silent
7fc4ba7c1c
FBT/uFBT: Enable C++20/GNU23 in VSCode IntelliSense (#3394)
* FBT/uFBT: ms-vscode.cpptools can't be a configuration provider to itself

* FBT/uFBT: Enable C++20/C23 in IntelliSense as the compilation options do
2024-02-27 17:56:11 +04:00
hedger
bc309cebe6
Toolchain fixes (#3451)
toolchain: updated to v33 with debugging & other fixes
toolchain: better error handling during update/env configuration process
debugging: improved udev rules file, added readme on installation
firmware: bumped compiler C/C++ standards (stricter code checks)
firmware: fixed warnings emerging from newer standards
ufbt: FBT_NOENV is now also supported by ufbt
fbt: added ccache-related variables to env forward list on Windows
2024-02-26 16:16:19 +04:00
Violet Shreve
4e1089ec49
Quote $FBT_TOOLCHAIN_PATH to avoid splitting (#3459) 2024-02-18 09:20:27 +00:00
Astra
2c650b5bc7
[FL-3699] HID: Add confirmation dialogue to the remove pairing option (#3263)
* HID: Add confirmation dialogue to the un-pair option
* Initial refactor to use SceneManager
* Make PVS happy
* Fix the exit dialog

Co-authored-by: あく <alleteam@gmail.com>
2024-02-17 15:15:44 +07:00
Max Andreev
fcf3b50f69
Add notification sending (#3449)
Co-authored-by: あく <alleteam@gmail.com>
2024-02-17 14:32:32 +07:00
Maxwell Pray
88a3b4593d
Add IR codes for PLUS U5/V3-200R projector remote (controls PLUS U5-632h and PLUS U5-732h) (#3453)
* Add IR codes for PLUS U5/V3-200R projector to projector.ir.
* Add U5/V3-200R "freeze" and "cancel" IR codes.
* Remove pause and play IR codes for U5/V3-200R remote.
2024-02-17 14:26:58 +07:00
hedger
60a9d7e6cf
ble: profile rework (#3272)
* ble: profile rework, initial
* apps: hid: fix for pairing cleanup
* app: hid: select transport based on #define
* fixing PVS warnings
* ble: serial service: fixed uid naming
* bt service: on-demand dialog init; ble profiles: docs; battery svc: proper update
* Added shci_cmd_resp_wait/shci_cmd_resp_release impl with semaphore
* app: hid: separated transport code
* ble: fixed service init order for serial svc; moved hardfault check to ble_glue
* cli: ps: added thread prio to output, fixed heap display
* ble_glue: naming changes; separate thread for event processing;
* furi: added runtime stats; cli: added cpu% to `ps`
* cli: fixed thread time calculation
* furi: added getter for thread priority
* fixing pvs warnings
* hid profile: fixed naming
* more naming fixes
* hal: ble init small cleanup
* cleanup & draft beacon api
* f18: api sync
* apps: moved example_custom_font from debug to examples
* BLE extra beacon demo app
* naming fix
* UI fixes for demo app (wip)
* desktop, ble svc: added statusbar icon for beacon
* minor cleanup
* Minor cleanup & naming fixes
* api sync
* Removed stale header
* hal: added FURI_BLE_EXTRA_LOG for extra logging; comments & code cleanup
* naming & macro fixes
* quick fixes from review
* Eliminated stock svc_ctl
* cli: ps: removed runtime stats
* minor include fixes
* (void)
* naming fixes
* More naming fixes
* fbt: always build all libs
* fbt: explicitly globbing libs; dist: logging SDK path
* scripts: fixed lib path precedence
* hal: bt: profiles: naming changes, support for passing params to a profile; include cleanup
* ble: hid: added parameter processing for profile template
* api sync
* BLE HID: long name trim
* Removed unused check
* desktop: updated beacon status icon; ble: hid: cleaner device name management
* desktop: updated status icon

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: nminaylov <nm29719@gmail.com>
2024-02-16 14:20:45 +07:00
Radek Pilar
87804374c5
lfrfid/em4100: added support for different bit rates (#3410)
* lfrfid/em4100: added support for different bit rates
* Format Sources

Co-authored-by: Radek Pilar <radek.pilar@apollogames.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-02-15 15:31:04 +07:00
Leptopt1los
26ac455fb9
T5577 lib: write with mask function added (#3362)
* T5577 lib: write with mask function added
* t5577_write_with_mask: with_password param added

Co-authored-by: あく <alleteam@gmail.com>
2024-02-15 13:10:48 +07:00
Nikolay Minaylov
c3c54f672c
Archive: fixed Apps tab ext filter (#3450)
Co-authored-by: あく <alleteam@gmail.com>
2024-02-15 10:53:34 +07:00
Leptopt1los
feb45f6645
FuriHalRtc refactor: new datetime lib (#3386)
* datetimelib created
* datetimelib unit tests added
* firmware fixes to new datetimelib
* typo fix
* merge artifacts fixed, datetimelib renamed to datetime

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-02-15 10:44:41 +07:00
Leptopt1los
dd988ba449
bit_lib and nfc_util refactor (#3383)
* nfc_util functions for processing bytes moved into bit_lib
* bitlib test update
* bit_lib moved from lfrfid to standalone lib
* Added bit functions for any supported data types
* Error fix and api add
* Added test for 64
* Added doc
* Testcase for 64 rewrited
* Realization error fix
* API version bump
* sync api version, fix after-merge old libs usage
* fix build errors
* build fix
* fbt format

Co-authored-by: assasinfil <nfa57643@gmail.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-02-14 11:41:42 +07:00
gornekich
a46038acbf
Gui text box: fix formatted string memory reservation (#3447)
* text box: reserve correct memory size to avoid reallocation
* Furi: change string reset behavior to release memory, prevent realloc call. Gui: fix NULL-ptr dereference in TextBox.

Co-authored-by: あく <alleteam@gmail.com>
2024-02-14 11:19:05 +07:00
Sören
3c77dc7930
Add Model JTC Genesis 5.5 to IR (#3388)
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-02-14 10:20:36 +07:00
Nikolay Minaylov
13493916e2
JS debug disabled, archive and file browser fixes (#3446)
Co-authored-by: あく <alleteam@gmail.com>
2024-02-14 10:14:29 +07:00
hedger
0acd3bfc66
VSCode integration fixes for new toolchain (#3448)
* fbtenv: link toolchain to current on *nix
* vscode: simplified tool paths
* fbtenv: link toolchain to 'current' on Windows

Co-authored-by: あく <alleteam@gmail.com>
2024-02-14 10:05:59 +07:00
gornekich
3d9a6a41db
FIX ISO15693 emulation (#3444)
* furi hal gpio: allow enabling interrupt without handler
* signal reader: explicitly enable and disable gpio interrupt

Co-authored-by: あく <alleteam@gmail.com>
2024-02-14 09:37:04 +07:00
Nikolay Minaylov
25a280c818
JS serial module renamed, uart channel selection (#3445) 2024-02-13 10:04:27 +07:00
hedger
c8e62ba5e8
mjs: minor fixes (#3442)
* lib: mjs: removed relocation flags

* js: fixed api example script

* js: private api cleanup

* Updated CODEOWNERS & readme for apps
2024-02-12 18:16:58 +04:00
Nikolay Minaylov
0154018363
[FL-3579, FL-3601, FL-3714] JavaScript runner (#3286)
* FBT: cdefines to env, libs order
* API: strtod, modf, itoa, calloc
* Apps: elk js
* Apps: mjs
* JS: scripts as assets
* mjs: composite resolver
* mjs: stack trace
* ELK JS example removed
* MJS thread, MJS lib modified to support script interruption
* JS console UI
* Module system, BadUSB bindings rework
* JS notifications, simple dialog, BadUSB demo
* Custom dialogs, dialog demo
* MJS as system library, some dirty hacks to make it compile
* Plugin-based js modules
* js_uart(BadUART) module
* js_uart: support for byte array arguments
* Script icon and various fixes
* File browser: multiple extensions filter, running js scripts from app loader
* Running js scripts from archive browser
* JS Runner as system app
* Example scripts moved to /ext/apps/Scripts
* JS bytecode listing generation
* MJS builtin printf cleanup
* JS examples cleanup
* mbedtls version fix
* Unused lib cleanup
* Making PVS happy & TODOs cleanup
* TODOs cleanup #2
* MJS: initial typed arrays support
* JS: fix mem leak in uart destructor

Co-authored-by: SG <who.just.the.doctor@gmail.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-02-12 15:54:32 +07:00
Alessandro Rossi
389affd904
Fixed MyKey check LockID (#3412)
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-02-12 09:35:16 +07:00
Georgii Surkov
6d09bebf14
[FL-3769] Check universal remote files before loading (#3438)
* Improve code readability
* Check universal remote files before loading

Co-authored-by: あく <alleteam@gmail.com>
2024-02-12 09:30:10 +07:00
gornekich
b0df852944
NFC: fix retry scene navigation logic (#3439)
* nfc app: fix retry scene navigation logic
* nfc app: fix navigation in exit confirm scene

Co-authored-by: あく <alleteam@gmail.com>
2024-02-12 09:23:44 +07:00
Georgii Surkov
6836a7b7c5
[FL-3764] Expansion module service improvements (#3429)
* Separate expansion control and worker threads
* Add edge case checks
* Reduce expansion control thread stack size, add comments
* Fix crash when disabling expansion modules
* Show a different RPC icon for expansion modules
* Restore expansion interrupt on changing logging settings
* Improve responsiveness in heavy games at the expense of dropped frames
* Improve furi_hal_serial API
* Fix a typo
* Remove too optimistic furi_check, replace with condition
* Fix premature RX interrupt during serial configuration
* Disable expansion interrupt if the handle was acquired
* Do not use a timer callback

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-02-12 09:16:34 +07:00
hedger
14dabf523a
New toolchain with gcc 12 (#3254)
* changes for xPack 12.3
* support for gcc 13.2
* Update tools name
* Add new linux toolchain
* Fixed copro submodule
* Fix gdb-py
* Fixes for c++ apps
* Fix gdb-py3, add udev rules
* Fixed udev rules location
* Add MacOS arm, fix fbt toolchain download
* Fixed downloading error file
* fbt: fixed linker warnings; removed gcc 10 from list of supported toolchains
* ufbt: fixed supported toolchain versions
* nfc: replaced local malloc with calloc
* restored code with Warray-bounds to older state
* Update fbtenv.cmd
* Suppressing warnings
* Bump to 25
* Bump to 26
* lint: reformatted macros for new clang-format
* Bump to 27
* Fix m type word
* Bump to 28
* furi: added FURI_DEPRECATED macro
* scripts: toolchain download on Windows: fixing partially extracted cases

Co-authored-by: DrunkBatya <drunkbatya.js@gmail.com>
2024-02-12 09:04:12 +07:00
JuicyPigWalker
bcdb9cb13c
Update tv.ir (#3421)
* Update tv.ir: Added tv "TCL 50P715X1" recorded remote signals. Hope everything is okay, this is my first GitHub contribution.
* Update tv.ir: Fixed my own mistakes when uploading the signals.
* Infrared: revert 962d809ad7

Co-authored-by: Yoel <34217507+yoelci@users.noreply.github.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-02-09 17:12:46 +07:00
tomellens
962d809ad7
Update tv.ir (#3399)
Co-authored-by: あく <alleteam@gmail.com>
2024-02-09 16:39:35 +07:00
Nikolay Minaylov
3c73123a81
HID app: keyboard modifiers fix (#3378)
* HID App: Modifier keys fix
* Toggled keys indication
* New enter and backspace button icons

Co-authored-by: あく <alleteam@gmail.com>
2024-02-09 16:33:47 +07:00
Nikolay Minaylov
b2a7bb0696
[FL-3672] CLI: cat command crash workaround (#3358)
* Cli input len limit, CDC EP type fix

Co-authored-by: あく <alleteam@gmail.com>
2024-02-09 15:59:24 +07:00
Skorpionm
c0db3d541e
[FL-3753] UI SubGhz: fix UI only_rx scene (#3379)
* UI SubGhz: fix UI only_rx scene
* UI SubGhz: delete unused scene

Co-authored-by: あく <alleteam@gmail.com>
2024-02-09 15:49:58 +07:00
Tolly Hill
50e0521bf7
NFC: Custom UID entry when adding manually (#3363)
* NFC: Custom UID entry when adding manually
* Fix incorrect types
* Add Change UID option post-generation
* Update UID derived data when using set_uid method
* Fix PVS warnings

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-02-09 15:36:06 +07:00
Alessandro Rossi
ebd09a1981
Added NFC plugin; Some parser (#3335)
* Add parser
* Fix microel.c
* Fix NFC parser positive return
* fix mizip
* Fix NFC parser positive return
* Add parse to hi! tag
* fix false positive reading and kdf
* hi formatting
* fix oom in kdf
* nfc app: fix types in hi plugin
* nfc app: fix return in function body in microel plugin

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2024-02-09 15:16:14 +07:00
gornekich
6bc63b7734
[FL-3676] Slix disable privacy (#3425)
* slix: add unlock option
* slix: add features for nxp get info and signature commands
* slix: working unlock
* nfc app: rewrite slix unlock
* slix poller: simplify unlock state handler
* nfc app: fix slix key setting
* nfc app: fix navigation
* slix poller: code clean up
* slix: resolve TODO, clean code
* nfc app: fix naming
* nfc app: rework slix unlock success scene
* slix poller: add documentation
* slix listener: fix password comparison

Co-authored-by: あく <alleteam@gmail.com>
2024-02-09 15:07:54 +07:00
Nick Mooney
f6eb79e1e5
NFC: Add support for Gallagher access control (MIFARE Classic only) (#3306)
* Merge remote-tracking branch 'origin/dev' into dev
* Add basic API interface (inspired by advanced plugins example), modify NfcSupportedCardsLoadContext to contain a pointer to a resolver
* WIP: API resolver implemented / passed to plugin via context, still having resolution issues
* Attempt to add constants to the nfc_app_api_table list
* WIP: We're defining the constants directly in nfc_app_api.c to see if this fixes our woes, which it does not.
* WIP: Remove furi_assert(false) (lmao)
* Working implementation of Gallagher decoding via exposed plugin API
* lib: api_hashtable: change log level for symbol not found message
* nfc app: alloc composite resolver along with supported cards
* nfc app: rework nfc api structure
* nfc app: fix memory leakage in supported cards

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-02-09 15:00:17 +07:00
Kris Bahnsen
26da5f564b
furi/core/timer: resolve timer handle use-after-free post deletion (#3431)
When xTimerDelete is called using a dymanic timer handle, the timer
handle should immediately be considered unusable for any operation;
including checking if the timer is still running. Under high system
loads, that memory region may see fast reuse while furi_timer_free
is sleeping between timer active checks. That reuse could result in
memory at that pointer causing the timer active check to return true.

Rework the furi_timer_delete process (in the case of dynamically
allocated callback memory) to stop the timer, wait for it to stop,
free the memory, and then delete the timer. Timers without dynamically
allocated callback memory are just sent a delete command; no need
to stop it first.

Fixes: ff33bc6aea ("Furi: wait for timer wind down in destructor (#1716)")

Signed-off-by: Kris Bahnsen <Kris@KBEmbedded.com>
2024-02-08 16:22:03 +07:00
あく
afd41aade1
FuriHal: various GPIO improvements (#3406) 2024-02-07 12:09:29 +03:00
Sergei Gavrilov
29fa68118d
GUI: canvas commit callback has been moved to canvas. Direct Draw apps can now be streamed via RPC. (#3397)
Co-authored-by: あく <alleteam@gmail.com>
2024-02-07 09:38:20 +07:00
gornekich
4984e9e414
nfc app: fix incorrect protocol detection in save scene (#3430) 2024-02-06 23:25:55 +04:00
RebornedBrain
8c54c14742
[FL-3758] NFC: MFC Unlock with Dictionary (#3411)
* New menu item "Unlock with Dictionary" added to classic menu

* No retry also returns to dictionary attack if it was previously displayed

* nfc app: format code

---------

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-02-06 23:11:27 +04:00
gsp8181
e180266c1a
ITSO Parser (UK) (#3325)
* Create ITSO parser

Standard for UK transport cards outside of Oyster

* Update application.fam with ITSO parser

* Update date buffer to fix access outside array

* nfc app: use rtc function in itso plugin

---------

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2024-02-06 18:55:38 +00:00