Skip to content

Commit

Permalink
Latest Release RM1103-1517-0.93.1-5b5f666 on PATREON - 3 NEW APPS
Browse files Browse the repository at this point in the history
  • Loading branch information
RogueMaster committed Nov 4, 2023
1 parent c950396 commit 2794716
Show file tree
Hide file tree
Showing 11 changed files with 131 additions and 71 deletions.
6 changes: 6 additions & 0 deletions ReadMe.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ This software is for experimental purposes only and is not meant for any illegal
- Added: [City Bloxx (By Milk-Cool)](https://github.com/Milk-Cool/fz-citybloxx)
- Updated: [Authenticator/TOTP v5.7.0 (By akopachov)](https://github.com/akopachov/flipper-zero_authenticator)
- Updated: [RFID Fuzzer (By gid9798)](https://github.com/DarkFlippers/unleashed-firmware/pull/507) [Added IoProxXSF, Paradox, Indala26, Viking, Pyramid, Keri, and Jablotron to RFID Fuzzer #4 (By SkeletonMan03)](https://github.com/DarkFlippers/Multi_Fuzzer/pull/4)
- Added: [BT Remote for Kodi (Remixed By coded-with-claws)](https://github.com/coded-with-claws/flipperzero-tools/tree/main/applications_user/bt_hid_kodi)
- Added: [Mouse Jacker for MS Mouse (Remixed By coded-with-claws)](https://github.com/coded-with-claws/flipperzero-tools/tree/main/applications_user/mousejacker_ms) `Req: NRF24`
- Added: [NRF Sniffer for MS Mouse (Remixed By coded-with-claws)](https://github.com/coded-with-claws/flipperzero-tools/tree/main/applications_user/nrfsniff_ms) `Req: NRF24`

<a name="release">

Expand Down Expand Up @@ -306,6 +309,7 @@ $ ./fbt dolphin_ext
- [Bluetooth/USB Remote v1.5 (By Cutch)-OFW](https://github.com/flipperdevices/flipperzero-firmware/pull/1330) [Accelerated Mouse Pointer (By LeeroysHub)](https://github.com/LeeroysHub/flipperzero-firmware-wPlugins/commit/f67680d5b004a72419550a8268802030a8421643)
- [BPM Tapper v1.1 (By panki27)](https://github.com/panki27/bpm-tapper)
- [Brainfuck v1.1 (By nymda)](https://github.com/nymda/FlipperZeroBrainfuck)
- [BT Remote for Kodi (Remixed By coded-with-claws)](https://github.com/coded-with-claws/flipperzero-tools/tree/main/applications_user/bt_hid_kodi)
- [BT Serial (By maybe-hello-world)](https://github.com/maybe-hello-world/fbs)
- [BT Toy Serial (By maybe-hello-world)](https://github.com/maybe-hello-world/flipper-bp)
- [BT Trigger (By Nem0oo)](https://github.com/Nem0oo/flipper-zero_ios-bluetooth-trigger)
Expand Down Expand Up @@ -390,6 +394,7 @@ $ ./fbt dolphin_ext
- [Mifare Nested v1.5.2 (By AloneLiberty)](https://github.com/AloneLiberty/FlipperNested)
- [Morse Code v1.1 (By wh00hw)](https://github.com/DarkFlippers/unleashed-firmware/pull/144)
- [Mouse Jacker v1.1 (By mothball187)](https://github.com/mothball187/flipperzero-nrf24/tree/main/mousejacker) ([Pin Out](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/tree/420/applications/mousejacker) from nocomp/Frog/UberGuidoZ) `Req: NRF24`
- [Mouse Jacker for MS Mouse (Remixed By coded-with-claws)](https://github.com/coded-with-claws/flipperzero-tools/tree/main/applications_user/mousejacker_ms) `Req: NRF24`
- [Mouse Jiggler v1.1 (By Jacob-Tate)](https://github.com/Jacob-Tate/flipperzero-firmware/blob/dev/applications/mouse_jiggler/mouse_jiggler.c) (Original By MuddleBox)
- [Multi Converter v1.1 (By theisolinearchip)](https://github.com/theisolinearchip)
- [Music Beeper (By DrZlo13)](https://github.com/flipperdevices/flipperzero-firmware/pull/1189) [With Changes By qqMajiKpp/Haseo](https://github.com/qqmajikpp/)
Expand All @@ -408,6 +413,7 @@ $ ./fbt dolphin_ext
- [Nightstand Clock v1.1 (By nymda)](https://github.com/nymda/FlipperNightStand)
- [Notes for FZ WIP (By AdrianN001)](https://github.com/AdrianN001/Flipper-Zero-Note-Application)
- [NRF Sniff v1.1 (By mothball187)](https://github.com/mothball187/flipperzero-nrf24/tree/main/nrfsniff) ([Pin Out](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/tree/420/applications/nrfsniff) from nocomp/Frog/UberGuidoZ) `Req: NRF24`
- [NRF Sniffer for MS Mouse (Remixed By coded-with-claws)](https://github.com/coded-with-claws/flipperzero-tools/tree/main/applications_user/nrfsniff_ms) `Req: NRF24`
- [NRF24 Batch v2.0 (By vad7)](https://github.com/vad7/nRF24-Batch)
- [NRF24 Channel Scanner v1.3 (by htotoo)](https://github.com/htotoo/NRF24ChannelScanner)
- [NRF24 Scanner v2.3 (By vad7)](https://github.com/vad7/nrf24scan)
Expand Down
15 changes: 7 additions & 8 deletions applications/external/bt_hid_kodi/application.fam
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
App(
appid="bt_hid_kodi",
name="BT Remote for Kodi",
appid="remote_kodi",
name="Remote for Kodi",
apptype=FlipperAppType.EXTERNAL,
entry_point="bt_hid_kodi",
stack_size=1 * 1024,
cdefines=["APP_BLE_HID"],
requires=[
"bt",
"gui",
],
order=10,
fap_icon_assets_symbol="bt_hid_kodi",
fap_icon="bt_remote_10px.png",
fap_icon_assets="assets",
fap_category="Bluetooth",
fap_author="coded-with-claws",
fap_weburl="https://github.com/coded-with-claws/flipperzero-tools/tree/main/applications_user/bt_hid_kodi",
fap_version=(1, 0),
fap_description="Application Bluetooth remote Keynote for Kodi (original app + feature: long press on OK to switch between Space and Return (useful for Kodi to navigate the menus))",
)
33 changes: 16 additions & 17 deletions applications/external/bt_hid_kodi/views/bt_hid_keynote.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
#include <furi_hal_bt_hid.h>
#include <furi_hal_usb_hid.h>
#include <gui/elements.h>

#include "assets_icons.h"
#include <bt_hid_kodi_icons.h>

const char* bt_hid_hold_exit = "Hold : exit";
const char* bt_hid_hold_space = "Hold : space";
Expand Down Expand Up @@ -178,13 +177,13 @@ static void bt_hid_keynote_process(BtHidKeynote* bt_hid_keynote, InputEvent* eve
}
if(event->key == InputKeyOk) {
if(!model->switch_space_return) {
furi_hal_bt_hid_kb_press(HID_KEYBOARD_SPACEBAR);
furi_hal_bt_hid_kb_release(HID_KEYBOARD_SPACEBAR);
} else {
furi_hal_bt_hid_kb_press(HID_KEYBOARD_RETURN);
furi_hal_bt_hid_kb_release(HID_KEYBOARD_RETURN);
}
}
furi_hal_bt_hid_kb_press(HID_KEYBOARD_SPACEBAR);
furi_hal_bt_hid_kb_release(HID_KEYBOARD_SPACEBAR);
} else {
furi_hal_bt_hid_kb_press(HID_KEYBOARD_RETURN);
furi_hal_bt_hid_kb_release(HID_KEYBOARD_RETURN);
}
}
}
},
true);
Expand All @@ -198,14 +197,14 @@ static bool bt_hid_keynote_input_callback(InputEvent* event, void* context) {
if(event->type == InputTypeLong && event->key == InputKeyBack) {
furi_hal_bt_hid_kb_release_all();
} else if(event->type == InputTypeLong && event->key == InputKeyOk) {
with_view_model(
bt_hid_keynote->view,
BtHidKeynoteModel * model,
{
model->switch_space_return = !model->switch_space_return;
consumed = true;
},
true);
with_view_model(
bt_hid_keynote->view,
BtHidKeynoteModel * model,
{
model->switch_space_return = !model->switch_space_return;
consumed = true;
},
true);
} else {
bt_hid_keynote_process(bt_hid_keynote, event);
consumed = true;
Expand Down
4 changes: 2 additions & 2 deletions applications/external/mousejacker/mousejacker.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

#define TAG "mousejacker"
#define LOGITECH_MAX_CHANNEL 85
#define NRFSNIFF_APP_PATH_FOLDER_ADDRESSES EXT_PATH("apps_data/nrfsniff/addresses.txt")
#define LOCAL_BADUSB_FOLDER EXT_PATH("badusb")
#define NRFSNIFF_APP_PATH_FOLDER_ADDRESSES "/ext/apps_data/nrfsniff/addresses.txt"
#define LOCAL_BADUSB_FOLDER "/ext/bad_usb"
#define MOUSEJACKER_APP_PATH_EXTENSION ".txt"
#define MAX_ADDRS 100

Expand Down
22 changes: 12 additions & 10 deletions applications/external/mousejacker_azerty/mousejacker.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#define NRFSNIFF_APP_PATH_FOLDER "/ext/apps_data/nrfsniff"
#define NRFSNIFF_APP_PATH_EXTENSION ".txt"
#define NRFSNIFF_APP_FILENAME "addresses.txt"
#define MOUSEJACKER_APP_PATH_FOLDER "/ext/apps_data/mousejacker"
#define LOCAL_BADUSB_FOLDER "/ext/bad_usb"
#define MOUSEJACKER_APP_PATH_EXTENSION ".txt"
#define MAX_ADDRS 100

Expand Down Expand Up @@ -108,7 +108,7 @@ static bool open_ducky_script(Stream* stream, PluginState* plugin_state) {
bool result = false;
FuriString* path;
path = furi_string_alloc();
furi_string_set(path, MOUSEJACKER_APP_PATH_FOLDER);
furi_string_set(path, LOCAL_BADUSB_FOLDER);

DialogsFileBrowserOptions browser_options;
dialog_file_browser_set_basic_options(
Expand Down Expand Up @@ -299,12 +299,6 @@ int32_t mousejacker_app_azerty(void* p) {
return 255;
}

uint8_t attempts = 0;
while(!furi_hal_power_is_otg_enabled() && attempts++ < 5) {
furi_hal_power_enable_otg();
furi_delay_ms(10);
}

// Set system callbacks
ViewPort* view_port = view_port_alloc();
view_port_draw_callback_set(view_port, render_callback, plugin_state);
Expand All @@ -315,7 +309,7 @@ int32_t mousejacker_app_azerty(void* p) {
gui_add_view_port(gui, view_port, GuiLayerFullscreen);

plugin_state->storage = furi_record_open(RECORD_STORAGE);
storage_common_mkdir(plugin_state->storage, MOUSEJACKER_APP_PATH_FOLDER);
storage_common_mkdir(plugin_state->storage, LOCAL_BADUSB_FOLDER);
plugin_state->file_stream = file_stream_alloc(plugin_state->storage);

plugin_state->mjthread = furi_thread_alloc();
Expand All @@ -333,6 +327,14 @@ int32_t mousejacker_app_azerty(void* p) {
plugin_state->addr_err = true;
}
stream_free(plugin_state->file_stream);

uint8_t attempts = 0;
bool otg_was_enabled = furi_hal_power_is_otg_enabled();
while(!furi_hal_power_is_otg_enabled() && attempts++ < 5) {
furi_hal_power_enable_otg();
furi_delay_ms(10);
}

nrf24_init();

PluginEvent event;
Expand Down Expand Up @@ -402,7 +404,7 @@ int32_t mousejacker_app_azerty(void* p) {
furi_mutex_free(plugin_state->mutex);
free(plugin_state);

if(furi_hal_power_is_otg_enabled()) {
if(furi_hal_power_is_otg_enabled() && !otg_was_enabled) {
furi_hal_power_disable_otg();
}

Expand Down

This file was deleted.

17 changes: 8 additions & 9 deletions applications/external/mousejacker_ms/application.fam
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
App(
appid="nrf24_mouse_jacker_ms",
name="[NRF24] Mouse Jacker MS",
appid="mouse_jacker_ms",
name="Mouse Jacker MS",
apptype=FlipperAppType.EXTERNAL,
entry_point="mousejacker_app",
cdefines=["APP_MOUSEJACKER_MS"],
requires=[
"gui",
"dialogs",
],
stack_size=2 * 1024,
order=60,
fap_icon_assets_symbol="nrf24_mouse_jacker_ms",
fap_icon="mouse_10px.png",
fap_category="GPIO",
fap_category="GPIO/NRF24",
fap_icon_assets="images",
fap_private_libs=[
Lib(
Expand All @@ -21,4 +16,8 @@ App(
],
),
],
fap_author="coded-with-claws",
fap_weburl="https://github.com/coded-with-claws/flipperzero-tools/tree/main/applications_user/mousejacker_ms",
fap_version=(1, 0),
fap_description="Applications Mousejacker for Microsoft mouse (hardcoded)",
)
33 changes: 26 additions & 7 deletions applications/external/mousejacker_ms/mousejacker.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,19 @@
#include <furi_hal_spi.h>
#include <furi_hal_interrupt.h>
#include <furi_hal_resources.h>
#include <notification/notification_messages.h>
#include <nrf24.h>
#include "mousejacker_ducky.h"
#include "NRF24_Mouse_Jacker_icons.h"
#include <dolphin/dolphin.h>
#include "nrf24_mouse_jacker_ms_icons.h"

#define TAG "mousejacker"
#define MICROSOFT_MIN_CHANNEL 49
#define LOGITECH_MAX_CHANNEL 85
#define NRFSNIFF_APP_PATH_FOLDER "/ext/nrfsniff"
#define NRFSNIFF_APP_PATH_FOLDER "/ext/apps_data/nrfsniff"
#define NRFSNIFF_APP_PATH_EXTENSION ".txt"
#define NRFSNIFF_APP_FILENAME "addresses.txt"
#define MOUSEJACKER_APP_PATH_FOLDER "/ext/mousejacker"
#define LOCAL_BADUSB_FOLDER "/ext/badusb"
#define MOUSEJACKER_APP_PATH_EXTENSION ".txt"
#define MAX_ADDRS 100

Expand Down Expand Up @@ -108,7 +110,7 @@ static bool open_ducky_script(Stream* stream, PluginState* plugin_state) {
bool result = false;
FuriString* path;
path = furi_string_alloc();
furi_string_set(path, MOUSEJACKER_APP_PATH_FOLDER);
furi_string_set(path, LOCAL_BADUSB_FOLDER);

DialogsFileBrowserOptions browser_options;
dialog_file_browser_set_basic_options(
Expand Down Expand Up @@ -184,6 +186,7 @@ static bool process_ducky_file(
mj_process_ducky_script(
nrf24_HANDLE, addr, addr_size, rate, (char*)file_buf, plugin_state);
FURI_LOG_D(TAG, "finished execution");
dolphin_deed(getRandomDeed());
loaded = true;
} else {
FURI_LOG_D(TAG, "load failed. file size: %d", file_size);
Expand Down Expand Up @@ -259,7 +262,7 @@ static int32_t mj_worker_thread(void* ctx) {
5,
loaded_addrs[addr_idx][0],
2,
//MICROSOFT_MIN_CHANNEL,
//MICROSOFT_MIN_CHANNEL,
LOGITECH_MAX_CHANNEL,
true);
ducky_ok = process_ducky_file(
Expand Down Expand Up @@ -299,6 +302,8 @@ int32_t mousejacker_app(void* p) {
return 255;
}

NotificationApp* notification = furi_record_open(RECORD_NOTIFICATION);

// Set system callbacks
ViewPort* view_port = view_port_alloc();
view_port_draw_callback_set(view_port, render_callback, plugin_state);
Expand All @@ -309,7 +314,7 @@ int32_t mousejacker_app(void* p) {
gui_add_view_port(gui, view_port, GuiLayerFullscreen);

plugin_state->storage = furi_record_open(RECORD_STORAGE);
storage_common_mkdir(plugin_state->storage, MOUSEJACKER_APP_PATH_FOLDER);
storage_common_mkdir(plugin_state->storage, LOCAL_BADUSB_FOLDER);
plugin_state->file_stream = file_stream_alloc(plugin_state->storage);

plugin_state->mjthread = furi_thread_alloc();
Expand All @@ -327,6 +332,14 @@ int32_t mousejacker_app(void* p) {
plugin_state->addr_err = true;
}
stream_free(plugin_state->file_stream);

uint8_t attempts = 0;
bool otg_was_enabled = furi_hal_power_is_otg_enabled();
while(!furi_hal_power_is_otg_enabled() && attempts++ < 5) {
furi_hal_power_enable_otg();
furi_delay_ms(10);
}

nrf24_init();

PluginEvent event;
Expand Down Expand Up @@ -362,6 +375,7 @@ int32_t mousejacker_app(void* p) {
if(!plugin_state->is_thread_running) {
start_mjthread(plugin_state);
view_port_update(view_port);
notification_message(notification, &sequence_error);
}
}
break;
Expand All @@ -381,20 +395,25 @@ int32_t mousejacker_app(void* p) {
}
}

view_port_update(view_port);
furi_mutex_release(plugin_state->mutex);
view_port_update(view_port);
}

furi_thread_free(plugin_state->mjthread);
nrf24_deinit();
view_port_enabled_set(view_port, false);
gui_remove_view_port(gui, view_port);
furi_record_close(RECORD_NOTIFICATION);
furi_record_close(RECORD_GUI);
furi_record_close(RECORD_STORAGE);
view_port_free(view_port);
furi_message_queue_free(event_queue);
furi_mutex_free(plugin_state->mutex);
free(plugin_state);

if(furi_hal_power_is_otg_enabled() && !otg_was_enabled) {
furi_hal_power_disable_otg();
}

return 0;
}
22 changes: 20 additions & 2 deletions applications/external/mousejacker_ms/mousejacker_ducky.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,26 @@ static const char ducky_cmd_string[] = {"STRING "};
static const char ducky_cmd_repeat[] = {"REPEAT "};

// Bytes 0 to 3 are hardcoded for my specific mouse (they should be known after the sniffing but addresses.txt doesn't save them)
static uint8_t MICROSOFT_HID_TEMPLATE[] =
{0x08, 0x90, 0x19, 0x01, 0x00, 0x00, 67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
static uint8_t MICROSOFT_HID_TEMPLATE[] = {
0x08,
0x90,
0x19,
0x01,
0x00,
0x00,
67,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00};

uint8_t prev_hid = 0;
uint8_t sequence_num = 0;
Expand Down
14 changes: 8 additions & 6 deletions applications/external/nrfsniff_ms/application.fam
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
App(
appid="nrf24_sniffer_ms",
name="[NRF24] Sniffer MS",
appid="sniffer_ms",
name="Sniffer MS",
apptype=FlipperAppType.EXTERNAL,
entry_point="nrfsniff_app",
cdefines=["APP_NRFSNIFF_MS"],
requires=["gui"],
stack_size=2 * 1024,
order=70,
fap_icon_assets_symbol="nrf24_sniffer_ms",
fap_icon="nrfsniff_10px.png",
fap_category="GPIO",
fap_category="GPIO/NRF24",
fap_private_libs=[
Lib(
name="nrf24",
Expand All @@ -17,4 +15,8 @@ App(
],
),
],
fap_author="coded-with-claws",
fap_weburl="https://github.com/coded-with-claws/flipperzero-tools/tree/main/applications_user/nrfsniff_ms",
fap_version=(1, 0),
fap_description="Applications NRF Sniff & Mousejacker for Microsoft mouse (hardcoded)",
)
Loading

0 comments on commit 2794716

Please sign in to comment.