Skip to content

Commit

Permalink
Merge branch 'dev' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
xMasterX committed Apr 22, 2023
2 parents 6716c0f + b2294b9 commit 14cc7a0
Show file tree
Hide file tree
Showing 47 changed files with 458 additions and 758 deletions.
43 changes: 3 additions & 40 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,7 @@
### New changes
* Note: Due to latest official changes this release was delayed - release was tested by group of users, and some of them reported getting one crash on "furi_check failed", but this can not be reproduced in any way we tried, so, please if you found any issues with BLE (+ Mobile app) that results in crash, create issue with all details how you got it and how many times, and detailed steps on repeating such issue, if you got one crash and can't get it again, collect information how it happened and create issue with as much details as possible -> Thanks!
* SubGHz: New option to use timestamps + protocol name when you saving file, instead of random name - Enable in `Radio Settings -> Time in names = ON`
* SubGHz: Read mode UI improvements (scrolling text, + shows time when signal was received) (by @wosk | PR #429)
* SubGHz: New options to ignore Magellan, Cars(ScherKhan, Kia)(no you can't send that signals)
* SubGHz: Fix keeloq custom buttons bugs
* SubGhz: Nero Radio 57bit **experimental** support + encoder improvements and decoder changes
* SubGhz: Fix RAW recording and reading, (bug where raw file plays endlessly) (Fixes issue #431)
* SubGHz Remote: Add Alutech AT4N Support, fix some issues
* Power GUI: Changing battery style doesnt require reboot (Added API to trigger UI change from different place) (Inspired by @ESurge work)
* Plugins: BLE Remote -> Keynote with vertical layout (by @Kami-no | PR #428)
* Plugins: Improve wifi marauder keyboard (added extra symbols!) (Port uart terminal keyboard into wifi marauder)
* Infrared: Update universal remote assets (by @amec0e | PR #421)
* Docs: Update build docs (by @PhoenixSheppy | PR #425)
* OFW: cubewb: updated to v1.16.0 -> **Part 2 of "Various stop mode fixes"**
* OFW: github: testing SDK with ufbt action
* OFW: Raw RFID documentation
* OFW: Introduce stealth mode and auto-selective lock
* OFW: Active RPC session icon -> **Breaking API change, api was changed from 22.x to 23.x**
* OFW: Various stop mode fixes -> **Should fix known issues with BLE (Random freezes, menu freeze, BT Remote plugin freeze) and other similar issues**
* OFW: Picopass: Correctly aborts when correct key is found -> Fixes Bug (Picopass app not reading elite keyed cards anymore. #413)
### Pre-release changes
* If you have copied apps into `apps` folder - remove `apps` folder on your microSD before installing this release to avoid issues!
* SubGHz: (Bug that I decided to keep as a feature) You can change default button (Ok) for remote by holding custom button and pressing back at same time (same can be used to restore your button if you changed it accidentally) - Be careful, it might be unstable, I will make proper option to change button in next releases
* SubGHz: Fixes for custom button bugs in SubGHz Remote app
* SubGHz: Add alutech table to enviroment alloc and free
* Docs: Fix and update docs - thanks to @lesterrry
* Plugins: Bluetooth Remote - implemented YouTube Shorts Remote (may be unstable)
* Plugins: Bluetooth Remote - improvements and fixes for TikTok remote (by @krolchonok | PR #420 and #432)
* Plugins: Implement an array for baudrates on GPS UART app (+ add 19200 baud) (by @p0ns | PR #416)
* Plugins: Remove UART Echo from releases since it is locked on 115200 baud, and we have **UART Terminal** with ability to set baudrate
* Plugins: Update **TOTP (Authenticator)** [(by akopachov)](https://github.com/akopachov/flipper-zero_authenticator)
* Plugins: Update **UART Terminal** [(by cool4uma)](https://github.com/cool4uma/UART_Terminal/tree/main)
* OFW: Deep Sleep Idle - **Improves battery usage!!!** -> **Breaking API change, api was changed from 21.x to 22.x**
* OFW: FuriHal: pwr pulls for some pins
* OFW: Bugfix: ISP Programmer and SubGhz
* OFW: AVR_ISP: fix NULL pointer dereference
* OFW: Fix gpio state isp programmer
* OFW: ufbt: project & debugging updates
* OFW: FuriHal: fix gpio naming and add explicit pulls for vibro, speaker and ir_tx -> **Breaking API change, api was changed from 20.x to 21.x**
**(this will make your manually copied plugins not work, update them in same way you installed them, or delete `apps` folder and then install firmware, if you using extra pack builds (with `e` in version) all apps in _Extra will be updated automatically)**
* Power + BLE Stack: Reverted OFW BLE stack upgrade, reverted deep sleep -> Temporarily, due to NFC issues, need more research on how deepsleep affects all systems -> **If you got any NFC (or orther) crashes / freezes on 044 release please upgrade to this one**
* SubGHz: Combining add manual scenes (by @gid9798 | PR #433)
* SubGHz: Fix add manually naming

#### [🎲 Download latest extra apps pack](https://github.com/xMasterX/all-the-plugins/archive/refs/heads/main.zip)

Expand Down
5 changes: 3 additions & 2 deletions applications/main/fap_loader/fap_loader_app.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#include "fap_loader_app.h"

#include <furi.h>
#include <furi_hal_debug.h>

#include <assets_icons.h>
#include <gui/gui.h>
Expand All @@ -24,6 +23,8 @@ struct FapLoader {
Loading* loading;
};

volatile bool fap_loader_debug_active = false;

bool fap_loader_load_name_and_icon(
FuriString* path,
Storage* storage,
Expand Down Expand Up @@ -133,7 +134,7 @@ static bool fap_loader_run_selected_app(FapLoader* loader, bool ignore_mismatch)
FuriThread* thread = flipper_application_spawn(loader->app, NULL);

/* This flag is set by the debugger - to break on app start */
if(furi_hal_debug_is_gdb_session_active()) {
if(fap_loader_debug_active) {
FURI_LOG_W(TAG, "Triggering BP for debugger");
/* After hitting this, you can set breakpoints in your .fap's code
* Note that you have to toggle breakpoints that were set before */
Expand Down
9 changes: 3 additions & 6 deletions applications/main/subghz/scenes/subghz_scene_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,9 @@ ADD_SCENE(subghz, test_static, TestStatic)
ADD_SCENE(subghz, test_packet, TestPacket)
#endif
ADD_SCENE(subghz, set_type, SetType)
ADD_SCENE(subghz, set_fix_faac, SetFixFaac)
ADD_SCENE(subghz, set_cnt_faac, SetCntFaac)
ADD_SCENE(subghz, set_seed_faac, SetSeedFaac)
ADD_SCENE(subghz, set_fix_bft, SetFixBft)
ADD_SCENE(subghz, set_cnt_bft, SetCntBft)
ADD_SCENE(subghz, set_seed_bft, SetSeedBft)
ADD_SCENE(subghz, set_fix, SetFix)
ADD_SCENE(subghz, set_cnt, SetCnt)
ADD_SCENE(subghz, set_seed, SetSeed)
ADD_SCENE(subghz, frequency_analyzer, FrequencyAnalyzer)
ADD_SCENE(subghz, ext_module_settings, ExtModuleSettings)
ADD_SCENE(subghz, read_raw, ReadRAW)
Expand Down
4 changes: 3 additions & 1 deletion applications/main/subghz/scenes/subghz_scene_save_name.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ void subghz_scene_save_name_on_enter(void* context) {
if(subghz->txrx->decoder_result != 0x0) {
if(subghz->txrx->decoder_result != NULL) {
if(strlen(subghz->txrx->decoder_result->protocol->name) != 0) {
if(strcmp(subghz->txrx->decoder_result->protocol->name, "BinRAW") == 0) {
if(subghz->from_add_manually) {
subghz_scene_save_name_get_timefilename(file_name, "S", true);
} else {
subghz_scene_save_name_get_timefilename(
Expand Down Expand Up @@ -198,6 +198,8 @@ bool subghz_scene_save_name_on_event(void* context, SceneManagerEvent event) {
void subghz_scene_save_name_on_exit(void* context) {
SubGhz* subghz = context;

subghz->from_add_manually = false;

// Clear validator
void* validator_context = text_input_get_validator_callback_context(subghz->text_input);
text_input_set_validator(subghz->text_input, NULL, NULL);
Expand Down
66 changes: 66 additions & 0 deletions applications/main/subghz/scenes/subghz_scene_set_cnt.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#include "../subghz_i.h"

#define TAG "SubGhzSetCnt"

void subghz_scene_set_cnt_byte_input_callback(void* context) {
SubGhz* subghz = context;

view_dispatcher_send_custom_event(subghz->view_dispatcher, SubGhzCustomEventByteInputDone);
}

void subghz_scene_set_cnt_on_enter(void* context) {
SubGhz* subghz = context;

// Setup view
ByteInput* byte_input = subghz->byte_input;
SubGhzCustomEvent state =
scene_manager_get_scene_state(subghz->scene_manager, SubGhzSceneSetType);

switch(state) {
case SubmenuIndexBFTClone:
byte_input_set_header_text(byte_input, "Enter COUNTER in hex");
byte_input_set_result_callback(
byte_input,
subghz_scene_set_cnt_byte_input_callback,
NULL,
subghz,
subghz->txrx->secure_data->cnt,
2);
break;
case SubmenuIndexFaacSLH_433:
case SubmenuIndexFaacSLH_868:
byte_input_set_header_text(byte_input, "Enter COUNTER in hex, 20bits");
byte_input_set_result_callback(
byte_input,
subghz_scene_set_cnt_byte_input_callback,
NULL,
subghz,
subghz->txrx->secure_data->cnt,
3);
break;
default:
break;
}
view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewIdByteInput);
}

bool subghz_scene_set_cnt_on_event(void* context, SceneManagerEvent event) {
SubGhz* subghz = context;
bool consumed = false;

if(event.type == SceneManagerEventTypeCustom) {
if(event.event == SubGhzCustomEventByteInputDone) {
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSetSeed);
consumed = true;
}
}
return consumed;
}

void subghz_scene_set_cnt_on_exit(void* context) {
SubGhz* subghz = context;

// Clear view
byte_input_set_result_callback(subghz->byte_input, NULL, NULL, NULL, NULL, 0);
byte_input_set_header_text(subghz->byte_input, "");
}
46 changes: 0 additions & 46 deletions applications/main/subghz/scenes/subghz_scene_set_cnt_bft.c

This file was deleted.

46 changes: 0 additions & 46 deletions applications/main/subghz/scenes/subghz_scene_set_cnt_faac.c

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,43 +1,43 @@
#include "../subghz_i.h"

#define TAG "SubGhzSetFixBft"
#define TAG "SubGhzSetFix"

void subghz_scene_set_fix_bft_byte_input_callback(void* context) {
void subghz_scene_set_fix_byte_input_callback(void* context) {
SubGhz* subghz = context;

view_dispatcher_send_custom_event(subghz->view_dispatcher, SubGhzCustomEventByteInputDone);
}

void subghz_scene_set_fix_bft_on_enter(void* context) {
void subghz_scene_set_fix_on_enter(void* context) {
SubGhz* subghz = context;

// Setup view
ByteInput* byte_input = subghz->byte_input;
byte_input_set_header_text(byte_input, "Enter FIX in hex");
byte_input_set_result_callback(
byte_input,
subghz_scene_set_fix_bft_byte_input_callback,
subghz_scene_set_fix_byte_input_callback,
NULL,
subghz,
subghz->txrx->secure_data->fix,
4);
view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewIdByteInput);
}

bool subghz_scene_set_fix_bft_on_event(void* context, SceneManagerEvent event) {
bool subghz_scene_set_fix_on_event(void* context, SceneManagerEvent event) {
SubGhz* subghz = context;
bool consumed = false;

if(event.type == SceneManagerEventTypeCustom) {
if(event.event == SubGhzCustomEventByteInputDone) {
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSetCntBft);
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSetCnt);
consumed = true;
}
}
return consumed;
}

void subghz_scene_set_fix_bft_on_exit(void* context) {
void subghz_scene_set_fix_on_exit(void* context) {
SubGhz* subghz = context;

// Clear view
Expand Down
46 changes: 0 additions & 46 deletions applications/main/subghz/scenes/subghz_scene_set_fix_faac.c

This file was deleted.

Loading

0 comments on commit 14cc7a0

Please sign in to comment.