Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
d46bca6
nfc: rename structure in old application
gornekich Mar 23, 2023
30ffca4
nfc: introduce new hal
gornekich Mar 23, 2023
cc22440
nfc: introduce new parsers
gornekich Mar 23, 2023
6663843
nfc: introduce nfc rpc app
gornekich Mar 23, 2023
0c5fab4
subghz: temporary build fix
gornekich Mar 23, 2023
af4857e
nfc: fix timings
gornekich Mar 24, 2023
0d97f4d
nfc: fix listener events
gornekich Mar 28, 2023
bf311e7
nfc: add nfca emulation
gornekich Mar 28, 2023
3aef20f
nfc rpc: add mf ultralight emulation handlers
gornekich Mar 29, 2023
2ebd7f3
nfc: fix rpc max size
gornekich Mar 29, 2023
e5f620b
nfc: introduce emulation worker
gornekich Mar 30, 2023
2b77f98
nfc: support mfu commands
gornekich Mar 30, 2023
ddaff8d
Merge remote-tracking branch 'origin/dev' into gornek/nfc_refactoring
gornekich Mar 31, 2023
d83a05c
nfc: rename mf_ultralight_common -> mf_ultralight
gornekich Apr 3, 2023
2d5649a
nfc: fix incomplete frame tx
gornekich Apr 3, 2023
dfd729b
mfu: introduce command handlers
gornekich Apr 4, 2023
c15ae51
nfc: remove listener rx API
gornekich Apr 5, 2023
602a01e
nfc: start reworking poller
gornekich Apr 5, 2023
f8506f2
nfc app: copy old nfc app
gornekich Apr 6, 2023
2e58cd2
nfc app: start reworking read
gornekich Apr 7, 2023
65b8cab
nfc: new nfca read scene
gornekich Apr 7, 2023
c4f6130
nfc: rework nfc app
gornekich Apr 10, 2023
27ed14e
nfc: add uid emultaion
gornekich Apr 12, 2023
b9be790
nfc: add nfc acquire and release
gornekich Apr 12, 2023
8c37cf6
nfc: rework with new pollers
gornekich Apr 14, 2023
4194fbe
nfc: mf ultralight support
gornekich Apr 17, 2023
e9faf3a
nfc: mf ultralight read state machine
gornekich Apr 17, 2023
6178b18
nfc: start adding sync API
gornekich Apr 19, 2023
6b17f47
mf ultralight: add all sync api
gornekich Apr 19, 2023
82aa39c
mf ultralight: read state machine
gornekich Apr 20, 2023
22be7d4
nfc: add unlock scenes
gornekich Apr 20, 2023
3439646
nfc: add mf ultralight menu
gornekich Apr 20, 2023
79bdc92
nfc app: introduce mifare ultralight auth
gornekich Apr 20, 2023
789a37f
nfc app: add unlock scripts
gornekich Apr 20, 2023
0d86bbf
nfca: rework with nfc poller buffer
gornekich Apr 20, 2023
147c875
nfc: rework configuration
gornekich Apr 20, 2023
40109bc
nfc: introduce nfcb poller
gornekich Apr 21, 2023
6be1fdc
nfc: generic poller rework
gornekich Apr 21, 2023
e29d778
hal nfc: config timer div
gornekich Apr 23, 2023
6bc1f3d
nfc: introduce nfc commands
gornekich Apr 24, 2023
c9628ec
nfc: separate public and private API
gornekich Apr 24, 2023
81ba664
mf ultralight: neat state handlers
gornekich Apr 25, 2023
b36dcee
mf ultralight: separate private and public api
gornekich Apr 25, 2023
8c9cd1c
mf ultralight: add configuration pages
gornekich Apr 25, 2023
9cd685d
mf ultralight: fix reading state machine
gornekich Apr 28, 2023
cc6e6dd
nfc app: add file select
gornekich May 1, 2023
2cde986
nfc app: add saved menu scene
gornekich May 2, 2023
a40a4a6
nfc app: add saving
gornekich May 2, 2023
8cb631d
nfc: rework nfc data generators
gornekich May 2, 2023
9964fb6
nfc app: add generator scenes
gornekich May 2, 2023
e40f45e
nfc: dix memory leak
gornekich May 2, 2023
8a8a260
nfc app: nfca add manual
gornekich May 2, 2023
eb77641
nfc dev: fix save and load bugs
gornekich May 3, 2023
2dcdce6
unit tests: rework nfc unit tests
gornekich May 3, 2023
1c0f2b2
nfc: fix false positive fwt timeout
gornekich May 3, 2023
39cb8ca
nfc: add reset in generic poller
gornekich May 4, 2023
a1f5d2c
nfc: fix reset in generic poller
gornekich May 4, 2023
ff6f27a
nfc: correct reset
gornekich May 4, 2023
e996dc6
nfc: introduce poller and listener unit tests
gornekich May 5, 2023
0413e43
mf ultralight: rework read paged
gornekich May 6, 2023
8a9d501
unit test: add ntag 215 for unit tests
gornekich May 6, 2023
27903f0
nfc: ultralight tests
gornekich May 6, 2023
2bcea0e
mf ultralight: fix async api
gornekich May 7, 2023
eea41aa
nfc: rework allocation order
gornekich May 8, 2023
5137100
nfc: add test for original ultralight
gornekich May 8, 2023
779ab87
unit tests: add nfc test files
gornekich May 8, 2023
d9c1faa
mf ultralight fixes
gornekich May 8, 2023
74e3a28
nfc app: rework unlock with reader ultralight
gornekich May 11, 2023
5323584
mf ultralight: default password support
gornekich May 8, 2023
7cec8b3
mf ultralight: listener fixes
gornekich May 8, 2023
e13a0bb
mf ultralight: fix ntag i2c reading
gornekich May 10, 2023
9d63f97
mf ultralight: fix feature sets
gornekich May 10, 2023
d13b741
nfc tests: add ntag216
gornekich May 10, 2023
4bbdade
nfc tests: add write test
gornekich May 10, 2023
5a29f7c
nfc app: rework shadow files
gornekich May 10, 2023
2d57b09
nfc app: add delete scenes
gornekich May 11, 2023
39b3eaf
nfc tests: turn on unit tests
gornekich May 11, 2023
d1385d1
Merge remote-tracking branch 'origin/dev' into gornek/nfc_refactoring
gornekich May 11, 2023
8f0de13
nfc: introduce mifare classic
gornekich May 14, 2023
3bea05c
nfc: add mifare classic generators
gornekich May 14, 2023
8f76169
nfc: rename old API
gornekich May 14, 2023
80d7e50
mf classic: add load and save file
gornekich May 14, 2023
46ce9f6
nfc test: add mf classic file tests
gornekich May 14, 2023
60950d9
nfc: fix errors
gornekich May 14, 2023
e40bf54
nfc: rename crypto to old_crypto for symbol reslution
gornekich May 15, 2023
96a70a0
mf classic: introduce auth context
gornekich May 15, 2023
3fc6029
nfc hal: remove interrupt instead of disabling
gornekich May 15, 2023
6bf995c
nfc rpc: add mf classic auth and read block
gornekich May 17, 2023
faf28a1
mf classic: start auth
gornekich May 17, 2023
d8601c7
mf classic: rework auth
gornekich May 17, 2023
51ced8a
nfc: add sync read block
gornekich May 17, 2023
29b0542
nfc: debug build, fix crashes
gornekich Jun 2, 2023
64d5e0e
nfc: start dict attack
gornekich May 19, 2023
ba19dd4
mf classic: continue dict attack
gornekich May 23, 2023
bc6d12f
mf classic: fix buffer reset
gornekich May 23, 2023
85fcb42
mf classic: rework state machine
gornekich May 29, 2023
eaed19c
mf classic: add key reuse attack
gornekich May 31, 2023
994670a
nfc: add mf classic menu scene
gornekich Jun 1, 2023
82ee706
nfc: introduce supported cards
gornekich Jun 2, 2023
4e54af1
nfc: introduce nfc plugin
gornekich Jun 6, 2023
cc4dd36
nfc: format sources
gornekich Jun 6, 2023
c7c2119
Gsurkov/3324 mf desfire (#2741)
gsurkov Jun 6, 2023
abbe855
Merge branch 'gornek/mf_classic_dict_attack' into gornek/nfc_refactoring
gornekich Jun 6, 2023
a2cc5a9
Gsurkov/3324 mf desfire (#2761)
gsurkov Jun 12, 2023
e40cecd
Gornek/rework with bit buffer (#2763)
gornekich Jun 12, 2023
31b818a
nfc: move deprycated files to separate folder
gornekich Jun 12, 2023
4069d18
Gsurkov/3324 mf desfire (#2788)
gsurkov Jun 20, 2023
fe5b043
Gornek/generic poller v3 (#2780)
gornekich Jun 20, 2023
6623c33
nfc: fix typo
gornekich Jun 20, 2023
4b7e3d0
Gsurkov/mf desfire iter4 (#2791)
gsurkov Jun 21, 2023
1ffc06d
Nfc Scanner (#2792)
gornekich Jun 22, 2023
2758723
Rework with furi hal bus, merge dev (#2798)
gornekich Jun 23, 2023
fc46026
Gsurkov/mf desfire iter5 (#2802)
gsurkov Jun 26, 2023
bbe4170
MFU poller cleanup (#2803)
gornekich Jun 26, 2023
01865f1
Nfc poller (#2804)
gornekich Jun 27, 2023
f992738
Massive renaming (#2810)
gornekich Jun 28, 2023
399c77b
Generic listener part 0 (#2813)
gornekich Jun 29, 2023
673465c
Generic listener part 1 (#2820)
gornekich Jun 30, 2023
39b87f7
Merge dev (#2827)
gornekich Jul 1, 2023
2a9ca19
Nfc gui rework (#2822)
gsurkov Jul 4, 2023
2641a2c
Unit tests, add manually scenes fixes (#2844)
gornekich Jul 5, 2023
7df53a2
New NFC GUI (#2848)
gsurkov Jul 6, 2023
69ca0de
[NFC] New file format (#2856)
gsurkov Jul 7, 2023
f54f7fc
MFC emulation part 0 (#2867)
gornekich Jul 12, 2023
2196a53
[NFC] ISO14443-4A emulation, MF DESFire and GUI fixes (#2869)
gsurkov Jul 12, 2023
30d8fda
Full MFC emulation , Detect Reader (#2886)
gornekich Jul 17, 2023
ef3a322
[NFC] Supported card plugins (#2889)
gsurkov Jul 18, 2023
6d74e51
Merge remote-tracking branch 'origin/dev' into gornek/nfc_refactoring
gornekich Jul 18, 2023
cda1089
[FL-3426] "More" button on "Info" scene shows card dump for Ultraligh…
RebornedBrain Jul 20, 2023
10aff39
[FL-3447] Debug field implementation (#2916)
RebornedBrain Jul 24, 2023
61caa1e
[NFC] NFC-B support (#2918)
gsurkov Jul 25, 2023
be46e5d
Simple Array improvements (#2919)
gsurkov Jul 25, 2023
b09c6d4
[FL-3445] Nfc: shadow file support (#2931)
RebornedBrain Aug 1, 2023
480ba84
[NFC] ISO15693-3 (NFC-V) Poller (#2936)
gsurkov Aug 2, 2023
caf642c
Fix NFC14443-3B (NFC-B) poller (#2946)
gsurkov Aug 4, 2023
10d767c
[FL-3449] Introduce Felica poller (#2961)
gornekich Aug 9, 2023
49d65c0
Fixed tearing flags for NTAG21x (#2965)
RebornedBrain Aug 10, 2023
643c285
[FL-3446] Feature check adjustment and nesting removal (#2977)
RebornedBrain Aug 11, 2023
5fbdf34
Ultralight commands fixed and reset is done on the nfc level (#2989)
RebornedBrain Aug 18, 2023
fe33eac
Ultralight commands adjustments (#2997)
RebornedBrain Aug 21, 2023
89b675c
mf ultralight: fix naming
gornekich Aug 21, 2023
bcfa912
[NFC] ISO15693-3 (NFC-V) Emulation (#2996)
gsurkov Aug 21, 2023
d87bd74
INCR_CNT command added for Ultralight and READ_CNT fixed for NTAGs (#…
RebornedBrain Aug 22, 2023
079b74d
[FL-3444], [FL-3448] MFC Poller improvements (#3016)
gornekich Aug 28, 2023
5e1e3ff
[FL-3573] MFU ASCII mirror handling (#3019)
RebornedBrain Aug 29, 2023
5e0dc8c
[FL-3568] Signal reader optimization (#3022)
gornekich Aug 30, 2023
ac9d9cd
Improve Iso15 emulation (#3029)
gornekich Aug 31, 2023
ad042e8
[FL-3574] Ultralight composite command handling (#3028)
RebornedBrain Aug 31, 2023
2ad34a7
[FL-3571] BitBuffer and generic listener optimization (#3026)
gornekich Sep 1, 2023
68f1027
[FL-3574] SECTOR_SELECT command implementation (#3045)
RebornedBrain Sep 6, 2023
35aebe4
[NFC] SLIX Protocol Support (#3034)
gsurkov Sep 6, 2023
de0ed43
[FL-3572] Nfc API cleanup (#3049)
gornekich Sep 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
94 changes: 42 additions & 52 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
pull_request:

env:
TARGETS: f7
TARGETS: f7 f18
DEFAULT_TARGET: f7
FBT_TOOLCHAIN_PATH: /runner/_work

Expand Down Expand Up @@ -52,10 +52,8 @@ jobs:

- name: 'Make artifacts directory'
run: |
rm -rf artifacts
rm -rf map_analyser_files
mkdir artifacts
mkdir map_analyser_files
rm -rf artifacts map_analyser_files
mkdir artifacts map_analyser_files

- name: 'Bundle scripts'
if: ${{ !github.event.pull_request.head.repo.fork }}
Expand All @@ -66,28 +64,21 @@ jobs:
run: |
set -e
for TARGET in ${TARGETS}; do
TARGET="$(echo "${TARGET}" | sed 's/f//')"; \
./fbt TARGET_HW=$TARGET copro_dist updater_package \
${{ startsWith(github.ref, 'refs/tags') && 'DEBUG=0 COMPACT=1' || '' }}
done

- name: 'Move upload files'
if: ${{ !github.event.pull_request.head.repo.fork }}
run: |
set -e
for TARGET in ${TARGETS}; do
TARGET_HW="$(echo "${TARGET}" | sed 's/f//')"; \
./fbt TARGET_HW=$TARGET_HW copro_dist updater_package \
${{ startsWith(github.ref, 'refs/tags') && 'DEBUG=0 COMPACT=1' || '' }}
mv dist/${TARGET}-*/* artifacts/
tar czpf "artifacts/flipper-z-${TARGET}-resources-${SUFFIX}.tgz" \
-C assets resources
./fbt TARGET_HW=$TARGET_HW fap_dist
tar czpf "artifacts/flipper-z-${TARGET}-debugapps-${SUFFIX}.tgz" \
-C dist/${TARGET}-*/apps/Debug .
done

- name: "Check for uncommitted changes"
run: |
git diff --exit-code

- name: 'Bundle resources'
if: ${{ !github.event.pull_request.head.repo.fork }}
run: |
tar czpf "artifacts/flipper-z-any-resources-${SUFFIX}.tgz" -C assets resources

- name: 'Bundle core2 firmware'
if: ${{ !github.event.pull_request.head.repo.fork }}
run: |
Expand All @@ -96,45 +87,44 @@ jobs:
- name: 'Copy map analyser files'
if: ${{ !github.event.pull_request.head.repo.fork }}
run: |
cp build/f7-firmware-*/firmware.elf.map map_analyser_files/firmware.elf.map
cp build/f7-firmware-*/firmware.elf map_analyser_files/firmware.elf
cp build/${DEFAULT_TARGET}-firmware-*/firmware.elf.map map_analyser_files/firmware.elf.map
cp build/${DEFAULT_TARGET}-firmware-*/firmware.elf map_analyser_files/firmware.elf
cp ${{ github.event_path }} map_analyser_files/event.json

- name: 'Upload map analyser files to storage'
if: ${{ !github.event.pull_request.head.repo.fork }}
uses: prewk/s3-cp-action@v2
with:
aws_s3_endpoint: "${{ secrets.MAP_REPORT_AWS_ENDPOINT }}"
aws_access_key_id: "${{ secrets.MAP_REPORT_AWS_ACCESS_KEY }}"
aws_secret_access_key: "${{ secrets.MAP_REPORT_AWS_SECRET_KEY }}"
source: "./map_analyser_files/"
dest: "s3://${{ secrets.MAP_REPORT_AWS_BUCKET }}/${{steps.names.outputs.random_hash}}"
flags: "--recursive --acl public-read"

- name: 'Trigger map file reporter'
- name: 'Analyse map file'
if: ${{ !github.event.pull_request.head.repo.fork }}
uses: peter-evans/repository-dispatch@v2
with:
repository: flipperdevices/flipper-map-reporter
token: ${{ secrets.REPOSITORY_DISPATCH_TOKEN }}
event-type: map-file-analyse
client-payload: '{"random_hash": "${{steps.names.outputs.random_hash}}", "event_type": "${{steps.names.outputs.event_type}}"}'
run: |
source scripts/toolchain/fbtenv.sh
get_size()
{
SECTION="$1";
arm-none-eabi-size \
-A map_analyser_files/firmware.elf \
| grep "^$SECTION" | awk '{print $2}'
}
export BSS_SIZE="$(get_size ".bss")"
export TEXT_SIZE="$(get_size ".text")"
export RODATA_SIZE="$(get_size ".rodata")"
export DATA_SIZE="$(get_size ".data")"
export FREE_FLASH_SIZE="$(get_size ".free_flash")"
python3 -m pip install mariadb==1.1.6 cxxfilt==0.3.0
python3 scripts/map_parser.py map_analyser_files/firmware.elf.map map_analyser_files/firmware.elf.map.all
python3 scripts/map_mariadb_insert.py \
${{ secrets.AMAP_MARIADB_USER }} \
${{ secrets.AMAP_MARIADB_PASSWORD }} \
${{ secrets.AMAP_MARIADB_HOST }} \
${{ secrets.AMAP_MARIADB_PORT }} \
${{ secrets.AMAP_MARIADB_DATABASE }} \
map_analyser_files/firmware.elf.map.all

- name: 'Upload artifacts to update server'
if: ${{ !github.event.pull_request.head.repo.fork }}
run: |
mkdir -p ~/.ssh
ssh-keyscan -p ${{ secrets.RSYNC_DEPLOY_PORT }} -H ${{ secrets.RSYNC_DEPLOY_HOST }} > ~/.ssh/known_hosts
echo "${{ secrets.RSYNC_DEPLOY_KEY }}" > deploy_key;
chmod 600 ./deploy_key;
rsync -avzP --delete --mkpath \
-e 'ssh -p ${{ secrets.RSYNC_DEPLOY_PORT }} -i ./deploy_key' \
artifacts/ ${{ secrets.RSYNC_DEPLOY_USER }}@${{ secrets.RSYNC_DEPLOY_HOST }}:"${{ secrets.RSYNC_DEPLOY_BASE_PATH }}${BRANCH_NAME}/";
rm ./deploy_key;

- name: 'Trigger update server reindex'
if: ${{ !github.event.pull_request.head.repo.fork }}
run: curl -X POST -F 'key=${{ secrets.REINDEX_KEY }}' ${{ secrets.REINDEX_URL }}
FILES=$(for CUR in $(ls artifacts/); do echo "-F files=@artifacts/$CUR"; done)
curl --fail -L -H "Token: ${{ secrets.INDEXER_TOKEN }}" \
-F "branch=${BRANCH_NAME}" \
${FILES[@]} \
"${{ secrets.INDEXER_URL }}"/firmware/uploadfiles

- name: 'Find Previous Comment'
if: ${{ !github.event.pull_request.head.repo.fork && github.event.pull_request }}
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/reindex.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@ jobs:
steps:
- name: Trigger reindex
run: |
curl -X POST -F 'key=${{ secrets.REINDEX_KEY }}' ${{ secrets.REINDEX_URL }}
curl --fail -L -H "Token: ${{ secrets.INDEXER_TOKEN }}" \
"${{ secrets.INDEXER_URL }}"/firmware/reindex
5 changes: 4 additions & 1 deletion .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,14 @@ jobs:
- name: 'Flash unit tests firmware'
id: flashing
if: success()
timeout-minutes: 10
run: |
./fbt flash OPENOCD_ADAPTER_SERIAL=2A0906016415303030303032 FIRMWARE_APP_SET=unit_tests FORCE=1

- name: 'Wait for flipper and format ext'
id: format_ext
if: steps.flashing.outcome == 'success'
timeout-minutes: 5
run: |
source scripts/toolchain/fbtenv.sh
python3 scripts/testing/await_flipper.py ${{steps.device.outputs.flipper}}
Expand All @@ -43,6 +45,7 @@ jobs:
- name: 'Copy assets and unit data, reboot and wait for flipper'
id: copy
if: steps.format_ext.outcome == 'success'
timeout-minutes: 5
run: |
source scripts/toolchain/fbtenv.sh
python3 scripts/storage.py -p ${{steps.device.outputs.flipper}} -f send assets/resources /ext
Expand All @@ -53,7 +56,7 @@ jobs:
- name: 'Run units and validate results'
id: run_units
if: steps.copy.outcome == 'success'
timeout-minutes: 2.5
timeout-minutes: 7
run: |
source scripts/toolchain/fbtenv.sh
python3 scripts/testing/units.py ${{steps.device.outputs.flipper}}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/updater_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,15 @@ jobs:

- name: 'Flashing target firmware'
id: first_full_flash
timeout-minutes: 10
run: |
source scripts/toolchain/fbtenv.sh
./fbt flash_usb_full PORT=${{steps.device.outputs.flipper}} FORCE=1
python3 scripts/testing/await_flipper.py ${{steps.device.outputs.flipper}}

- name: 'Validating updater'
id: second_full_flash
timeout-minutes: 10
if: success()
run: |
source scripts/toolchain/fbtenv.sh
Expand Down
22 changes: 11 additions & 11 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,27 +30,25 @@ bindings/
.mxproject
Brewfile.lock.json

# Visual Studio Code
/.vscode/

# Kate
.kateproject
.kateconfig

# legendary cmake's
build
CMakeLists.txt

# bundle output
dist

# kde
.directory

# SCons
.sconsign.dblite


# Visual Studio Code
/.vscode

# bundle output
/dist

# SCons build dir
build/
/build

# Toolchain
/toolchain
Expand All @@ -64,3 +62,5 @@ PVS-Studio.log
*.PVS-Studio.*

.gdbinit

/fbt_options_local.py
20 changes: 16 additions & 4 deletions .vscode/example/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
"version": "2.0.0",
"tasks": [
{
"label": "[Release] Build",
"label": "[Release] Build Firmware",
"group": "build",
"type": "shell",
"command": "./fbt COMPACT=1 DEBUG=0"
},
{
"label": "[Debug] Build",
"label": "[Debug] Build Firmware",
"group": "build",
"type": "shell",
"command": "./fbt"
Expand Down Expand Up @@ -123,17 +123,29 @@
"type": "shell",
"command": "./fbt COMPACT=1 DEBUG=0 fap_dist"
},
{
"label": "[Debug] Build App",
"group": "build",
"type": "shell",
"command": "./fbt build APPSRC=${relativeFileDirname}"
},
{
"label": "[Release] Build App",
"group": "build",
"type": "shell",
"command": "./fbt COMPACT=1 DEBUG=0 build APPSRC=${relativeFileDirname}"
},
{
"label": "[Debug] Launch App on Flipper",
"group": "build",
"type": "shell",
"command": "./fbt launch_app APPSRC=${relativeFileDirname}"
"command": "./fbt launch APPSRC=${relativeFileDirname}"
},
{
"label": "[Release] Launch App on Flipper",
"group": "build",
"type": "shell",
"command": "./fbt COMPACT=1 DEBUG=0 launch_app APPSRC=${relativeFileDirname}"
"command": "./fbt COMPACT=1 DEBUG=0 launch APPSRC=${relativeFileDirname}"
},
{
"label": "[Debug] Launch App on Flipper with Serial Console",
Expand Down
2 changes: 1 addition & 1 deletion CODING_STYLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Almost everything in flipper firmware is built around this concept.
# C coding style

- Tab is 4 spaces
- Use `fbt format` to reformat source code and check style guide before commit
- Use `./fbt format` to reformat source code and check style guide before commit

## Naming

Expand Down
6 changes: 4 additions & 2 deletions SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ distenv.Depends(firmware_env["FW_RESOURCES"], external_apps_artifacts.resources_

fap_deploy = distenv.PhonyTarget(
"fap_deploy",
"${PYTHON3} ${ROOT_DIR}/scripts/storage.py send ${SOURCE} /ext/apps",
"${PYTHON3} ${FBT_SCRIPT_DIR}/storage.py -p ${FLIP_PORT} send ${SOURCE} /ext/apps",
source=Dir("#/assets/resources/apps"),
)

Expand Down Expand Up @@ -323,7 +323,9 @@ distenv.PhonyTarget(
)

# Start Flipper CLI via PySerial's miniterm
distenv.PhonyTarget("cli", "${PYTHON3} ${FBT_SCRIPT_DIR}/serial_cli.py")
distenv.PhonyTarget(
"cli", "${PYTHON3} ${FBT_SCRIPT_DIR}/serial_cli.py -p ${FLIP_PORT}"
)


# Find blackmagic probe
Expand Down
1 change: 0 additions & 1 deletion applications/ReadMe.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ Applications for main Flipper menu.

- `archive` - Archive and file manager
- `bad_usb` - Bad USB application
- `fap_loader` - External applications loader
- `gpio` - GPIO application: includes USART bridge and GPIO control
- `ibutton` - iButton application, onewire keys and more
- `infrared` - Infrared application, controls your IR devices
Expand Down
1 change: 1 addition & 0 deletions applications/debug/application.fam
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ App(
"display_test",
"text_box_test",
"file_browser_test",
"speaker_debug",
],
)
10 changes: 10 additions & 0 deletions applications/debug/crash_test/application.fam
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
App(
appid="crash_test",
name="Crash Test",
apptype=FlipperAppType.DEBUG,
entry_point="crash_test_app",
cdefines=["APP_CRASH_TEST"],
requires=["gui"],
stack_size=1 * 1024,
fap_category="Debug",
)
Loading