Skip to content

Commit

Permalink
Merge branch 'RogueMaster:420' into Custom-Marauder
Browse files Browse the repository at this point in the history
  • Loading branch information
ChrisFiola authored Jan 19, 2023
2 parents 5243eb7 + d057a29 commit 78bb398
Show file tree
Hide file tree
Showing 87 changed files with 2,842 additions and 335 deletions.
70 changes: 24 additions & 46 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,28 @@
### New changes
* CI/CD: Builds with extra apps pack included, see new option below
* SubGHz: Allow manual creation of Nice Flor S, Nice Smilo
* LF RFID: Allow removing password from T5577 to make it operational (PR #225 | by @TQMatvey & Tobirg (grvpvl))
* Plugins -> Barcode Generator: Save last used barcode, and load on app start
* Plugins -> Barcode Generator: Add EAN-13 support (PR #234 | by @gid9798)
* Plugins -> Arkanoid: Fix bug with unability to continue game after first level
* Plugins -> Morse Code: Fixed crashes, fixed known issues (PR #249 | by @gid9798)
* Plugins -> USB Keyboard & Mouse: Added ESCAPE key (PR #243 | by @huuck)
* Plugins -> USB Keyboard & Mouse: Added Delete key
* Plugins -> SubGHz Bruteforcer: Add holtek HT12X protocol support
* Plugins -> POCSAG Pager: Fix UI bug
* Plugins -> Wifi Marauder: Enable +5volt on plugin start, to allow usage with custom boards
* Plugins: Add 2048 Game (PR #233 | by @eugene-kirzhanov)
* Plugins: Update TOTP, UniTemp, Wifi marauder to latest commits from their repo's
* Infrared: Universal remote assets updates (by @amec0e | PRs #246 #242)
* Readme fixes (PR #247 | by @Kavitate)
* New Year update slideshow (by @Svaarich)
* Show OTP flipper region on debug and about screens
* OFW: Add float_tools to SDK api
* OFW: Gui: change data ownership model in submenu, own text by default
* OFW: Gui: Direct Draw API
* OFW: Mifare dictionary attack performance improvements.
* OFW: SubGhz: CAME 12 bit encoder fix guard time
* OFW: Fix MFC bruteforce progress bar
* OFW: Docs and readme's updates
* OFW: Picopass read bug fixes
* OFW: OpenOCD scripts
* OFW: New MFC Bruteforce animation
* OFW: File browser: Empty folder label
* OFW: SubGhz: add Holtek_ht12x protocol
* OFW: USB/BLE HID Remote icon fix
* OFW: Fix quoted error for macOS bad-usb
* OFW: Modules: locking view model
* OFW: Fix PVS-Studio warnings
* OFW: Fix unit tests
* OFW: WeatherStation: fix incorrect history index increment
* OFW: File format docs: RFID, iButton, BadUSB
* OFW: SubGhz: fix start navigation
* OFW: iButton: fixed notification on successful read
* OFW: Archive browser delete fix
* OFW: Fixes: correct scrolling text
* OFW: SubGhz: fix Hormann HSM
* OFW: Rework BLE key storage
* OFW: Gui: scrollable long file names in FileBrowser and Archive Browser
* OFW: Untangle NFC_APP_FOLDER from nfc_device
* OFW: WS: add choice fahrenheit/celsius (can be set from flipper settings -> system)
* SubGHz: **Somfy Telis Encoder** (PR #289 | by @assasinfil & @TQMatvey)
* SubGHz: Add 350Mhz to default range
* Plugins -> Solitaire: Fix for solitaire card placement bug (PR #253 | by @teeebor)
* Plugins -> UniTemp (New sensors added), TOTP - Updated to latest commits
* Plugins -> Added Text Viewer [(by kowalski7cc & kyhwana)](https://github.com/kowalski7cc/flipper-zero-text-viewer/tree/refactor-text-app)
* Plugins -> Added **UART Terminal** [(by cool4uma)](https://github.com/cool4uma/UART_Terminal/tree/main)
* Plugins -> Added **ProtoView** [(by antirez)](https://github.com/antirez/protoview)
* Plugins -> WAV Player - Replaced with fixed and improved version by [@LTVA1](https://github.com/LTVA1/wav_player)
* Clock: Fix 12AM was displaying as 00 AM (PR #288 | by @Smileycathy1128)
* Infrared: Allow disabling automatic signal decoding (aka Learn RAW) - works only when debug enabled (PR #273 | by @darmiel)
* Infrared: Update universal remote assets (by @amec0e)
* Desktop: New battery display (Bar %) - (PR #278 | by @Fasjeit)
* BadUSB: Adding CZ keyboard layout (PR #255 | by @peoblouk)
* OFW: Various improvements: Toolbox, Updater and Unit Tests.
* OFW: Fix typos in source code
* OFW: Add the sleigh ride animation
* OFW: Documentation: edit texts, markdown linting
* OFW: Change broken BadUSB link to Hak5 duckyscript quick reference webpage
* OFW: **Per protocol signal repeat count** - **Fixes issues with Sony remotes with SIRC protocol (bruteforce also fixed now!)**
* OFW: Add the ability to turn pages in infrared
* OFW: **BadUSB backspace/delete fix**
* OFW: relocate R_ARM_CALL
* OFW: fbt: PVS support
* OFW: fbt: removed DEBUG_TOOLS & FAP_EXAMPLES flags

#### [🎲 Download latest extra apps pack](https://download-directory.github.io/?url=https://github.com/xMasterX/unleashed-extra-pack/tree/main/apps)

Expand Down
14 changes: 10 additions & 4 deletions ReadMe.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ This software is for experimental purposes only and is not meant for any illegal

<a name="latest">

## Latest Updates - [PATREON: Latest Release RM0118-0252-0.75.1-444f4bd](https://www.patreon.com/posts/77398721)
## Latest Updates - [PATREON: Latest Release RM0118-1829-0.75.1-50a4cec](https://www.patreon.com/posts/77432074)

- Last Synced/Checked Unleashed, changes in [changelog](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/420/CHANGELOG.md) and in [commits](https://github.com/DarkFlippers/unleashed-firmware/commits/dev): `2023-01-18 11:40 EST`
- Last Synced/Checked OFW, changes in [commits](https://github.com/flipperdevices/flipperzero-firmware/commits/dev): `2023-01-18 11:40 EST`
- Last Synced/Checked Unleashed, changes in [changelog](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/blob/420/CHANGELOG.md) and in [commits](https://github.com/DarkFlippers/unleashed-firmware/commits/dev): `2023-01-18 17:40 EST`
- Last Synced/Checked OFW, changes in [commits](https://github.com/flipperdevices/flipperzero-firmware/commits/dev): `2023-01-18 17:40 EST`
- If you installed the previous release with AirTag code, I recommend a most immediate update from GitHub or Patreon to revert the AirTag code. My apoligies for the mix up, it was not my airtag being emulated, it was from the original project [here](https://github.com/culturally/flipper-zero-airtag). RM and the development team working on airtag features are not trying to track anyone. We are trying to improve the flipper functionality.
- Assets: Includes Tama P1 Rom Game file. [this rom](https://tinyurl.com/tamap1)
- Updated: [Calculator "2" (By theCow61)](https://github.com/theCow61/calculator)
Expand All @@ -39,6 +39,11 @@ This software is for experimental purposes only and is not meant for any illegal
- Updated: [Pomodoro 2 (By Th3Un1q3)](https://github.com/Th3Un1q3/flipp_pomodoro)
- [The clock will now show 12 AM instead of 00 AM (Thanks To Smileycathy1128)](https://github.com/DarkFlippers/unleashed-firmware/pull/288)
- Added: [Barcode App (By Kingal1337)](https://github.com/Kingal1337/flipper-barcode-generator)
- Added: [Brainfuck (By nymda)](https://github.com/nymda/FlipperZeroBrainfuck)
- Updated: [IR Remote (By Hong5489)](https://github.com/Hong5489/ir_remote)
- Updated: [Protocol Visualizer (By antirez)](https://github.com/antirez/protoview)
- UL Updated: [Temp Sensors Reader (By quen0n)](https://github.com/quen0n/Unitemp-Flipper-Zero-Plugin) `Req: BMP180/BMP280/BME280/BME680/DHT11/DHT22(AM2302)/AM2301/AM2320/HTU2XD/HTU21x/HDC1080/MAX31855`
- UL Updated: [WAV Player (By DrZlo13)](https://github.com/flipperdevices/flipperzero-firmware/tree/zlo/wav-player) Updated by Atmanos & RogueMaster To Work

<a name="release">

Expand Down Expand Up @@ -246,6 +251,7 @@ $ ./fbt dolphin_ext
- [Barcode Generator (By McAzzaMan)](https://github.com/McAzzaMan/flipperzero-firmware/tree/UPC-A_Barcode_Generator/applications/barcode_generator)
- [Bluetooth Remote (By Cutch)-OFW](https://github.com/flipperdevices/flipperzero-firmware/pull/1330)
- [BPM Tapper (By panki27)](https://github.com/panki27/bpm-tapper)
- [Brainfuck (By nymda)](https://github.com/nymda/FlipperZeroBrainfuck)
- [BT Serial (By maybe-hello-world)](https://github.com/maybe-hello-world/fbs)
- [Calculator (By n-o-T-I-n-s-a-n-e)](https://github.com/n-o-T-I-n-s-a-n-e)
- [Calculator "2" (By theCow61)](https://github.com/theCow61/calculator)
Expand Down Expand Up @@ -307,7 +313,7 @@ $ ./fbt dolphin_ext
- [Spectrum Analyzer (By jolcese)](https://github.com/jolcese/flipperzero-firmware/tree/spectrum/applications/spectrum_analyzer) [Updates (for testing) Thanks to theY4Kman](https://github.com/theY4Kman/flipperzero-firmware)
- [Sub-GHz Bruteforcer v3.4 (By Ganapati/xMasterX/derskythe)](https://github.com/derskythe/flipperzero-subbrute/tree/master)
- [Sub-GHz Playlist (By darmiel)](https://github.com/darmiel/flipper-playlist)
- [Temp Sensors Reader (By quen0n)](https://github.com/quen0n/Unitemp-Flipper-Zero-Plugin) `Req: BMP180/BMP280/BME280/BME680/DHT11/DHT22(AM2302)/AM2301/AM2320/HTU2XD/HTU21x/HDC1080`
- [Temp Sensors Reader (By quen0n)](https://github.com/quen0n/Unitemp-Flipper-Zero-Plugin) `Req: BMP180/BMP280/BME280/BME680/DHT11/DHT22(AM2302)/AM2301/AM2320/HTU2XD/HTU21x/HDC1080/MAX31855`
- [Text Viewer (By kowalski7cc)](https://github.com/kowalski7cc/flipper-zero-text-viewer)
- [Toy Serial (By maybe-hello-world)](https://github.com/maybe-hello-world/flipper-bp) WIP
- [Tuning Fork (By besya)](https://github.com/besya/flipperzero-tuning-fork)
Expand Down
2 changes: 1 addition & 1 deletion applications/debug/uart_echo/application.fam
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ App(
stack_size=2 * 1024,
order=70,
fap_icon="uart_10px.png",
fap_category="Misc",
fap_category="GPIO",
)
9 changes: 9 additions & 0 deletions applications/plugins/brainfuck/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# FlipperZeroBrainfuck

Brainfuck interpreter and editor for the F0.
Supports text inputs and outputs.
No protection against infinite loops or syntax errors.

![Screenshot-20230117-202147](https://user-images.githubusercontent.com/16545187/213004616-8846e897-506e-4510-8012-fd2fe2bbe8a1.png)

![Screenshot-20230117-202208](https://user-images.githubusercontent.com/16545187/213004659-d74751d2-76c4-4a7b-a0f2-f58623478b95.png)
15 changes: 15 additions & 0 deletions applications/plugins/brainfuck/application.fam
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
App(
appid="Brainfuck",
name="Brainfuck",
apptype=FlipperAppType.EXTERNAL,
entry_point="brainfuck_app",
requires=[
"storage",
"gui",
],
stack_size=8 * 1024,
fap_icon="bfico.png",
fap_category="Misc",
fap_icon_assets="icons",
fap_icon_assets_symbol="brainfuck",
)
Binary file added applications/plugins/brainfuck/bfico.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
149 changes: 149 additions & 0 deletions applications/plugins/brainfuck/brainfuck.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
#include "brainfuck_i.h"

/*
Due to the lack of documentation on the flipper i copied the picopass app,
ripped its insides out and used its hollow corpse to build this app inside of.
i dont know how this stuff works and after 6 hours of trying to learn it, i dont care
*/

bool brainfuck_custom_event_callback(void* context, uint32_t event) {
furi_assert(context);
BFApp* brainfuck = context;
return scene_manager_handle_custom_event(brainfuck->scene_manager, event);
}

bool brainfuck_back_event_callback(void* context) {
furi_assert(context);
BFApp* brainfuck = context;
return scene_manager_handle_back_event(brainfuck->scene_manager);
}

BFApp* brainfuck_alloc() {
BFApp* brainfuck = malloc(sizeof(BFApp));

brainfuck->dataSize = 0;
brainfuck->view_dispatcher = view_dispatcher_alloc();
brainfuck->scene_manager = scene_manager_alloc(&brainfuck_scene_handlers, brainfuck);
view_dispatcher_enable_queue(brainfuck->view_dispatcher);
view_dispatcher_set_event_callback_context(brainfuck->view_dispatcher, brainfuck);
view_dispatcher_set_custom_event_callback(
brainfuck->view_dispatcher, brainfuck_custom_event_callback);
view_dispatcher_set_navigation_event_callback(
brainfuck->view_dispatcher, brainfuck_back_event_callback);

// Open GUI record
brainfuck->gui = furi_record_open(RECORD_GUI);
view_dispatcher_attach_to_gui(
brainfuck->view_dispatcher, brainfuck->gui, ViewDispatcherTypeFullscreen);

// Open Notification record
brainfuck->notifications = furi_record_open(RECORD_NOTIFICATION);

// Submenu
brainfuck->submenu = submenu_alloc();
view_dispatcher_add_view(
brainfuck->view_dispatcher, brainfuckViewMenu, submenu_get_view(brainfuck->submenu));

// Popup
brainfuck->popup = popup_alloc();
view_dispatcher_add_view(
brainfuck->view_dispatcher, brainfuckViewPopup, popup_get_view(brainfuck->popup));

// Text Input
brainfuck->text_input = text_input_alloc();
view_dispatcher_add_view(
brainfuck->view_dispatcher,
brainfuckViewTextInput,
text_input_get_view(brainfuck->text_input));

// Textbox
brainfuck->text_box = text_box_alloc();
view_dispatcher_add_view(
brainfuck->view_dispatcher, brainfuckViewTextBox, text_box_get_view(brainfuck->text_box));
brainfuck->text_box_store = furi_string_alloc();

// Dev environment
brainfuck->BF_dev_env = bf_dev_env_alloc(brainfuck);
view_dispatcher_add_view(
brainfuck->view_dispatcher, brainfuckViewDev, bf_dev_env_get_view(brainfuck->BF_dev_env));

// File path
brainfuck->BF_file_path = furi_string_alloc();

return brainfuck;
}

void brainfuck_free(BFApp* brainfuck) {
furi_assert(brainfuck);

// Submenu
view_dispatcher_remove_view(brainfuck->view_dispatcher, brainfuckViewMenu);
submenu_free(brainfuck->submenu);

// Popup
view_dispatcher_remove_view(brainfuck->view_dispatcher, brainfuckViewPopup);
popup_free(brainfuck->popup);

// TextInput
view_dispatcher_remove_view(brainfuck->view_dispatcher, brainfuckViewTextInput);
text_input_free(brainfuck->text_input);

// TextBox
view_dispatcher_remove_view(brainfuck->view_dispatcher, brainfuckViewTextBox);
text_box_free(brainfuck->text_box);
furi_string_free(brainfuck->text_box_store);

//dev env
view_dispatcher_remove_view(brainfuck->view_dispatcher, brainfuckViewDev);
bf_dev_env_free(brainfuck->BF_dev_env);

// View Dispatcher
view_dispatcher_free(brainfuck->view_dispatcher);

// Scene Manager
scene_manager_free(brainfuck->scene_manager);

// GUI
furi_record_close(RECORD_GUI);
brainfuck->gui = NULL;

// Notifications
furi_record_close(RECORD_NOTIFICATION);
brainfuck->notifications = NULL;

free(brainfuck);
}

void brainfuck_show_loading_popup(void* context, bool show) {
BFApp* brainfuck = context;
TaskHandle_t timer_task = xTaskGetHandle(configTIMER_SERVICE_TASK_NAME);

if(show) {
// Raise timer priority so that animations can play
vTaskPrioritySet(timer_task, configMAX_PRIORITIES - 1);
view_dispatcher_switch_to_view(brainfuck->view_dispatcher, brainfuckViewLoading);
} else {
// Restore default timer priority
vTaskPrioritySet(timer_task, configTIMER_TASK_PRIORITY);
}
}

int32_t brainfuck_app(void* p) {
UNUSED(p);
BFApp* brainfuck = brainfuck_alloc();
if(!brainfuck) {
return 0;
}

Storage* storage = furi_record_open(RECORD_STORAGE);
storage_simply_mkdir(storage, "/ext/brainfuck");

scene_manager_next_scene(brainfuck->scene_manager, brainfuckSceneStart);

view_dispatcher_run(brainfuck->view_dispatcher);

brainfuck_free(brainfuck);

return 0;
}
3 changes: 3 additions & 0 deletions applications/plugins/brainfuck/brainfuck.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#pragma once

typedef struct BFApp BFApp;
86 changes: 86 additions & 0 deletions applications/plugins/brainfuck/brainfuck_i.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
#pragma once

typedef struct BFDevEnv BFDevEnv;
typedef struct BFExecEnv BFExecEnv;
typedef unsigned char byte;

#include "brainfuck.h"
#include "worker.h"

#include <furi.h>
#include <gui/gui.h>
#include <gui/view_dispatcher.h>
#include <gui/scene_manager.h>
#include <notification/notification_messages.h>

#include <gui/modules/submenu.h>
#include <gui/modules/popup.h>
#include <gui/modules/loading.h>
#include <gui/modules/text_input.h>
#include <gui/modules/widget.h>
#include <gui/modules/text_box.h>

#include <dialogs/dialogs.h>
#include <input/input.h>

#include "scenes/brainfuck_scene.h"

#include "views/bf_dev_env.h"

#include <storage/storage.h>
#include <lib/toolbox/path.h>
#include <brainfuck_icons.h>

#include <storage/storage.h>
#include <stream/stream.h>
#include <stream/buffered_file_stream.h>
#include <toolbox/stream/file_stream.h>

#define BF_INST_BUFFER_SIZE 2048
#define BF_OUTPUT_SIZE 512
#define BF_STACK_INITIAL_SIZE 128
#define BF_INPUT_BUFFER_SIZE 64
#define BF_STACK_STEP_SIZE 32

enum brainfuckCustomEvent {
// Reserve first 100 events for button types and indexes, starting from 0
brainfuckCustomEventReserved = 100,

brainfuckCustomEventViewExit,
brainfuckCustomEventWorkerExit,
brainfuckCustomEventByteInputDone,
brainfuckCustomEventTextInputDone,
};

typedef enum {
EventTypeTick,
EventTypeKey,
} EventType;

struct BFApp {
ViewDispatcher* view_dispatcher;
Gui* gui;
NotificationApp* notifications;
SceneManager* scene_manager;
Submenu* submenu;
Popup* popup;
TextInput* text_input;
TextBox* text_box;
FuriString* text_box_store;
FuriString* BF_file_path;
BFDevEnv* BF_dev_env;
int dataSize;
char dataBuffer[BF_INST_BUFFER_SIZE];
char inputBuffer[BF_INPUT_BUFFER_SIZE];
};

typedef enum {
brainfuckViewMenu,
brainfuckViewPopup,
brainfuckViewLoading,
brainfuckViewTextInput,
brainfuckViewTextBox,
brainfuckViewWidget,
brainfuckViewDev,
brainfuckViewExec,
} brainfuckView;
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added applications/plugins/brainfuck/icons/bfico.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 78bb398

Please sign in to comment.