Commit graph

1363 commits

Author SHA1 Message Date
Eric Betts
8af2198684
Iclass UI (#1366)
* Move structs to header
* roll mbedtls into loclass
* Picopass with scene for reading card
* Picopass: fix memory leak
* Lib: return mbedtls back
* Picopass: rename symbols to match naming guide

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-07-06 00:28:27 +09:00
hedger
34d97ebb4a
fbt: compile_commands fixes & better latest directory handling (#1368)
* fbt: fixed linking updater as latest build dir for "flash_usb"
* fbt: fixed cdb regeneration logic; refactored build/latest linking logic
* fbt: docs update

Co-authored-by: あく <alleteam@gmail.com>
2022-07-05 21:24:59 +09:00
hedger
c49db35ee0
storage: lfs fingerprint wasn't updated when both geometry changed & factory reset was requested, resulting in second re-format on next boot (#1372) 2022-07-05 21:17:26 +09:00
Roman Shchekin
05b7b7f2db
plugins: snake: simplification in direction calculation (#1361)
Co-authored-by: hedger <hedger@users.noreply.github.com>
2022-07-04 20:49:23 +03:00
hedger
43fd2e4433
fbt: added support for FBT_NO_SYNC environment variable to skip submodule update at start (#1363) 2022-07-05 03:38:18 +10:00
hedger
6b6ea44802
fbt: initial blackmagic support (#1362)
* fbt: added separate script for Windows env setup; moved flash targets from firmware.scons to SConstruct; added Blackmagic support with automatic probe port resolution; added apps.c rebuild on any manifest.fam changes; fixed simultaneous flash & debug ops
* fbt: added networked BlackmagicResolver mode; added `get_blackmagic` target for IDE integration
* fbt: cleanup
* fbt: docs update; fixed blackmagic lookup on certain usb hubs
* fbt: removed explicit python serial port import
* fbt: cleanup
* fbt: raising exception on multiple serial blackmagic probes
2022-07-05 02:53:04 +10:00
Samuel Yvon
793501d62d
Add GPIO control through RPC (#1282)
* Add GPIO control through RPC
* Assets: sync protobuf to 0.10
* Assets: update protobuf to fixed v10

Co-authored-by: あく <alleteam@gmail.com>
2022-07-05 00:32:06 +09:00
あく
c495677eb5
FuriHal: RTC recovery routine and ext3v3 enabled on start (#1357)
* FuriHal: leave ext3v3 enabled on start
* FuriHal: RTC recovery routine, cleanup resources

Co-authored-by: SG <who.just.the.doctor@gmail.com>
2022-07-05 00:26:02 +10:00
hedger
b95cd2df14
[FL-2578] Updater fixes related to /int handling (#1359)
* Updater fixes related to /int handling
  updater: performing factory reset on update, checking for LFS free space before updating, fixed improper error handling on backup/restore operations, rebalanced update stage weights for better progress visuals
  scripts: added CLI output validation for selfupdate.py
  storage: added pointer validation in storage_int_common_fs_info
  desktop: fixed crash on rendering invalid slideshows
* Typo fix
* rpc: Updated protobuf to 0.9
* rpc: removed updater status conversion

Co-authored-by: あく <alleteam@gmail.com>
2022-07-04 22:36:12 +09:00
Nikolay Minaylov
4a1695ba1c
[FL-2589] RPC App control commands (#1350)
* RPC App control commands
* Button release timeout
* SubGhz tx fix

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-07-04 22:09:46 +09:00
Yukai Li
0e78f38404
nfc: On-device tag generator (#1319)
* nfc: Add tag generator base
* nfc: Fix BCC generation
* nfc: Add MFUL EV1 generators
* nfc: Fix typos in generator
* nfc: Add NTAG21x generators
* nfc: More const
* nfc: Add NTAG I2C generators
* nfc: Add field names to generator initializers
* nfc: Move generators to add manually scene
* nfc: Revise tag generator UX
* nfc: Revert add manually menu item name
* nfc: Remove unused scene start submenu index

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2022-07-04 20:16:59 +09:00
Eric Betts
ffd6eda361
Add iClass keys to source (#1360) 2022-07-04 20:54:36 +10:00
Skorpionm
fea2bfa822
[FL-2610] SubGhz: add keypad lock SubGhz -> Read (#1343)
* [FL-2610] SubGhz: add keypad lock SubGhz -> Read
* SubGhz: fix multiple clicks on the back button
* SubGhz: turn on the backlight when receiving with the keypad locked. key processing delay when exiting Locked mode
* SubGhz: chanage lock variable and enums names
* SubGhz: replace direct return with consumed

Co-authored-by: あく <alleteam@gmail.com>
2022-07-04 01:03:36 +09:00
David
09ec3832c8
Improved PR build comment (#1348)
* Improved PR build comment
* Update build.yml

Co-authored-by: あく <alleteam@gmail.com>
2022-07-04 00:01:24 +09:00
gornekich
5769595e67
NFC emulation software tunning (#1341)
* digital_signal: optimize calculationxx
* firmware: add listen start and listen rx
* digital signal: rework with fixed point calculation
* nfc: tune timings
* nfc: fix array overflow
* mifare classic: fix key access
* nfc: rework spi bus access
* nfc: rework listen mode with st25r3916 calls
* digital signal: speed up digital_signal_append()
* digital signal: remove unused profiling
* nfc: clean up code
* nfc: correct sleep state
* nfc: add unit tests
* nfc: fix memory leak in unit test
* digital_signal: remove unused code
* nfc: fix incorrect sak load in pt memory

Co-authored-by: あく <alleteam@gmail.com>
2022-07-03 23:51:50 +09:00
Eric Betts
1975868ed8
PicoPass / iClass (#1298)
* add mdedtls for des3 implementation
* add localss from RfidResearchGroup/proxmark3
* picopass reader app and rfal for communicating with picopass cards
* always turn off field
* close storage when keys are not found
* Add mbedtls as submodule
* add mbedtl_config
* Switched to only including specific mbedtls files I need.  Thank you @kevinwallace
* cherry-pick kevinwallace sconsify
* scons for mbedtls/loclass
* Reset to ready state on error
* unsigned FC/CN
* clean FC/CN if not decoded

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: Kevin Wallace <git+flipperzero@kevin.wallace.seattle.wa.us>
2022-07-03 17:44:38 +09:00
hedger
b3767d143f
fbt: fixes (#1352)
* fbt: added --git-tasks; fixed typos
* fbt: fixed --extra-int-apps handling; scripts: moved storage.py & selfupdate.py to App() framework
* fbt: changed pseudo-builders to PhonyTargets with commands; added link to latest build dir as build/latest
* fbt: Restored old ep git handling
* fbt: dropped git tasks & dirlink.py
* fbt: removed extra quoting in fbt.cmd
* docs: added flash_usb to ReadMe.md

Co-authored-by: あく <alleteam@gmail.com>
2022-07-01 01:06:12 +09:00
quantum-x
8632c77d68
1342 add mifare infineon (#1346)
* Adding MIFARE 1K Infineon Compatibility
  As per Issue #1342,
  MIFARE Classic 1K Cards from NXP have the SAK value of 0x08.
  MIFARE Classic 1K Cards from Infineon have an SAK value of 0x88.
  Adding the SAK values accordingly so that Infineon tags are properly handled.
2022-06-30 23:47:08 +09:00
hedger
8b988e2b17
fbt: updater over USB (#1344)
* Scripts: added update package uploader over USB; fbt: added flash_usb target
* fbt: additional dependencies for flash_usb
* Cli: fix cursor_position corruption

Co-authored-by: あく <alleteam@gmail.com>
2022-06-28 22:03:49 +09:00
hedger
e6f18cc322
fbt: building core with respect for debug flag (#1347)
* fbt: building `core` with respect for debug flag
* fbt: added size output for firmware elf
* Infrared: fix cli

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-06-28 21:28:55 +09:00
Skorpionm
6d38740a46
SubGhz: fix protocol scher_khan (#1323)
Co-authored-by: あく <alleteam@gmail.com>
2022-06-26 21:16:56 +09:00
hedger
f3b1475ede
[FL-2052] New build system based on scons (#1269) 2022-06-26 21:00:03 +09:00
Skorpionm
c79fb61909
SubGhz: add protocol PowerSmart / SolarSmart Roller Shutters (#1335)
* SubGhz: add protocol Power Smart
* SubGhz: parsing protocol Power Smart
* SubGhz: add parsing cannel
* SubGhz: add unit test
* SubGhz: update files unit test_random_raw

Co-authored-by: あく <alleteam@gmail.com>
2022-06-23 00:18:52 +09:00
Georgii Surkov
0b83316560
[FL-2603] Infrared: exit app properly if ran from outside the launcher (#1340)
* Exit app if no previous scene was found
* Infrared: correct return logic for started from archive app

Co-authored-by: あく <alleteam@gmail.com>
2022-06-23 00:12:39 +09:00
Georgii Surkov
9868a65c15
[FL-2602] Infrared: Fix crash when messing with SD card (#1339)
* Fix crash after removing SD card and exiting
* Show an error if SD card was removed on Universal remote screen
2022-06-23 00:05:17 +09:00
Yukai Li
556af0b82b
nfc: NTAG21x complete emulation (#1313)
* nfc: Refactor Mifare Ultralight feature flags
  Unify them in both reader and emulator to make handling easier
* nfc: Refactor MFUL PWD_AUTH and add AUTHLIM counter
* nfc: Add MFUL EV1 VCSL command emulation
* nfc: Enforce message size check in MFUL emulation
  Also fix READ_CNT byte order, but it's not fully working
* nfc: Add MFUL auth counter serialization
  Also fill counter on successful read from tag
* nfc: Fix MFUL INCR_CNT emulation
* nfc: Fix MFUL READ_CNT emulation
* nfc: Refactor MFUL emulation and implement full write support
* nfc: Fix Mifare Ultralight serialization
* nfc: Add MFUL OTP/CC handling
* nfc: Make sure MF0UL21 dynamic lock byte 3 also reads 0xBD
* nfc: Small MFUL refactor and fix CFGLCK behavior
* WIP: nfc: MFUL read support with ASCII mirror and auth roll-over
  This is too complex and I don't like it
* nfc: Simplify MFUL read emulation, fix mirror range check
* nfc: Implement MFUL auth and ASCII mirror for FAST_READ
* nfc: Fix MFUL read roll-over with AUTH0 set
* nfc: Implement MFUL read counter increment
* nfc: Align ASCII mirror to NTAG21x behavior
* nfc: Handle invalid command in MFUL emulation
* nfc: Fix MFUL static lock check
* nfc: Refactor MFUL emulation to use cached config pages
* nfc: Refactor MFUL auth counter to count up instead of down
* nfc: Add missing NULL check
* WIP: nfc: Various MFUL emulation behavior tweaks
* WIP: nfc: More MFUL emulation behavior adjustments
* nfc: Match AUTHLIM emulation to NTAG21x behavior
* nfc: Fix MFUL dynamic lock emulation
* nfc: Fix typo in MFUL read counters
* nfc: Fix typo in MFUL FAST_READ emulation
* nfc: Increase emulation TX buffer size
  Enough space for if someone requests FAST_READ of all pages of an NTAG
* nfc: Fix MFUL negative verification counter overflow
* nfc: Change auth counter kv name
* nfc: Fix NTAG I2C FAST_READ emulation
* nfc: Fix NTAG21x config reload behavior

Co-authored-by: あく <alleteam@gmail.com>
2022-06-22 00:04:35 +09:00
Kevin Wallace
88facf20c1
nfc: DESFire fixes (#1334)
* nfc: don't give up on reading DESFire card if GET_KEY_SETTINGS fails
  Some cards are configured to refuse to provide key settings, but still
  provide other info.  For example, Ubiquiti UniFi Protect access cards
  won't list keys or applications, but will still answer GET_FREE_MEMORY.
* nfc: don't show error when saving DESFire card with no applications
* nfc: fix DESFire load with 0 applications or no PICC key settings

Co-authored-by: Kevin Wallace <git+flipperzero@kevin.wallace.seattle.wa.us>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-06-21 23:58:22 +09:00
Georgii Surkov
92f763e553
[FL-2548] Infrared: show error if no SD card/databases (#1337)
* Add Database error scene
* More general popup callback name
2022-06-21 23:45:55 +09:00
hedger
eb31fed0e2
[FL-2556] Update complete screen (#1332)
* Desktop: slideshow implementation
* Updater: handling splashscreen installation; added format version field to slideshow binary
* Desktop: added bidirectional slideshow navigation + instant cancel by "back" button; Updater: rebalanced update stages weights
* Updater: fixed missing field init; fixed potential loop when baking slideshows
* Assets: fixed "update complete" image to match original
* Desktop: added check for slideshow file version
* Scripts: slideshow.py cleanup
* Desktop: removed first start intro sequence
* Desktop: removed first start remnants
2022-06-21 23:11:34 +09:00
Nikolay Minaylov
4b02a404ba
[FL-2588] RPC storage: Ignore incorrect file names #1318
Co-authored-by: あく <alleteam@gmail.com>
2022-06-21 22:46:39 +09:00
Skorpionm
dab1313a3b
SubGhz: frequency analyzer combined frequency detection method (#1321)
Co-authored-by: あく <alleteam@gmail.com>
2022-06-21 22:30:30 +09:00
hedger
f060d005f4
[FL-2511] Updater: fixed long update descriptions overlapping UI elements #1327
Co-authored-by: あく <alleteam@gmail.com>
2022-06-21 22:25:05 +09:00
Georgii Surkov
a8acfcabb4
[FL-2568] Infrared C port (#1326)
* Add skeleton for infrared C port, rename old app
* Add scene stubs
* Add more views
* Misc changes
* Add remote and signal class stubs
* Complete infrared signal class
* Add remote button class stub
* Check if button contains a signal during destruction
* Complete infrared signal class more
* Implement remote storing
* Implement remote loading
* Fix error handling
* Implement remote transmitting
* Rename scene
* Canonise event consumption
* Implement remote learning (stub)
* Implement learn success screen (stub)
* Implement AskBack scene
* Improve remote saving&loading
* Fix remote file name
* Add LearnDone scene
* Switch from Remote scene correctly
* Add SceneButtonSelect
* Remove unneeded assert
* Add new SceneManager method
* Use new SceneManager method in Infrared
* Implement renaming of buttons and remotes
* Implement deleting of buttons and remotes
* Add universal remotes list
* Add brute force code
* Brute force code improvements
* Partially implement Universal Remote GUI
* Fix wrong singnal handling
* Fully implement Universal Remote
* Use standard custom events everywhere
* Return infrared CLI
* Remove old Infrared app
* Change container name
* Fix scene order
* Put ButtonPanel into stack only when needed
* Show loading animation during slow operations
* Do not hardcode Loading widget coordinates
* Switch Loading widget orientation as needed
* Save Start scene state
* Save Remote scene state
* Save Edit scene state
* Save EditButtonSelect scene state
* Do not use scene state
* Use string_t instead of const char* for brevity
* Fix memory leak
* Fix saving raw remotes
* Add Infrared debug menu
* Add debug view
* Move Infrared monitor into Infrared application
* Remove old Infrared monitor app
* Use common signal received callback everywhere
2022-06-21 21:45:50 +09:00
あく
839e52ac32
[FL-2591] Furi: remove CMSIS thread api, migrate to FuriThread, remove unused CMSIS APIs (#1333)
* Furi: remove CMSIS thread api, migrate to FuriThread, remove unused CMSIS APIs
* Furi: magic thread catcher validating thread completion; backtrace improver
* Furi: allow furi_thread_get_current_id outside of thread context
* Furi: use IRQ instead of ISR for core primitives
2022-06-20 18:54:48 +04:00
Astra
7618c8ba6f
Change "cad" to "card" (#1320)
This bugs me too much to just ignore it -_-
2022-06-15 13:20:46 +10:00
Skorpionm
adffe20bcb
SubGhz: bugfix 0.60.0 (#1317)
* SubGhz: fix adding one when renaming a file
* SubGhz: fix wrong folder after unsave
* SubGhz: fix syntax
* Github: update codeowners
* Github: fix path selector in codeowners for docker-compose
* Github: add lib owners

Co-authored-by: あく <alleteam@gmail.com>
2022-06-14 12:06:36 +09:00
あく
fb4d4011f4
SubGhz: allow refill attempt at the end of transmission (#1314) 2022-06-14 11:27:03 +10:00
あく
b2132b2ec7
Nfc: async pcap worker (#1315)
* Nfc: async pcap worker
* nfc: add pcap save to classic emulation

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2022-06-14 11:14:13 +10:00
ianegordon
fb8c8ae21c
Fix typos in macOS Bad USB demo (#1316)
* Fix typos in macOS Bad USB demo
* Update Manifest to reflect demo_macos.txt changes
2022-06-14 09:57:14 +09:00
あく
cc861dd92b
Desktop: poweroff timer and 5 seconds delay and other improvements (#1312)
* Desktop: poweroff timer and 5 seconds delay
* Desktop: cleanup logic in settings application
2022-06-13 12:40:57 +10:00
Nikolay Minaylov
47acf24801
HW LED blink integration (#1310) 2022-06-13 10:08:28 +09:00
gornekich
d876f10193
nfc: don't store pcap for mifare classic emulation (#1309) 2022-06-11 00:23:45 +10:00
Kevin Wallace
d378ca6fda
desktop: prompt to power off on back button long press (#1279)
* desktop: prompt to power off on back button long press
   Implemented by launching Power Settings app, passing "off" as arg to
   directly jump to "power off" scene.
2022-06-10 22:29:25 +09:00
David
b3186e29e2
Desktop: Secondary favorite app (#1307) 2022-06-10 21:38:16 +09:00
あく
e0005d5336
[FL-2534] Correct scene navigation UX in storage app #1308 2022-06-10 19:49:25 +09:00
Nikolay Minaylov
761de00501
Fix CLI storage read (#1305)
* Fix cli storage read
* Github: install with web updater

Co-authored-by: あく <alleteam@gmail.com>
2022-06-10 10:28:05 +09:00
あく
f5ab37ac99
Cli: cleanup gpio commands (#1306)
* Cli: cleanup gpio commands

* Cli: extra gpio message for debug pins
2022-06-10 01:04:36 +10:00
あく
936a2f64b2
[FL-2580] FuriHal: add more supported radio stacks (#1301)
* FuriHal: add more supported radio stacks
* Bt: correct ble stack enum value
* Bt: update cli testing commands implementation
* Scripts: always emitting ob data to update manifest; added ob_custradio.data for non-light radio stacks
* Scripts: added stack type whitelist & disclaimer message
* ble: remove scanner
* ble: remove HCI and advances ble stacks support
* bt: correctly close RPC session before bt reinit
* Scripts: update bundler: estimating flash layout & refusing to build dangerous packages; app frame: not adding redundant log handlers
* Docs: additional details on bundling updates; fixed updater error codes
* Docs: wording fixes for OTA.md

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: SG <who.just.the.doctor@gmail.com>
2022-06-09 18:07:42 +09:00
Samuel Yvon
2bd4efd044
More GPIO control through CLI (#1271)
* Add more options
* Change from one big command to three small commands
  These changes follow from the review. Instead of having to
  rely in GOTOs (which are forbidden :<( ) to ensure cleaning,
  I divided in smaller pieces. Since I had no feedback w.r.t
  the previously existing `gpio_set`, this fits more with the
  current implementation.

  I also tried to interpret "That's not how we do enums" as
  to not include a `enum EnumName` decl. when using typedefs.

  I also distanced the implementation from using LL_GPIO
  in favour of functions provided in `<furi_hal_gpio.h>`
  but there was nothing to get the mode, so I stuck with
  LL_GPIO for mode check.

Co-authored-by: あく <alleteam@gmail.com>
2022-06-09 17:53:26 +09:00
Kevin Wallace
9c9f66a30f
nfc: add debug PCAP output, refactor Mifare DESFire following #1095 (#1294)
* nfc: refactor nfc_worker_read_mifare_desfire to use furi_hal_nfc_tx_rx
  Renames furi_hal_nfc_exchange_full to furi_hal_nfc_tx_rx_full, and
  rewrites it to use furi_hal_nfc_tx_rx.  This eliminates the final
  remaining use of furi_hal_nfc_exchange, so remove that.
* nfc: write debug.pcap when debug mode enabled
  Limited to NFC protocols that use furi_hal_nfc_tx_rx to communicate.
* switch to Doxygen style comment

Co-authored-by: Kevin Wallace <git+flipperzero@kevin.wallace.seattle.wa.us>
Co-authored-by: あく <alleteam@gmail.com>
2022-06-09 17:35:34 +09:00