Commit Graph

422 Commits

Author SHA1 Message Date
Yukai Li
ccced311d7 Merge branch 'dev' into ntag-auto-pwd-capture 2022-11-14 10:25:19 -07:00
Nikolay Minaylov
73441af9c6 BadUSB and Archive fixes (#2005)
* BsdUsb: fix empty lines handling
* Archive: folders and unknown files rename fix

Co-authored-by: あく <alleteam@gmail.com>
2022-11-12 20:55:42 +09:00
hedger
f9730bcafe fbt: lint fixes (#2008)
* lint: exclude "lib" subfolder from naming checks; fbt: moved LINT_SOURCES from literal strings to Dir() nodes
* lint: also exclude hidden directories

Co-authored-by: あく <alleteam@gmail.com>
2022-11-12 19:03:22 +09:00
Astra
e7c4b40dbe Force card types in extra actions (#1961)
* Mifare Classic forced read
* Add all the needed card types
* nfc: remove unused scene
* nfc: remove unused worker state
* nfc: fix read card type scene state usage
* nfc: move NfcReadMode to NfcDevData struct
* nfc: fix bank card reading and scene navigation
* nfc magic: fix magic deactifate function

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-11-11 01:29:57 +09:00
Astra
820afd2aec NFC Unit tests part 1.1 (#1927)
* Mifare Classic 1/4K, 4/7b uid, NFC-A: NFC-A is not complete yet, as there are no 4b uid tests. Also, Mifare Classic tests don't cover the key cache yet.
* NFC unit tests require access to the NFC app
* Made nfc_device_save accept full path as an argument
* Move from cstrs to furi strings and fix logic
* nfc tests: fix memory leak
* nfc: add mf_classic_get_total_blocks() to API
* nfc tests: simplify nfc tests
* nfc: fix memory leak in shadow file saving
* nfc: fix set uid scene
* nfc: fix saving files
* nfc: fix preload nfc file path
* nfc: remove comments

Co-authored-by: Sergey Gavrilov <who.just.the.doctor@gmail.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-11-11 01:20:35 +09:00
gornekich
3985b456c3 NFC: fix crash on MFC read (#1993)
* nfc: fix nfc_worker_stop logic
* nfc: fix stop order

Co-authored-by: あく <alleteam@gmail.com>
2022-11-10 03:12:55 +09:00
Samuel Stauffer
aa2ecbe80f infrared: add Kaseikyo IR protocol (#1965)
* infrared: add Kaseikyo IR protocol

Add Kaseikyo IR protocol support. This protocol is also called the Panasonic protocol and is used by a number of manufacturers including Denon.

The protocol includes a vendor field and a number of fields that are vendor specific. To support the format of address+command used by flipper the vendor+genre1+genre2+id fields are encoded into the address while the data is used for the command.

There are older versions of the protocol that used a reverse bit order that are not supported.

Protocol information:
- https://github.com/Arduino-IRremote/Arduino-IRremote/blob/master/src/ir_Kaseikyo.hpp
- http://www.hifi-remote.com/johnsfine/DecodeIR.html#Kaseikyo
- https://www.denon.com/-/media/files/documentmaster/denonna/avr-x3700h_avc-x3700h_ir_code_v01_04062020.doc

* Format and add unit test to Kaseikyo IR codec.

Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
2022-11-07 18:38:04 +04:00
あく
e8913f2e33 Code cleanup: srand, PVS warnings (#1974)
* Remove srand invocation

* PVS High priority fixes

* PVS High errors part 2

* Furi: heap tracing inheritance

* Furi add __builtin_unreachable to furi_thread_catch
2022-11-05 18:07:24 +03:00
gornekich
bf8fd71c00 NFC magic cards support (#1966)
* nfc magic: introduce nfc app to work with magic cards
* nfc: add nfc device functions to API
* nfc magic: add bacis scenes
* nfc magic: add wrong card and write confirm scenes
* nfc magic: introduce magic lib
* nfc magic: write magic lib
* nfc magic: add write commands to magic lib
* nfc magic: work on worker
* furi_hal_nfc: add bits data exchage method to API
* nfc magic: rework with new API
* nfc magic: add check and wipe scenes
* nfc magic: add icons, gui fixes
* nfc: format python src

Co-authored-by: あく <alleteam@gmail.com>
2022-11-04 16:01:44 +09:00
hedger
ebc2b66372 fbt fixes for mfbt pt2 (#1951)
* fbt: split sdk management code
* scripts: fixed import handling
* fbt: sdk: reformatted paths
* scrips: dist: bundling libs as a build artifact
* fbt: sdk: better path management
* typo fix
* fbt: sdk: minor path handling fixes
* toolchain: fixed windows toolchain download
* fbt: minor refactorin
* fbt: moved sdk management code to extapps.scons
* fbt: fixed sdk symbols header path; disabled -fstack-usage
* fbt: changed pathing for .py scripts
* fbt: changed SDK_HEADERS pathing; added libusb to SDK; added icon_i.h to SDK; added hw target to SDK meta
* fbt: added libusb headers to SDK
* picopass: include cleanup; api: added subghz/registry.h; api: added mbedtls to exported headers
* picopass: fixed formatting
* fbt: fixed COPRO_ASSETS_SCRIPT
* sdk: added basic infrared apis
* toolchain: added ufbt to list of legal fbtenv callers; updated error messages
* fbt: changed manifest collection & icon processing code
* fbt: simpler srcdir lookup
* toolchain: path management fixes; fbt: fixes for fap private libs paths
* scripts: toolchain: reworked download on Windows
* toolchain: v17
* scripts: added colorlog for logging
* Github: fix unit tests

Co-authored-by: あく <alleteam@gmail.com>
2022-11-03 00:15:40 +09:00
gornekich
93a6e17ce5 [FL-2933] Mf Classic initial write, update, detect reader (#1941)
* nfc: introduce nfc write
* nfc: add write logic
* nfc worker: add write state
* nfc: add mfc update logic
* nfc: add update success logic
* nfc: add custom card for detect reader
* nfc: update write logic
* nfc: add halt command, add notifications
* nfc: add write fail scene
* nfc: fixes and clean up
* nfc: fix navigation ad notifications
* nfc: fix detect reader nfc data setter

Co-authored-by: あく <alleteam@gmail.com>
2022-10-29 01:10:16 +09:00
Skorpionm
9cd0592aaf SubGhz: add keeloq potocol JCM_Tech (#1939)
* SubGhz: add keeloq potocol  JCM_Tech
* SubGhz: add new metod decoder

Co-authored-by: あく <alleteam@gmail.com>
2022-10-28 23:31:41 +09:00
Yukai Li
a6428ee833 Merge branch 'dev' into ntag-auto-pwd-capture 2022-10-26 21:11:37 -06:00
hedger
8b7a52b97b fbt: fixed linter paths (#1930)
* fbt: fixed linter paths
* lint: changed file permissions

Co-authored-by: あく <alleteam@gmail.com>
2022-10-27 05:25:31 +09:00
Skorpionm
aff99a72e8 SubGhz: fix variable types and CC1101 GPIO initialization optimization (#1931)
* SubGhz: fix variable types
* SubGhz: CC1101 GPIO initialization optimization
* SubGhz: return back gpio init
* SubGhz: cleanup grammar in math and format doxygen comments

Co-authored-by: あく <alleteam@gmail.com>
2022-10-27 04:40:13 +09:00
Skorpionm
5c8df66b7c [FL-2927] SubGhz: add RAW Read threshold rssi (#1911)
* SubGhz: add RAW Read threshold rssi
* SubGhz: update indicator RSSI
* SubGhz: fix record file

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-10-27 00:13:00 +09:00
Skorpionm
378bf05068 [FL-2934] WS: add protocol Acurite 592TXR (#1916)
* WS: add protocol Acurite 592TXR
* WS: fix decoder Acurite_592TXR
* SubGhz: proper types in math

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-10-26 23:56:54 +09:00
hedger
0adad32418 fbt fixes pt4 (#1899)
* fbt: fixed py scripts for gdb
* fbt: removed compiled dolphin assets from tracked files; resolved cached dependency issues by globally disabling deps cache; changed dependency tracking for dolphin assets
* fbt: fix for "resources" node lookup
* toolchain: bump to v.16 with scons + x64 win binaries
* fbt: using scons from toolchain
* vscode: fixed paths for 64-bit Windows toolchain
* fbt: added colors!
* fbt: moved import validator to ansi lib coloring
* fbt: moved COMSTR vars to tools
* fbt: custom action for fap dist
* fbt: added OPENOCD_ADAPTER_SERIAL configuration var for openocd operations
* fbt: added get_stlink target
* docs: details on libs for faps
* vscode: added DAP config for using Flipper as a debugger for a 2nd Flipper
* fbt: blind deps fix for sdk_origin
* fbt: sdk: moved deployment actions to pure python
* Github: disable disableLicenseExpirationCheck option for pvs

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-10-26 07:15:02 +09:00
Max Lapan
d8fbaba7a0 Move Oregon2 to Weather Station FAP (#1910)
* Init copy of oregon2 to weather station app
* WS decoder
* Reuse decoded data
* Delete old protocol
* Delete oregon2 unit test
* Decrement count of random test

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-10-23 00:50:26 +09:00
Skorpionm
c1bb10a694 [FL-2920] WS: add protocol Acurite-606TX, LaCrosse_TX141THBv2 (#1898)
* WS: add protocol Acurite-606TX
* WS: history, added display of the channel (if any) in the general list
* WS: added display of the button state if it is on the transmitter, and displaying the data that is in the signal
* WS: fix batt info
* WS: add protocol LaCrosse_TX141THBv2
* WS; fix syntax
* Furi: bump api_symbols version

Co-authored-by: あく <alleteam@gmail.com>
2022-10-21 02:26:28 +09:00
Sergey Gavrilov
42df7aa04a Fix FuriString oplist (init move) (#1894)
* FuriString, Infrared: fix oplist and drop string_t.
* Elf loader: log size
* Comment fix
* API: furi_hal_console_init
2022-10-20 19:58:11 +09:00
Skorpionm
9a9abd59e9 [FL-2904, FL-2900, FL-2890] WS: add app WeatherStation (#1833)
* WeatherStation: start
* SubGhz: rename protocol magellen -> magellan
* WeatherStation: err Unresolved symbols: {'subghz_protocol_decoder_base_get_string'}
* WeatherStation: fix Unresolved symbols: {'subghz_protocol_decoder_base_get_string'}
* Subghz: add set protocol_items
* WeatherStation: adding your protocols
* WS: add Infactory protocol
* WS: add history
* WS: add setting
* WS: add lock
* WS: add hopper frequency
* WS: fix history
* WS fix string_t -> FuriString*
* WS: add images
* WS: history record update when receiving data from the sensor again
* WS: add receiver info, delete extra code
* WS: add protocol ThermoPRO_TX4
* [FL-2900] SubGhz: Move icons in Sub-GHz
* WS: add Notification
* [FL-2890] SubGhz: Rename *_user files in resources to _user.example
* WS: add about scene
* WS: removing redundant code
* WS: add  protocol Nexus-TH
* WS: add protocol GT_WT03
* WS: fix notification and rename "Weather Station" -> "Read Weather Station"
* SubGhz: partial unit tests fix
* SubGhz: fix unit_test
* SubGhz: remove dead code
* SubGhz: rename SubGhzPresetDefinition into SubGhzRadioPreset, cleanup subghz types.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-10-20 02:27:26 +09:00
Skorpionm
68009c6230 [FL-2919] SubGhz: CAME Wrong number of bits in key (add protocol Airforce) (#1890)
Co-authored-by: あく <alleteam@gmail.com>
2022-10-18 23:24:53 +09:00
Georgii Surkov
02c27becb0 [FL-2912] Forced RAW receive option for Infrared CLI #1891
Co-authored-by: あく <alleteam@gmail.com>
2022-10-18 23:10:21 +09:00
gornekich
dfbe21e720 NFC fixes part 3 (#1885)
* nfc: fix read next key
* nfc: verify new line ending in user dictionary file
* nfc: fix cache save
* nfc: add unit test for dict load
* nfc: fix total key count in dictionary

Co-authored-by: あく <alleteam@gmail.com>
2022-10-18 02:10:41 +09:00
Yukai Li
60a408e2f4 Merge branch 'dev' into ntag-auto-pwd-capture 2022-10-16 00:00:32 -06:00
Astra
55f8beef9f [FL-2876] MFC Improvements Part 2/2 (#1868)
* Remove keys incorrectly added by the key cache
* Improve responsiveness while checking for re-used keys and fix skipping keys when card is removed
* Actually check if the card is completely read
* Discard incorrect keys on a lower level
* nfc: clean up

Co-authored-by: gornekich <n.gorbadey@gmail.com>
2022-10-14 01:23:29 +09:00
Yukai Li
8648967468 nfc: Don't try to auth NTAG on read if we already authed 2022-10-13 10:07:06 -06:00
Yukai Li
0d0f66bcea nfc: Attempt to authenticate with default PWD when possible when reading NTAG 2022-10-13 08:51:02 -06:00
gornekich
8b69cd1ea1 Merge branch 'dev' into ntag-auto-pwd-capture 2022-10-13 13:04:38 +05:00
Luke Williams
50dc2d7389 36-bit AWID (L11601 Lenel) (#1838)
* 36-bit AWID
* Rfid: correct vendor name AWIG -> AWID

Co-authored-by: Sergey Gavrilov <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-10-13 01:31:54 +09:00
gornekich
2552278a3d [FL-2883] NFC: bank card rework reading (#1858)
* nfc: remove bank card save option
* nfc: remove bank card save from nfc device
* nfc: remove unused function in emv
* nfc: try several times to start emv application
* nfc: add AID display fallback for bank cards

Co-authored-by: あく <alleteam@gmail.com>
2022-10-12 02:13:12 +09:00
Yukai Li
e89741e434 nfc: Move captured MFUL auth data from worker to device data 2022-10-10 22:25:42 -06:00
Yukai Li
0434733c73 Merge branch 'dev' into ntag-auto-pwd-capture 2022-10-09 16:18:38 -06:00
Sergey Gavrilov
981f7ff8b0 Elf loader: do not load .ARM.* sections (#1850)
* Elf loader: do not load .ARM sections
* Fix section name
2022-10-09 00:51:51 +09:00
Sergey Gavrilov
37b5e58a60 More correct elf loader (#1839)
* ELF File: more robust section loader
* ELF File: faster and smaller preinit, init and fini arrays handling
* ELF File: load sections on preload stage
* ELF File: naming
* Furi: fix use after free in thread join

Co-authored-by: あく <alleteam@gmail.com>
2022-10-08 02:06:29 +09:00
Sergey Gavrilov
4000f0cac5 [FL-2870] Printf function attributes (#1841)
* Furi strings: printf attribute
* Logs: printf attribute
* Plugins: adapt
* Plugins: accommodate
* Unit tests: accommodate

Co-authored-by: あく <alleteam@gmail.com>
2022-10-07 22:35:15 +09:00
Sergey Gavrilov
38a82a1907 [FL-2839] Furi stream buffer (#1834)
* Core: stream buffer
* stream buffer: API and usage
* stream buffer: documentation
* stream buffer: more documentation
* Furi: fix spelling

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-10-07 21:27:11 +09:00
Yukai Li
b839566f3e nfc: Fix MFUL auth success usage, remove unused variable 2022-10-07 01:11:03 -06:00
Yukai Li
2e93c6268e nfc: Fill in MFUL has_auth when loading file 2022-10-07 00:59:13 -06:00
Yukai Li
1c2e35d930 nfc: Fix MFUL auth counter loading 2022-10-07 00:57:32 -06:00
Yukai Li
58b9844025 nfc: Fix emulation of incompletely-read password-protected MFUL 2022-10-07 00:29:39 -06:00
Yukai Li
a227b63ba5 nfc: Add function to determine whether MFUL is fully captured 2022-10-07 00:23:34 -06:00
Yukai Li
674706279a nfc: Rename enum member to align with existing convention 2022-10-06 22:15:24 -06:00
Yukai Li
71035dc3ae nfc: Add NTAG authentication event to emulation 2022-10-06 22:12:51 -06:00
Yukai Li
299ec9643e nfc: Add mechanism to pass event data 2022-10-06 22:12:29 -06:00
Yukai Li
2a1bbdc1ca nfc: MFUL minor cleanup 2022-10-06 22:12:29 -06:00
Astra
eaa3adf98a [FL-2868] Remove string_push_uint64 (#1832)
* Remove string_pust_uint64
* Oops, furi strings now
* Remove dead code
* Remove unneeded import

Co-authored-by: あく <alleteam@gmail.com>
2022-10-07 03:51:30 +09:00
Astra
6dde5586af [FL-2803] Mifare Classic read improvements Part 1 (#1822)
* Reuse found keys when reading a card
* Fix keys not being read if no newline at the end of the file
* Actually read all keys from the dictionary
* Support for furi_string
* Check only for re-used key after the current sector
* Declare the key attack function as static
* nfc: change logs, check worker state

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-10-07 02:07:56 +09:00
gornekich
5de2c32c81 [FL-2864] NFC update detect reader (#1820)
* nfc: update detect reader view
* nfc: make detect reader more interractive
* nfc: update icons
* nfc: fix detect reader gui
* nfc: fix gui, fix worker events
* nfc: fix notifications
* nfc: add nfc_worker NULL assert

Co-authored-by: あく <alleteam@gmail.com>
2022-10-07 01:58:17 +09:00