Commit Graph

175 Commits

Author SHA1 Message Date
Sergey Gavrilov
645a7c5989
[FL-3386] Fast FAP Loader (#2790)
* FBT: build and add FastFAP(tm) sections
* Elf file: fast loading fap files. Really fast, like x15 times faster.
* fastfap.py: cleanup unused imports
* Toolchain: 23 version
* Elf File: remove log messages
* Scripts: fix file permissions
* FBT: explicit interpreter for fastfap invocation

Co-authored-by: あく <alleteam@gmail.com>
2023-06-28 17:19:10 +09:00
Konstantin Volkov
e680cf59b6
Actions: unit_test and updater timeouts (#2807)
* added some extra timeouts, fixed duration of units run command and minor logging changes. No list_ports yet needed
* increased timeouts
* make pvs happy

---------

Co-authored-by: doomwastaken <k.volkov@flipperdevices.com>
Co-authored-by: SG <who.just.the.doctor@gmail.com>
2023-06-28 06:47:13 +10:00
Sergey Gavrilov
761a14e6e2
[FL-2837][FL-3270] Loader refaptoring: second encounter (#2779)
* Core: rename internal FlipperApplication to FlipperInternalApplication
* FAP Loader: move load_name_and_icon to flipper_application library
* Loader menu: rework api
* View holder: move to gui service
* Loader: simple "loading" worker
* Loader: applications dialog
* Loader: fapping
* Update f18 api
* Apps: remove fap_loader
* Libs, flipper application: store args, rename thread allocation
* Loader: error handling
* Apps: use loader error handling
* Loader: documentation
* FBT: accomodate loader
* Loader: do not raise gui error if loader is locked
* Archive: accomodate loader
* Loader: fix loading message
* Flipper: drop some old dolphin legacy
* Loader: generalize error construction

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-06-23 21:01:40 +09:00
あく
4ddfe05a59
Debug: sync apps on attach, makes it possible to debug already started app that has crashed (#2778) 2023-06-16 10:48:57 +04:00
hedger
2312fe5bfc
[FL-3361] fbt: stable build dates (#2751)
* scripts: using commit date for clean build timestamp; current day otherwise
* scripts: version: Removing GIT_COMMIT_DATE from final data

Co-authored-by: あく <alleteam@gmail.com>
2023-06-09 21:27:47 +09:00
hedger
1c306a04fc
[FL-3359] github: added debugapps artifact; packaging resources per-target (#2750)
* github: added debugapps artifact; packaging resources per-target
* github: target name fixes
* github: fixed path for debug apps
* scripts: dist: removed lib stub artifact
* scripts: fixed broken SDK
* github: removed unused step
2023-06-08 21:43:05 +09:00
Sergey Gavrilov
e5343fdc9a
Scripts: WiFi board updater (#2625)
* Scripts: wifi updater
* WiFi board updater: lint, process download error
* WiFi board updater: auto cleanup temp dir
* Scripts: fix server address
2023-06-08 17:28:08 +09:00
hedger
3226254876
[FL-3351] github: re-enabled f18 build (#2743)
* github: re-enabled f18 build
* scripts: storage: better transfer logging
* Fix PVS warnings

Co-authored-by: あく <alleteam@gmail.com>
2023-06-08 15:16:01 +09:00
hedger
436194e6c7
[FL-3346] fbt: added Flipper selection when multiple are connected over USB (#2723)
* fbt: added Flipper selection when multiple are connected over USB
* scripts: serial_cli: added --port (-p) option
2023-06-08 13:47:27 +09:00
glebmashanov
09fae620d9
Map parser licence description (#2739)
* Add map parser licence description
* Add map parser copyright text & licence note

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
2023-06-07 17:30:26 +04:00
hedger
754e640c8d
[FL-3246] fbt, ufbt: added checks for appid in app manifests(#2720)
Co-authored-by: あく <alleteam@gmail.com>
2023-06-07 11:14:33 +09:00
Max Andreev
6f6ead1726
[FL-3045] Fix core2 permisions (#2742)
* Fix core2 permisions

* Fix Python code style

* scripts: copro: changed int literals

* scripts: copro: shorter string line in code

---------

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2023-06-06 23:33:04 +04:00
DEXV
e4a2e9a920
Serial_CLI: Fixing serial cli logger error so it sounds more concise (#2721)
Co-authored-by: hedger <hedger@users.noreply.github.com>
2023-06-06 22:18:24 +04:00
Max Andreev
72ad22bb91
[DEVOPS-18]: Add map file parser, mariadb inserter (#2732) 2023-06-05 19:25:43 +09:00
Zoë Prosvetova
3a7203e32e
Update dolphin.py (#2717)
Co-authored-by: あく <alleteam@gmail.com>
2023-06-01 18:59:41 +09:00
hedger
8d2ea14f06
[FL-3330] fbt: added hooks for build & dist environments; added FW_ORIGIN_* macro for apps & SDK (#2705)
* fbt: added hooks for build & dist environments
* Moved env hooks to an optional file
* Fixed var name
* Added fw origin to device info
* Bumped device info version
* fbt: added FIRMWARE_ORIGIN option. Different implementation for FW_ORIGIN_* C macro.
* api: bumped versions
* fbt: added fbt_options_local.py
* gitignore: cleanup

Co-authored-by: あく <alleteam@gmail.com>
2023-05-30 01:40:56 +09:00
hedger
a821a2fcc0
[FL-3328] Removed user-specific data from tar artifacts (#2691) 2023-05-23 19:51:21 +09:00
Yukai Li
5f1ac6e1b1
fbt: Fix tar uid overflow when packaging (#2689)
* fbt: Fix tar uid overflow when packaging
* Fix trailing spaces
2023-05-22 13:14:18 +04:00
MX
d9fc408d96
fbt: Use union for old py (#2685) 2023-05-21 21:50:38 +04:00
hedger
8d1f5b04b3
[FL-3317] fbt: allow strings for fap_version field in app manifests (#2672) 2023-05-14 20:49:52 +09:00
あく
f57f0efc48
Debug: revert cortex debug to lxml and drop DWT (#2651)
* Debug: revert cortex debug to lxml

* Debug: update PyCortexMDebug readme

* fbt: moved "debug" dir to "scripts" subfolder

* ufbt: added missing debug_other & debug_other_blackmagic targets; github: fixed script bundling

* lint: fixed formatting on debug scripts

* vscode: updated configuration for debug dir changes

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>
2023-05-09 03:31:44 +04:00
hedger
241b4ef6e4
[FL-3299] furi_crash: added C2 status; added fw-version gdb command (#2638)
* furi_crash: added C2 status
* debug: Added "fw-version" gdb command; vscode: updated configuration to use new command
* debug: added fw-info command to debug_other session
* Toolbox: versioned structure for Version
* debug: fw-version: no longer needs an ELF file loaded
* debug: flipperversion: removed unused variable
* debug_other: print running fw version

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-05-09 07:31:39 +09:00
hedger
268b88be0d
[FL-3285] Removed STM32CubeWB module (#2608)
* libs: removed STM32CubeWB module; split cube into 3 submodules
* fixed f18 version
* fbt: options: fixed expected stack version
* pvs: updated for new paths
* fbt: ep: multithreaded submodule update
* libs: stm32cubewb: fixed duplicate include path; renamed to stm32wb; codeowners: updated paths; docs: updated paths
* pvs: updated paths
* libs: added cmsis_core from ARM sources, v.5.4.0, from https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/Core/Include
* Updated stm32wb_copro structure
* PVS: exclude cmsis core from analysis

---------

Co-authored-by: あく <alleteam@gmail.com>
2023-05-09 06:30:33 +09:00
hedger
538f96f0ac
[FL-3300] API version in UI (#2649)
* desktop, about: replaced commit# with API version
* scripts: storage: added approx speed for file uploads
* scripts: selfupdate: use folder name by default
* vscode: fixed broken get_blackmagic shell integration on *nix

Co-authored-by: あく <alleteam@gmail.com>
2023-05-08 20:11:23 +09:00
hedger
f7dd77795a
ufbt: deploying sample ufbt automation for new apps; added source "ufbt -s env" for toolchain access (#2648) 2023-05-08 20:01:52 +09:00
Perry Fraser
954780ed24
Fix storage.py exist_dir logic (#2639)
* Fix storage.py exist_dir logic. This method would return true if the given path existed as either a directory or
a file, which is what the plain exist method is for.
2023-05-07 22:40:38 +04:00
hedger
c3ececcf96
[FL-3174] Dolphin builder in ufbt; minor ufbt/fbt improvements (#2601)
* ufbt: added "dolphin_ext" target (expects "external" subfolder in cwd with dolphin assets); cleaned up unused code
* ufbt: codestyle fixes
* scripts: fixed style according to ruff linter
* scripts: additional cleanup & codestyle fixes
* github: pass target hw code when installing local SDK with ufbt
* ufbt: added error message for missing folder in dolphin builder
* scripts: more linter fixes
* sdk: added flipper_format_stream; ufbt: support for --extra-define
* fbt: reduced amount of global defines
* scripts, fbt: rearranged imports

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-05-03 14:48:49 +09:00
Georgii Surkov
238005890e
[FL-3294] Fix TERMINFO on Linux systems (#2630)
* Fix TERMINFO on Linux systems
* Set TERMINFO_DIRS only on Linux
* Unset TERMINFO_DIRS if it was not set before
2023-05-03 00:56:25 +03:00
hedger
1ef70c0bb4
[FL-3280] cubewb: downgraded to v1.15.0 (#2605)
* cubewb: downgraded to v1.15.0
* hal: updated f18 symbols to match LL
* hal: flash: use furi_hal_cortex_timer for timeouts
* scripts: fixed cube version validation from config file
* hal: flash: added 3 seconds timeout when waiting for C2 to unlock flash controller. On timeout, triggers furi_check
* nfc: fixed missing interrupt setup on multiple platformSetIrqCallback() invocations
* hal: gpio: don't trigger furi_check on furi_hal_gpio_add_int_callback() with same parameters
* Reverted NFC fixes - will be in a separate PR
* scripts: storage: fixed exception handler for paths
2023-04-24 16:19:36 +09:00
hedger
4d015a1106
[FL-3271] cubewb: updated to v1.16.0 (#2595)
* cubewb: updated project to v1.16.0
* hal: updated api_symbols for f18
* FuriHal: add missing enterprise sleep and insomnia
* FuriHal: slightly more paranoic sleep mode

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-04-20 21:57:51 +09:00
hedger
3932503660
[FL-3243] github: testing SDK with ufbt action (#2581)
* github: testing SDK with ufbt action
* github: also build apps with ufbt
* github: fixed dir lookup for ufbt
* ufbt: checks for compatibility on app discovery
* github: Conditional app skip for ufbt
* github: fixed app build flow with ufbt
* extra debug
* github: lint: message capture
* github: testing different output capture method for linters
* shorter version of status check
* github: updated comment actions to suppress warnings
* Reverted formatting changes

Co-authored-by: あく <alleteam@gmail.com>
2023-04-19 20:08:13 +09:00
hedger
b9ccb274a7
ufbt: project & debugging updates (#2572)
* ufbt: removed warning in "channel=dev" update mode
* ufbt: removed API version warning; added get_blackmagic & get_apiversion targets
* ufbt: updater project template to include blackmagic & jlink targets
* ufbt: project template: fixes & updates
* ufbt: project template: added config update shortcut
* sdk: using fixed names for file components
2023-04-11 00:46:22 +10:00
hedger
89161a7a1e
scripts: sconsdist: added stub file artifact for older ufbt (#2568)
* scripts: sconsdist: added stub file artifact for older ufbt
* scripts: sconsdist: not creating dummy SDK archive
2023-04-07 05:37:12 +10:00
あく
0d8518d31d
[FL-3232] FuriHal: fix gpio naming and add explicit pulls for vibro, speaker and ir_tx (#2565)
* FuriHal: fix gpio naming and add explicit pulls for vibro, speaker and ir_tx
* Github: workflow event debug print
* Github: proper PR head commit SHA extraction in get_env.py
2023-04-06 19:06:19 +10:00
hedger
a91d319839
[FL-3162] Moved ufbt to fbt codebase (#2520)
* scripts: moved ufbt code
* ufbt: fixed tool path
* ufbt: fixed linter/formatter target descriptions
* scripts: ufbt: cleanup
* fbt: moved fap launch target to tools; ufbt fixes
* fbt: fixed missing headers from SDK
* ufbt: removed debug output
* ufbt: moved project template to main codebase
* ufbt: fixed vscode_dist
* ufbt: path naming changes
* fbt: error message for older ufbt versions
* ufbt: docs fixes
* ufbt: fixed build dir location
* fbt: fixes for extapps objcopy
* fbt: extapps: removed extra debug output; fixed formatting
* ufbt: handle launch target for multiple known apps
* ufbt: dropping wrapper; linter fixes
* ufbt: fixed boostrap path
* ufbt: renamed entrypoint
* ufbt: updated vscode config
* ufbt: moved sconsign db location
* ufbt: fixed sconsign path
* fbt: SDK builders rework
* fbt: reworked sdk packaging
* ufbt: additional checks and state processing
* ufbt: fixed sdk state file location
* dist: not packaging pycache
* dump commit json content
* Github: more workflow debug prints
* Github: fix incorrect commit meta extraction in get_env.py
* ufbt, fbt: changed SConsEnvironmentError->StopError
* fbtenv: no longer needs SCRIPT_PATH pre-set
* ufbt: fixed sdk state check
* scripts: exception fixes for storage.py
* scripts: fbtenv: added FBT_TOOLCHAIN_PATH for on Windows for compat
* ufbt: app template: creating .gitkeep for images folder
* ufbt: app template: fixed .gitkeep creation
* docs: formatting fixes for AppManifests; added link to ufbt
* fbt: added link to PyPI for old ufbt versions
* sdk: fixed dir component paths

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-04-06 10:44:37 +08:00
Sergey Gavrilov
6ec62f48f9
[FL-3180] OTP programmer: return exit code based on error type (#2504) 2023-03-20 21:07:17 +09:00
hedger
771c47f809
fbt: explicitly set dist suffix length, not depending on environment settings. See (#2497) 2023-03-16 22:46:18 +09:00
hedger
53435579b3
[FL-3097] fbt, faploader: minimal app module implementation (#2420)
* fbt, faploader: minimal app module implementation
* faploader, libs: moved API hashtable core to flipper_application
* example: compound api
* lib: flipper_application: naming fixes, doxygen comments
* fbt: changed `requires` manifest field behavior for app extensions
* examples: refactored plugin apps; faploader: changed new API naming; fbt: changed PLUGIN app type meaning
* loader: dropped support for debug apps & plugin menus
* moved applications/plugins -> applications/external
* Restored x bit on chiplist_convert.py
* git: fixed free-dap submodule path
* pvs: updated submodule paths
* examples: example_advanced_plugins.c: removed potential memory leak on errors
* examples: example_plugins: refined requires
* fbt: not deploying app modules for debug/sample apps; extra validation for .PLUGIN-type apps
* apps: removed cdefines for external apps
* fbt: moved ext app path definition
* fbt: reworked fap_dist handling; f18: synced api_symbols.csv
* fbt: removed resources_paths for extapps
* scripts: reworked storage
* scripts: reworked runfap.py & selfupdate.py to use new api
* wip: fal runner
* fbt: moved file packaging into separate module
* scripts: storage: fixes
* scripts: storage: minor fixes for new api
* fbt: changed internal artifact storage details for external apps
* scripts: storage: additional fixes and better error reporting; examples: using APP_DATA_PATH()
* fbt, scripts: reworked launch_app to deploy plugins; moved old runfap.py to distfap.py
* fbt: extra check for plugins descriptors
* fbt: additional checks in emitter
* fbt: better info message on SDK rebuild
* scripts: removed requirements.txt
* loader: removed remnants of plugins & debug menus
* post-review fixes
2023-03-14 23:29:28 +09:00
あく
4bd3dca16f
Fbt: fix broken resource deployment (#2477) 2023-03-10 20:13:11 +09:00
Sergey Gavrilov
4fd043398a
Embed assets in elf file (#2466)
* FBT: file_assets generator
* Elf file: process manifest section externally
* FBT, file_assets generator: add assets signature
* Storage: assets path alias
* Flipper application: assets unpacker
* Apps, Storage: use '/data' alias for apps data
* Storage: copy file to file
* Assets: log flag, fixes
* Update f18 api
* Assets: asserts
* Assets: fix signature_data check
* App assets: example
* Example assets: fix folder structure in readme
* Assets: fix error handling
* Assets builder: use ansii instead of utf-8, use .fapassets section instead of .fapfiles, add assets path to signature
* Elf file: comment strange places
* Storage: totaly optimized storage_file_copy_to_file
2023-03-10 01:01:53 +10:00
Sergey Gavrilov
777a4d109d
[FL-3055] Getter for application data path (#2181)
* Threads: application id
* Unit tests: appsdata getter test
* Unit tests: moar test cases for appsdata getter
* Unit tests: remove folders after test
* Storage: dir_is_exist, migrate, + unit_tests
* Plugins: migration
* Storage: common_exists, moar unit_tests 4 "common_migrate", "common_migrate" and "common_merge" bugfixes
* Storage: use FuriString for path handling
* Storage API: send caller thread id with path
* Storage: remove StorageType field in storage file list
* Storage: simplify processing
* Storage API: send caller thread id with path everywhere
* Storage: /app alias, unit tests and path creation
* Storage, path helper: remove unused
* Examples: app data example
* App plugins: use new VFS path
* Storage: file_info_is_dir
* Services: handle alias if the service accepts a path.
* App plugins: fixes
* Make PVS happy
* Storage: fix storage_merge_recursive
* Storage: rename process_aliases to resolve_path. Rename APPS_DATA to APP_DATA.
* Apps: use predefined macro instead of raw paths. Example Apps Data: README fixes.
* Storage: rename storage_common_resolve_path to storage_common_resolve_path_and_ensure_app_directory
* Api: fix version
* Storage: rename alias message
* Storage: do not create app folders in path resolving process in certain cases.

---------

Co-authored-by: Astra <93453568+Astrrra@users.noreply.github.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-03-02 03:57:27 +10:00
あく
1d55aee39c
Fix incorrect type choise condition in image compressor (#2434) 2023-02-27 02:29:42 +10:00
Mathie
203adabc46
Update update.py (#2426)
Fixed grammar mistake

Co-authored-by: あく <alleteam@gmail.com>
2023-02-25 22:41:49 +09:00
Max Andreev
3de6ae07b7
[FL-2974] Up toolchain version to 21 (#2416)
Co-authored-by: あく <alleteam@gmail.com>
2023-02-20 21:21:29 +09:00
Max Andreev
c7fbc8323b
Toolchain 20 rollback (#2410)
* Toolchain rollback
* Remove extra code
2023-02-18 01:06:48 +09:00
hedger
335f8b9aff
fbt: FBT_QUIET option; docs on environment (#2403)
* fbt: added FBT_QUIET to suppress toolchain version output; docs: added info on fbt environment
* docs: typo fixes
* fbt: fix for FBT_QUIET handling on *nix
* Add FBT_VERBOSE flag
* Add export
* Fix export
* docs: updates for FBT_VERBOSE

Co-authored-by: DrunkBatya <drunkbatya.js@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2023-02-17 21:22:08 +09:00
Max Andreev
487d03eca4
Fix openssl path again (#2409)
* Temp fix openssl  cert path
* Moving fix from CI to fbtenv
* Fix openssl again
2023-02-17 18:59:08 +09:00
Max Andreev
32b74b968e
Fix openssl cert path in fbtenv (#2408)
* Temp fix openssl  cert path
* Moving fix from CI to fbtenv
2023-02-17 18:16:53 +09:00
Max Andreev
2fdebb639b
[FL-3098] Up toolchain to version 20 (#2397)
* Up toolchain to 20
* Python reformat, add version info into fbtenv

Co-authored-by: あく <alleteam@gmail.com>
2023-02-16 01:56:25 +09:00
hedger
d0c6c3402c
Updater visual fixes (#2391)
* updater: removed unused code; fbt: fixed build error processing in certain cases
* updater: simplified internal pre-update state
* updater: rebalanced stage weights; fixed progress hiccups
2023-02-13 23:07:53 +09:00