Skip to content
This repository was archived by the owner on Nov 19, 2024. It is now read-only.

Commit 2d37cc4

Browse files
V43 Release Candidate Changes (#183)
2 parents 44a1eb7 + 40c90cc commit 2d37cc4

4,139 files changed

Lines changed: 29147 additions & 20715 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflow_data/release.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
## ⬇️ Download
2-
>### [📦 Zipped Archive (.zip)](https://github.com/ClaraCrazy/Flipper-Xtreme/releases/download/{release_tag}/{release_tag}.zip) [recommended]
2+
>### [🖥️ Web Updater (chrome)](https://lab.flipper.net/?url={webupdater_url}&channel=XFW-Updater&version={release_tag}) [recommended]
33
44
>### [🐬 qFlipper Package (.tgz)](https://github.com/ClaraCrazy/Flipper-Xtreme/releases/download/{release_tag}/{release_tag}.tgz)
55
6-
>### [🖥️ Web Updater (chrome)](https://lab.flipper.net/?url={webupdater_url}&channel=XFW-Updater&version={release_tag}) [not recommended]
6+
>### [📦 Zipped Archive (.zip)](https://github.com/ClaraCrazy/Flipper-Xtreme/releases/download/{release_tag}/{release_tag}.zip)
77
88
**Remember to delete your `apps` folders before updating!**\
99
**Check the [install guide](https://github.com/ClaraCrazy/Flipper-Xtreme#install) if you're not sure, or [join our Discord](https://discord.gg/flipper-xtreme) if you have questions or encounter issues!**

.github/workflows/release.yml

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -32,22 +32,11 @@ jobs:
3232
repository: ${{ github.event.pull_request.head.repo.full_name }}
3333
ref: ${{ github.event.pull_request.head.ref }}
3434

35-
- name: "Update version number"
35+
- name: "Read version number"
3636
run: |
37-
VERSION="$(python -c "print('%04d' % int('${{ github.event.pull_request.title }}'.removeprefix('V').removesuffix(' Release Candidate Changes')), end='')")"
38-
DATE="$(python -c "from datetime import date;print(date.today().strftime('%d%m%Y'), end='')")"
39-
RELEASE_NAME="XFW-${VERSION}"
40-
RELEASE_TAG="${RELEASE_NAME}_${DATE}"
37+
RELEASE_TAG="$(grep -o "DIST_SUFFIX = .*" fbt_options.py | cut -d'"' -f2)"
4138
echo "RELEASE_TAG=${RELEASE_TAG}" >> $GITHUB_ENV
4239
43-
sed "s/VERSION = \"XFW-[[:digit:]]\{4\}\"/VERSION = \"${RELEASE_NAME}\"/g" ./scripts/version.py > ./scripts/version.py.new
44-
rm ./scripts/version.py
45-
mv ./scripts/version.py.new ./scripts/version.py
46-
47-
sed "s/DIST_SUFFIX = \"XFW-[[:digit:]]\{4\}_[[:digit:]]\{8\}\"/DIST_SUFFIX = \"${RELEASE_TAG}\"/g" ./fbt_options.py > ./fbt_options.py.new
48-
rm ./fbt_options.py
49-
mv ./fbt_options.py.new ./fbt_options.py
50-
5140
- name: 'Build the firmware'
5241
run: |
5342
set -e
@@ -58,14 +47,12 @@ jobs:
5847
5948
- name: "Make tgz, zip and webupdater"
6049
run: |
61-
cd ./dist/${DEFAULT_TARGET}-*
62-
mv flipper-z-${DEFAULT_TARGET}-update-*.tgz ${RELEASE_TAG}.tgz
63-
cd ./${DEFAULT_TARGET}-update-*
64-
7z a ../${RELEASE_TAG}.zip .
65-
cd ..
66-
mv ${RELEASE_TAG}.tgz ..
67-
mv ${RELEASE_TAG}.zip ..
68-
cd ..
50+
cd dist/${DEFAULT_TARGET}-*
51+
mv ${DEFAULT_TARGET}-update-* ${RELEASE_TAG}
52+
tar --format=ustar -czvf ../${RELEASE_TAG}.tgz ${RELEASE_TAG}
53+
cd ${RELEASE_TAG}
54+
7z a ../../${RELEASE_TAG}.zip .
55+
cd ../..
6956
python -m pip install pyncclient
7057
WEBUPDATER_URL="$(python -c "import nextcloud_client as n;c = n.Client('https://cloud.cynthialabs.net/');c.login('${{ secrets.NC_USER }}', '${{ secrets.NC_PASS }}');c.put_file('XFW-Updater/${RELEASE_TAG}.tgz', '${RELEASE_TAG}.tgz');print(c.share_file_with_link('XFW-Updater/${RELEASE_TAG}.tgz').get_link().rstrip('/') + '/download/${RELEASE_TAG}.tgz', end='')")"
7158
echo "WEBUPDATER_URL=${WEBUPDATER_URL}" >> $GITHUB_ENV
@@ -74,13 +61,6 @@ jobs:
7461
run: |
7562
python -c "import json, os;f = '.github/workflow_data/release.md';c = json.load(open(os.environ['GITHUB_EVENT_PATH']))['pull_request']['body'];f_ = open(f);n = f_.read().format(release_tag='${RELEASE_TAG}', webupdater_url='${WEBUPDATER_URL}', changelog=c);f_.close();f_ = open(f, 'w');f_.write(n);f_.close()"
7663
77-
- name: "Commit new version number"
78-
uses: EndBug/add-and-commit@v9
79-
with:
80-
default_author: github_actions
81-
message: Update version number
82-
add: './fbt_options.py ./scripts/version.py'
83-
8464
- name: "Merge pull request"
8565
uses: "pascalgn/automerge-action@v0.15.6"
8666
env:
@@ -98,4 +78,4 @@ jobs:
9878
dist/${{ env.RELEASE_TAG }}.zip
9979
name: "${{ env.RELEASE_TAG }}"
10080
tag_name: "${{ env.RELEASE_TAG }}"
101-
target_commitish: main
81+
target_commitish: ${{ github.event.pull_request.base.ref }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
*~
12
*.swp
23
*.swo
34
*.gdb_history

.gitmodules

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
[submodule "lib/cxxheaderparser"]
2929
path = lib/cxxheaderparser
3030
url = https://github.com/robotpy/cxxheaderparser.git
31-
[submodule "applications/plugins/subbrute"]
32-
path = applications/plugins/subbrute
33-
url = https://github.com/derskythe/flipperzero-subbrute.git
34-
[submodule "applications/plugins/dap_link/lib/free-dap"]
35-
path = applications/plugins/dap_link/lib/free-dap
31+
[submodule "applications/external/dap_link/lib/free-dap"]
32+
path = applications/external/dap_link/lib/free-dap
3633
url = https://github.com/ataradov/free-dap.git
34+
[submodule "lib/heatshrink"]
35+
path = lib/heatshrink
36+
url = https://github.com/flipperdevices/heatshrink.git

.pvsoptions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
--ignore-ccache -C gccarm --rules-config .pvsconfig -e lib/fatfs -e lib/fnv1a-hash -e lib/FreeRTOS-Kernel -e lib/heatshrink -e lib/libusb_stm32 -e lib/littlefs -e lib/mbedtls -e lib/micro-ecc -e lib/microtar -e lib/mlib -e lib/qrcode -e lib/ST25RFAL002 -e lib/STM32CubeWB -e lib/u8g2 -e lib/nanopb -e */arm-none-eabi/* -e applications/plugins/dap_link/lib/free-dap
1+
--ignore-ccache -C gccarm --rules-config .pvsconfig -e lib/fatfs -e lib/fnv1a-hash -e lib/FreeRTOS-Kernel -e lib/heatshrink -e lib/libusb_stm32 -e lib/littlefs -e lib/mbedtls -e lib/micro-ecc -e lib/microtar -e lib/mlib -e lib/qrcode -e lib/ST25RFAL002 -e lib/STM32CubeWB -e lib/u8g2 -e lib/nanopb -e */arm-none-eabi/* -e applications/external/dap_link/lib/free-dap

ReadMe.md

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ The goal of this Firmware is to regularly bring out amazing updates based on wha
2323
- <h4>Stable: Many hours have been spent rewriting core parts of the Flippers firmware as well as some of its apps to ensure stability. A task that was long needed on all Firmware, so we tackled it right away.</h4>
2424

2525
- <h4>Customizable: Dont like the Animations, want to turn on/off the Home screen icons (battery, SD card etc), change the flippers name or anything like that? You absolutely can. No need to mess with code or deal with weird manifest files. Its all done with an App.</h4>
26+
<br><br>
27+
Note, the below mentioned changes are only a few things we did. For a full list click [here](https://github.com/ClaraCrazy/Flipper-Xtreme/wiki/Customization)
2628

2729
-----
2830
<br>
@@ -157,20 +159,37 @@ Note: This repo is always updated with OFW & Unleashed. No need to mention all t
157159
----
158160
<br>
159161
<h2 align="center">Install:</h2>
162+
<br>
160163

161-
**This is the recommended install procedure. Please follow these steps EXACTLY and CAREFULLY to ensure you install correctly.**
162-
**This process will NOT delete any saved files and simply ensures the install goes smoothly.**
163-
<br><br>
164+
There are 3 methods to install Xtreme, we recommend you use the **Web Updater**, but choose whichever one you prefer:
164165

165-
- Download the latest release (.zip) from [The releases tab](https://github.com/ClaraCrazy/Flipper-Xtreme/releases/latest)
166-
- Extract the archive. This is now your new Firmware folder
167-
- Open [qFlipper](https://flipperzero.one/update), head to `SD/Update` and simply move the firmware folder there
168-
- On the Flipper, hit the `Arrow Down` button, this will get you to the file menu. In there simply search for your updates folder
169-
- Inside that folder, select the Firmware you just moved onto it, and run the file thats simply called `Update`
166+
<br>
167+
168+
> <details><summary><code>Web Updater (Chrome)</code></summary><ul>
169+
> <li>Open the <a href="https://github.com/ClaraCrazy/Flipper-Xtreme/releases/latest">latest release page</a> and click on the <code>Web Updater</code> link</li>
170+
> <li>Make sure qFlipper is closed</li>
171+
> <li>Click <code>Connect</code> and select your Flipper from the list</li>
172+
> <li>Click <code>Install</code> and wait for the update to complete</li>
173+
> </ul></details>
174+
175+
> <details><summary><code>qFlipper Package (.tgz)</code></summary><ul>
176+
> <li>Download the qFlipper package (.tgz) from the <a href="https://github.com/ClaraCrazy/Flipper-Xtreme/releases/latest">latest release page</a></li>
177+
> <li>Open <a href="https://flipperzero.one/update">qFlipper</a> and connect your Flipper</li>
178+
> <li>Click <code>Install from file</code></li>
179+
> <li>Select the .tgz you downloaded and wait for the update to complete</li>
180+
> </ul></details>
181+
182+
> <details><summary><code>Zipped Archive (.zip)</code></summary><ul>
183+
> <li>Download the zipped archive (.zip) from the <a href="https://github.com/ClaraCrazy/Flipper-Xtreme/releases/latest">latest release page</a></li>
184+
> <li>Extract the archive. This is now your new Firmware folder</li>
185+
> <li>Open <a href="https://flipperzero.one/update">qFlipper</a>, head to <code>SD/Update</code> and simply move the firmware folder there</li>
186+
> <li>On the Flipper, hit the <code>Arrow Down</code> button, this will get you to the file menu. In there simply search for your updates folder</li>
187+
> <li>Inside that folder, select the Firmware you just moved onto it, and run the file thats simply called <code>Update</code></li>
188+
> </ul></details>
170189
171-
- Enjoy!
190+
<br>
172191

173-
**If you have issues or crashes with that process, you can try to use `Settings > Storage > Factory Reset` then retry the install.**
192+
**If you have issues or crashes with the install process, you can try to use `Settings > Storage > Factory Reset` then retry the install.**
174193
**Doing that will NOT remove your saved files, it will only forget some settings and paired devices.**
175194

176195
----
@@ -203,7 +222,7 @@ $ ./fbt resources icons dolphin_ext
203222
----
204223
<h2 align="center">Contributors</h2>
205224

206-
[![Contributors](https://user-images.githubusercontent.com/55334727/212134625-21383102-02f3-453f-b1d7-8a9c65b27612.svg)](https://github.com/ClaraCrazy/Flipper-Xtreme/graphs/contributors)
225+
[![Contributors](https://user-images.githubusercontent.com/49810075/228231815-8f0a267d-ac1a-494c-9cd0-1cd57568fc79.svg)](https://github.com/ClaraCrazy/Flipper-Xtreme/graphs/contributors)
207226

208227

209228
----

SConstruct

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -139,34 +139,33 @@ if GetOption("fullenv") or any(
139139
basic_dist = distenv.DistCommand("fw_dist", distenv["DIST_DEPENDS"])
140140
distenv.Default(basic_dist)
141141

142-
dist_dir = distenv.GetProjectDirName()
142+
dist_dir_name = distenv.GetProjectDirName()
143+
dist_dir = distenv.Dir(f"#/dist/{dist_dir_name}")
144+
external_apps_artifacts = firmware_env["FW_EXTAPPS"]
145+
external_app_list = external_apps_artifacts.application_map.values()
146+
143147
fap_dist = [
144148
distenv.Install(
145-
distenv.Dir(f"#/dist/{dist_dir}/apps/debug_elf"),
146-
list(
147-
app_artifact.debug
148-
for app_artifact in firmware_env["FW_EXTAPPS"].applications.values()
149-
),
149+
dist_dir.Dir("debug_elf"),
150+
list(app_artifact.debug for app_artifact in external_app_list),
150151
),
151152
*(
152153
distenv.Install(
153-
f"#/dist/{dist_dir}/apps/{app_artifact.app.fap_category}",
154-
app_artifact.compact[0],
154+
dist_dir.File(dist_entry[1]).dir,
155+
app_artifact.compact,
155156
)
156-
for app_artifact in firmware_env["FW_EXTAPPS"].applications.values()
157+
for app_artifact in external_app_list
158+
for dist_entry in app_artifact.dist_entries
157159
),
158160
]
159161
Depends(
160162
fap_dist,
161-
list(
162-
app_artifact.validator
163-
for app_artifact in firmware_env["FW_EXTAPPS"].applications.values()
164-
),
163+
list(app_artifact.validator for app_artifact in external_app_list),
165164
)
166165
Alias("fap_dist", fap_dist)
167166
# distenv.Default(fap_dist)
168167

169-
distenv.Depends(firmware_env["FW_RESOURCES"], firmware_env["FW_EXTAPPS"].resources_dist)
168+
distenv.Depends(firmware_env["FW_RESOURCES"], external_apps_artifacts.resources_dist)
170169

171170
# Copy all faps to device
172171

applications/ReadMe.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,20 @@ Applications for main Flipper menu.
3636
- `u2f` - U2F Application
3737

3838

39-
## plugins
39+
## External
4040

41-
Extra apps for Plugins & App Loader menus.
41+
External applications deployed to SD Card
4242

43-
- `bt_hid_app` - BT Remote controller
43+
- `clock` - Clock application
44+
- `dap_link` - DAP Link OnChip debugger
45+
- `hid_app` - USB/BT Remote controller
4446
- `music_player` - Music player app (demo)
45-
- `picopass` - Picopass tool
47+
- `nfc_magic` - NFC MFC Magic card application
48+
- `picopass` - Picopass reader / writer
49+
- `signal_generator` - Signal generator app: PWM and clock generator
4650
- `snake_game` - Snake game application
47-
51+
- `spi_mem_manager` - SPI Memory reader / flasher
52+
- `weather_station` - SubGHz weather station
4853

4954
## services
5055

applications/debug/uart_echo/application.fam

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
App(
22
appid="UART_Echo",
33
name="[GPIO] UART Echo",
4-
apptype=FlipperAppType.PLUGIN,
4+
apptype=FlipperAppType.EXTERNAL,
55
entry_point="uart_echo_app",
66
cdefines=["APP_UART_ECHO"],
77
requires=["gui"],

applications/debug/unit_tests/storage/storage_test.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -362,8 +362,8 @@ static size_t storage_test_apps_count = COUNT_OF(storage_test_apps);
362362
static int32_t storage_test_app(void* arg) {
363363
UNUSED(arg);
364364
Storage* storage = furi_record_open(RECORD_STORAGE);
365-
storage_common_remove(storage, "/app/test");
366-
int32_t ret = storage_file_create(storage, "/app/test", "test");
365+
storage_common_remove(storage, "/data/test");
366+
int32_t ret = storage_file_create(storage, "/data/test", "test");
367367
furi_record_close(RECORD_STORAGE);
368368
return ret;
369369
}
@@ -401,7 +401,7 @@ MU_TEST(test_storage_data_path) {
401401
Storage* storage = furi_record_open(RECORD_STORAGE);
402402

403403
File* file = storage_file_alloc(storage);
404-
mu_check(storage_dir_open(file, "/app"));
404+
mu_check(storage_dir_open(file, "/data"));
405405
mu_check(storage_dir_close(file));
406406
storage_file_free(file);
407407

0 commit comments

Comments
 (0)