Skip to content

Commit 61c1fa8

Browse files
committed
Squashed 'applications/external/' changes from 762688f712..ea5d532d8c
ea5d532d8c BleSpam: Bump 6.0 a7126650c2 BleSpam: Fix hang on lock keyboard d2f94be5ef BleSpam: Add nameflood (fills settings device list) 8fc780c090 BleSpam: Add a note about patched fastpair 0711b55437 Merge vgm_air_mouse from https://github.com/flipperdevices/flipperzero-good-faps 16fbe8c763 Merge spi_mem_manager from https://github.com/flipperdevices/flipperzero-good-faps a2c92be506 Merge seader from https://github.com/bettse/seader 6c9887f562 Merge avr_isp from https://github.com/flipperdevices/flipperzero-good-faps 36db08513f Air mouse version bump (#164) 8130e0d94f Air Mouse app: new BLE profile support (#115) 0e3cfccd02 AVR_ISP: update icons to black and white (#163) bedc994e58 AVR_ISP: Update API v58.0 (#162) 64d6f1d update for bit_lib.h move c90dfbb5e2 Updated about scene version number (#154) git-subtree-dir: applications/external git-subtree-split: ea5d532d8ccdbba597b620d1cb44d5a83bd6f700
1 parent bd2cbd1 commit 61c1fa8

17 files changed

+190
-7
lines changed

avr_isp/.catalog/changelog.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## 1.2
2+
- Updade icon
3+
## 1.1
4+
- Updade API v58.0
5+
## 1.0
6+
- Initial release

avr_isp/application.fam

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ App(
66
requires=["gui"],
77
stack_size=4 * 1024,
88
fap_description="Application for flashing AVR microcontrollers",
9-
fap_version="1.0",
10-
fap_icon="avr_app_icon_10x10.png",
9+
fap_version="1.2",
10+
fap_icon="avr_app_icon_10px.png",
1111
fap_category="GPIO",
1212
fap_icon_assets="images",
1313
fap_private_libs=[

avr_isp/avr_app_icon_10px.png

171 Bytes
Loading

avr_isp/avr_app_icon_10x10.png

-3.53 KB
Binary file not shown.

avr_isp/helpers/avr_isp_types.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include <furi.h>
44
#include <furi_hal.h>
55

6-
#define AVR_ISP_VERSION_APP "0.1"
6+
#define AVR_ISP_VERSION_APP FAP_VERSION
77
#define AVR_ISP_DEVELOPED "SkorP"
88
#define AVR_ISP_GITHUB "https://github.com/flipperdevices/flipperzero-good-faps"
99

ble_spam/application.fam

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ App(
88
fap_category="Bluetooth",
99
fap_author="@Willy-JL @ECTO-1A @Spooks4576",
1010
fap_weburl="https://github.com/Next-Flip/Momentum-Apps/tree/dev/ble_spam",
11-
fap_version="5.1",
11+
fap_version="6.0",
1212
fap_description="Flood BLE advertisements to cause spammy and annoying popups/notifications",
1313
fap_icon_assets="icons",
1414
fap_icon_assets_symbol="ble_spam",

ble_spam/ble_spam.c

+14-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,16 @@ static Attack attacks[] = {
2424
.cfg = {},
2525
},
2626
},
27+
{
28+
.title = "BT Settings Flood",
29+
.text = "Fills available BT devices",
30+
.protocol = &protocol_nameflood,
31+
.payload =
32+
{
33+
.random_mac = true,
34+
.cfg.nameflood = {},
35+
},
36+
},
2737
{
2838
.title = "iOS 17 Lockup Crash",
2939
.text = "Newer iPhones, long range",
@@ -390,7 +400,7 @@ static void draw_callback(Canvas* canvas, void* _ctx) {
390400
"App+Spam: \e#WillyJL\e# MNTM\n"
391401
"Apple+Crash: \e#ECTO-1A\e#\n"
392402
"Android+Win: \e#Spooks4576\e#\n"
393-
" Version \e#5.1\e#",
403+
" Version \e#" FAP_VERSION "\e#",
394404
false);
395405
break;
396406
default: {
@@ -481,12 +491,14 @@ static bool input_callback(InputEvent* input, void* _ctx) {
481491
consumed = true;
482492
state->lock_warning = true;
483493
if(state->lock_count == 0) {
494+
furi_timer_set_thread_priority(FuriTimerThreadPriorityElevated);
484495
furi_timer_start(state->lock_timer, 1000);
485496
}
486497
if(input->type == InputTypeShort && input->key == InputKeyBack) {
487498
state->lock_count++;
488499
}
489500
if(state->lock_count >= 3) {
501+
furi_timer_set_thread_priority(FuriTimerThreadPriorityElevated);
490502
furi_timer_start(state->lock_timer, 1);
491503
}
492504
} else if(
@@ -604,6 +616,7 @@ static void lock_timer_callback(void* _ctx) {
604616
with_view_model(
605617
state->main_view, State * *model, { (*model)->lock_warning = false; }, true);
606618
state->lock_count = 0;
619+
furi_timer_set_thread_priority(FuriTimerThreadPriorityNormal);
607620
}
608621

609622
static void tick_event_callback(void* _ctx) {

ble_spam/protocols/_protocols.c

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const Protocol* protocols[] = {
55
&protocol_easysetup,
66
&protocol_fastpair,
77
&protocol_lovespouse,
8+
&protocol_nameflood,
89
&protocol_swiftpair,
910
};
1011

ble_spam/protocols/_protocols.h

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include "easysetup.h"
55
#include "fastpair.h"
66
#include "lovespouse.h"
7+
#include "nameflood.h"
78
#include "swiftpair.h"
89

910
typedef enum {
@@ -25,6 +26,7 @@ struct Payload {
2526
EasysetupCfg easysetup;
2627
FastpairCfg fastpair;
2728
LovespouseCfg lovespouse;
29+
NamefloodCfg nameflood;
2830
SwiftpairCfg swiftpair;
2931
} cfg;
3032
};

ble_spam/protocols/_scenes.h

+1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
#include "easysetup_scenes.h"
33
#include "fastpair_scenes.h"
44
#include "lovespouse_scenes.h"
5+
#include "nameflood_scenes.h"
56
#include "swiftpair_scenes.h"

ble_spam/protocols/fastpair.c

+5
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,7 @@ enum {
600600
_ConfigExtraStart = ConfigExtraStart,
601601
ConfigModel,
602602
ConfigInfoRequire,
603+
ConfigInfoPatched,
603604
ConfigCOUNT,
604605
};
605606
static void config_callback(void* _ctx, uint32_t index) {
@@ -611,6 +612,8 @@ static void config_callback(void* _ctx, uint32_t index) {
611612
break;
612613
case ConfigInfoRequire:
613614
break;
615+
case ConfigInfoPatched:
616+
break;
614617
default:
615618
ctx->fallback_config_enter(ctx, index);
616619
break;
@@ -698,6 +701,8 @@ static void extra_config(Ctx* ctx) {
698701

699702
variable_item_list_add(list, "Requires Google services", 0, NULL, NULL);
700703

704+
variable_item_list_add(list, "Patched on new Android", 0, NULL, NULL);
705+
701706
variable_item_list_set_enter_callback(list, config_callback, ctx);
702707
}
703708

ble_spam/protocols/nameflood.c

+142
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
#include "nameflood.h"
2+
#include "_protocols.h"
3+
4+
// Hacked together by @Willy-JL
5+
6+
static const char* names[] = {
7+
"Assquach💦",
8+
"Flipper 🐬",
9+
"iOS 17 🍎",
10+
"Kink💦",
11+
"👉👌",
12+
"🔵🦷",
13+
};
14+
static const uint8_t names_count = COUNT_OF(names);
15+
16+
static const char* get_name(const Payload* payload) {
17+
UNUSED(payload);
18+
return "NameFlood";
19+
}
20+
21+
static void make_packet(uint8_t* _size, uint8_t** _packet, Payload* payload) {
22+
NamefloodCfg* cfg = payload ? &payload->cfg.nameflood : NULL;
23+
24+
const char* name;
25+
switch(cfg ? payload->mode : PayloadModeRandom) {
26+
case PayloadModeRandom:
27+
default:
28+
name = names[rand() % names_count];
29+
break;
30+
case PayloadModeValue:
31+
name = cfg->name;
32+
break;
33+
}
34+
uint8_t name_len = strlen(name);
35+
36+
uint8_t size = 12 + name_len;
37+
uint8_t* packet = malloc(size);
38+
uint8_t i = 0;
39+
40+
packet[i++] = 2; // Size
41+
packet[i++] = 0x01; // AD Type (Flags)
42+
packet[i++] = 0x06; // Flags
43+
44+
packet[i++] = name_len + 1; // Size
45+
packet[i++] = 0x09; // AD Type (Complete Local Name)
46+
memcpy(&packet[i], name, name_len); // Device Name
47+
i += name_len;
48+
49+
packet[i++] = 3; // Size
50+
packet[i++] = 0x02; // AD Type (Incomplete Service UUID List)
51+
packet[i++] = 0x12; // Service UUID (Human Interface Device)
52+
packet[i++] = 0x18; // ...
53+
54+
packet[i++] = 2; // Size
55+
packet[i++] = 0x0A; // AD Type (Tx Power Level)
56+
packet[i++] = 0x00; // 0dBm
57+
58+
*_size = size;
59+
*_packet = packet;
60+
}
61+
62+
enum {
63+
_ConfigExtraStart = ConfigExtraStart,
64+
ConfigName,
65+
ConfigInfoSettings,
66+
ConfigCOUNT,
67+
};
68+
static void config_callback(void* _ctx, uint32_t index) {
69+
Ctx* ctx = _ctx;
70+
scene_manager_set_scene_state(ctx->scene_manager, SceneConfig, index);
71+
switch(index) {
72+
case ConfigName:
73+
scene_manager_next_scene(ctx->scene_manager, SceneNamefloodName);
74+
break;
75+
case ConfigInfoSettings:
76+
break;
77+
default:
78+
ctx->fallback_config_enter(ctx, index);
79+
break;
80+
}
81+
}
82+
static void extra_config(Ctx* ctx) {
83+
Payload* payload = &ctx->attack->payload;
84+
NamefloodCfg* cfg = &payload->cfg.nameflood;
85+
VariableItemList* list = ctx->variable_item_list;
86+
VariableItem* item;
87+
88+
item = variable_item_list_add(list, "Display Name", 0, NULL, NULL);
89+
variable_item_set_current_value_text(
90+
item, payload->mode == PayloadModeRandom ? "Random" : cfg->name);
91+
92+
variable_item_list_add(list, "See in phone BT settings", 0, NULL, NULL);
93+
94+
variable_item_list_set_enter_callback(list, config_callback, ctx);
95+
}
96+
97+
static uint8_t config_count(const Payload* payload) {
98+
UNUSED(payload);
99+
return ConfigCOUNT - ConfigExtraStart - 1;
100+
}
101+
102+
const Protocol protocol_nameflood = {
103+
.icon = &I_ble_spam,
104+
.get_name = get_name,
105+
.make_packet = make_packet,
106+
.extra_config = extra_config,
107+
.config_count = config_count,
108+
};
109+
110+
static void name_callback(void* _ctx) {
111+
Ctx* ctx = _ctx;
112+
Payload* payload = &ctx->attack->payload;
113+
payload->mode = PayloadModeValue;
114+
scene_manager_previous_scene(ctx->scene_manager);
115+
}
116+
void scene_nameflood_name_on_enter(void* _ctx) {
117+
Ctx* ctx = _ctx;
118+
Payload* payload = &ctx->attack->payload;
119+
NamefloodCfg* cfg = &payload->cfg.nameflood;
120+
TextInput* text_input = ctx->text_input;
121+
122+
text_input_set_header_text(text_input, "Press back for random");
123+
124+
text_input_set_result_callback(
125+
text_input, name_callback, ctx, cfg->name, sizeof(cfg->name), true);
126+
127+
text_input_set_minimum_length(text_input, 0);
128+
129+
view_dispatcher_switch_to_view(ctx->view_dispatcher, ViewTextInput);
130+
}
131+
bool scene_nameflood_name_on_event(void* _ctx, SceneManagerEvent event) {
132+
Ctx* ctx = _ctx;
133+
Payload* payload = &ctx->attack->payload;
134+
if(event.type == SceneManagerEventTypeBack) {
135+
payload->mode = PayloadModeRandom;
136+
}
137+
return false;
138+
}
139+
void scene_nameflood_name_on_exit(void* _ctx) {
140+
Ctx* ctx = _ctx;
141+
text_input_reset(ctx->text_input);
142+
}

ble_spam/protocols/nameflood.h

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#pragma once
2+
#include "_base.h"
3+
4+
// Hacked together by @Willy-JL
5+
6+
typedef struct {
7+
char name[20];
8+
} NamefloodCfg;
9+
10+
extern const Protocol protocol_nameflood;

ble_spam/protocols/nameflood_scenes.h

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ADD_SCENE(nameflood_name, NamefloodName)

spi_mem_manager/scenes/spi_mem_scene_about.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#include "../spi_mem_app_i.h"
22
#include "../lib/spi/spi_mem_chip.h"
33

4-
#define SPI_MEM_VERSION_APP "0.1.0"
4+
#define SPI_MEM_VERSION_APP FAP_VERSION
55
#define SPI_MEM_DEVELOPER "DrunkBatya"
66
#define SPI_MEM_GITHUB "https://github.com/flipperdevices/flipperzero-good-faps"
77
#define SPI_MEM_NAME "\e#\e! SPI Mem Manager \e!\n"

vgm_air_mouse/.catalog/CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
## 1.2
2+
- Migration to new BLE profile
13
## 1.1
24
- Description update
35
## 1.0

vgm_air_mouse/application.fam

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
App(
22
appid="vgm_air_mouse",
33
name="[VGM] Air Mouse",
4-
fap_version="1.1",
4+
fap_version="1.2",
55
fap_description="Turn Flipper Zero with the Video Game Module into an air mouse",
66
apptype=FlipperAppType.EXTERNAL,
77
entry_point="air_mouse_app",

0 commit comments

Comments
 (0)