Skip to content

Commit d024183

Browse files
committed
Update v3.6
- Ability to set time delay between group of repeated signals (by @gid9798) - Ability to set repeats up to x14 (was x9 max)
1 parent c558147 commit d024183

32 files changed

+4226
-4111
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
/.idea/.idea.subbrute.dir/.idea/workspace.xml
2+
3+
.DS_Store

LICENSE

+21-21
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
MIT License
2-
3-
Copyright (c) 2022 Der Skythe
4-
5-
Permission is hereby granted, free of charge, to any person obtaining a copy
6-
of this software and associated documentation files (the "Software"), to deal
7-
in the Software without restriction, including without limitation the rights
8-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9-
copies of the Software, and to permit persons to whom the Software is
10-
furnished to do so, subject to the following conditions:
11-
12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
14-
15-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
1+
MIT License
2+
3+
Copyright (c) 2022 Der Skythe
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

+76-76
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,76 @@
1-
# SubGHz Bruteforcer Plugin for Flipper Zero
2-
3-
SubGhz Bruteforcer from [Unleashed Firmware](https://github.com/DarkFlippers/unleashed-firmware)
4-
5-
### Disclaimer
6-
7-
This software is for experimental purposes only and is not meant for any illegal activity/purposes.
8-
We do not condone illegal activity and strongly encourage keeping transmissions to legal/valid uses allowed by law.
9-
10-
### Supported Protocols:
11-
12-
#### CAME
13-
14-
- CAME 12bit 303MHz
15-
- CAME 12bit 307MHz
16-
- CAME 12bit 315MHz
17-
- CAME 12bit 433MHz
18-
- CAME 12bit 868MHz
19-
20-
#### NICE
21-
22-
- NICE 12bit 433MHz
23-
- NICE 12bit 868MHz
24-
25-
#### Ansonic
26-
27-
- Ansonic 12bit 433.075MHz
28-
- Ansonic 12bit 433.920MHz
29-
- Ansonic 12bit 434.075MHz
30-
31-
#### Holtek
32-
33-
- Holtek HT12X 12bit FM 433.920MHz (TE: 204us)
34-
- Holtek HT12X 12bit AM 433.920MHz (TE: 433us)
35-
- Holtek HT12X 12bit AM 315MHz (TE: 433us)
36-
- Holtek HT12X 12bit AM 868MHz (TE: 433us)
37-
- Holtek HT12X 12bit AM 915MHz (TE: 433us)
38-
#### Chamberlain
39-
40-
- Chamberlain 9bit 300MHz
41-
- Chamberlain 9bit 315MHz
42-
- Chamberlain 9bit 390MHz
43-
- Chamberlain 9bit 433MHz
44-
- Chamberlain 8bit 300MHz
45-
- Chamberlain 8bit 315MHz
46-
- Chamberlain 8bit 390MHz
47-
- Chamberlain 7bit 300MHz
48-
- Chamberlain 7bit 315MHz
49-
- Chamberlain 7bit 390MHz
50-
51-
#### Linear
52-
53-
- Linear 10bit 300MHz
54-
- Linear 10bit 310MHz
55-
- Linear Delta 3 8bit 310MHz
56-
57-
#### UNILARM
58-
59-
- UNILARM 25bit 330MHz (TE: 209us) (only dip switch combinations, not full 25bit bruteforce)
60-
- UNILARM 25bit 433MHz (TE: 209us) (only dip switch combinations, not full 25bit bruteforce)
61-
62-
#### SMC5326
63-
64-
- SMC5326 25bit 330MHz (TE: 320us) (only dip switch combinations, not full 25bit bruteforce)
65-
- SMC5326 25bit 433MHz (TE: 320us) (only dip switch combinations, not full 25bit bruteforce)
66-
67-
#### PT2260
68-
69-
- PT2260 24bit 315MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce)
70-
- PT2260 24bit 330MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce)
71-
- PT2260 24bit 390MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce)
72-
- PT2260 24bit 433MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce)
73-
74-
#### Additional
75-
76-
- BF Existing dump works for most other static protocols supported by Flipper Zero
1+
# SubGHz Bruteforcer Plugin for Flipper Zero
2+
3+
SubGhz Bruteforcer from [Unleashed Firmware](https://github.com/DarkFlippers/unleashed-firmware)
4+
5+
### Disclaimer
6+
7+
This software is for experimental purposes only and is not meant for any illegal activity/purposes.
8+
We do not condone illegal activity and strongly encourage keeping transmissions to legal/valid uses allowed by law.
9+
10+
### Supported Protocols:
11+
12+
#### CAME
13+
14+
- CAME 12bit 303MHz
15+
- CAME 12bit 307MHz
16+
- CAME 12bit 315MHz
17+
- CAME 12bit 433MHz
18+
- CAME 12bit 868MHz
19+
20+
#### NICE
21+
22+
- NICE 12bit 433MHz
23+
- NICE 12bit 868MHz
24+
25+
#### Ansonic
26+
27+
- Ansonic 12bit 433.075MHz
28+
- Ansonic 12bit 433.920MHz
29+
- Ansonic 12bit 434.075MHz
30+
31+
#### Holtek
32+
33+
- Holtek HT12X 12bit FM 433.920MHz (TE: 204us)
34+
- Holtek HT12X 12bit AM 433.920MHz (TE: 433us)
35+
- Holtek HT12X 12bit AM 315MHz (TE: 433us)
36+
- Holtek HT12X 12bit AM 868MHz (TE: 433us)
37+
- Holtek HT12X 12bit AM 915MHz (TE: 433us)
38+
#### Chamberlain
39+
40+
- Chamberlain 9bit 300MHz
41+
- Chamberlain 9bit 315MHz
42+
- Chamberlain 9bit 390MHz
43+
- Chamberlain 9bit 433MHz
44+
- Chamberlain 8bit 300MHz
45+
- Chamberlain 8bit 315MHz
46+
- Chamberlain 8bit 390MHz
47+
- Chamberlain 7bit 300MHz
48+
- Chamberlain 7bit 315MHz
49+
- Chamberlain 7bit 390MHz
50+
51+
#### Linear
52+
53+
- Linear 10bit 300MHz
54+
- Linear 10bit 310MHz
55+
- Linear Delta 3 8bit 310MHz
56+
57+
#### UNILARM
58+
59+
- UNILARM 25bit 330MHz (TE: 209us) (only dip switch combinations, not full 25bit bruteforce)
60+
- UNILARM 25bit 433MHz (TE: 209us) (only dip switch combinations, not full 25bit bruteforce)
61+
62+
#### SMC5326
63+
64+
- SMC5326 25bit 330MHz (TE: 320us) (only dip switch combinations, not full 25bit bruteforce)
65+
- SMC5326 25bit 433MHz (TE: 320us) (only dip switch combinations, not full 25bit bruteforce)
66+
67+
#### PT2260
68+
69+
- PT2260 24bit 315MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce)
70+
- PT2260 24bit 330MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce)
71+
- PT2260 24bit 390MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce)
72+
- PT2260 24bit 433MHz (TE: 286us) (only for 8 dip switch remote, not full 24bit bruteforce)
73+
74+
#### Additional
75+
76+
- BF Existing dump works for most other static protocols supported by Flipper Zero

application.fam

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
App(
2-
appid="subghz_bruteforcer",
3-
name="Sub-GHz Bruteforcer",
4-
apptype=FlipperAppType.EXTERNAL,
5-
entry_point="subbrute_app",
6-
requires=["gui","dialogs"],
7-
stack_size=2 * 1024,
8-
order=11,
9-
fap_icon="images/subbrute_10px.png",
10-
fap_category="Sub-GHz",
11-
fap_icon_assets="images",
12-
)
1+
App(
2+
appid="subghz_bruteforcer",
3+
name="Sub-GHz Bruteforcer",
4+
apptype=FlipperAppType.EXTERNAL,
5+
entry_point="subbrute_app",
6+
requires=["gui","dialogs"],
7+
stack_size=2 * 1024,
8+
order=11,
9+
fap_icon="images/subbrute_10px.png",
10+
fap_category="Sub-GHz",
11+
fap_icon_assets="images",
12+
)

helpers/gui_top_buttons.c

+58-58
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,59 @@
1-
#include "gui_top_buttons.h"
2-
3-
void elements_button_top_left(Canvas* canvas, const char* str) {
4-
const Icon* icon = &I_ButtonUp_7x4;
5-
6-
const uint8_t button_height = 12;
7-
const uint8_t vertical_offset = 3;
8-
const uint8_t horizontal_offset = 3;
9-
const uint8_t string_width = canvas_string_width(canvas, str);
10-
const uint8_t icon_h_offset = 3;
11-
const uint8_t icon_width_with_offset = icon_get_width(icon) + icon_h_offset;
12-
const uint8_t icon_v_offset = icon_get_height(icon) + vertical_offset;
13-
const uint8_t button_width = string_width + horizontal_offset * 2 + icon_width_with_offset;
14-
15-
const uint8_t x = 0;
16-
const uint8_t y = 0 + button_height;
17-
18-
uint8_t line_x = x + button_width;
19-
uint8_t line_y = y - button_height;
20-
canvas_draw_box(canvas, x, line_y, button_width, button_height);
21-
canvas_draw_line(canvas, line_x + 0, line_y, line_x + 0, y - 1);
22-
canvas_draw_line(canvas, line_x + 1, line_y, line_x + 1, y - 2);
23-
canvas_draw_line(canvas, line_x + 2, line_y, line_x + 2, y - 3);
24-
25-
canvas_invert_color(canvas);
26-
canvas_draw_icon(canvas, x + horizontal_offset, y - icon_v_offset, icon);
27-
canvas_draw_str(
28-
canvas, x + horizontal_offset + icon_width_with_offset, y - vertical_offset, str);
29-
canvas_invert_color(canvas);
30-
}
31-
32-
void elements_button_top_right(Canvas* canvas, const char* str) {
33-
const Icon* icon = &I_ButtonDown_7x4;
34-
35-
const uint8_t button_height = 12;
36-
const uint8_t vertical_offset = 3;
37-
const uint8_t horizontal_offset = 3;
38-
const uint8_t string_width = canvas_string_width(canvas, str);
39-
const uint8_t icon_h_offset = 3;
40-
const uint8_t icon_width_with_offset = icon_get_width(icon) + icon_h_offset;
41-
const uint8_t icon_v_offset = icon_get_height(icon) + vertical_offset + 1;
42-
const uint8_t button_width = string_width + horizontal_offset * 2 + icon_width_with_offset;
43-
44-
const uint8_t x = canvas_width(canvas);
45-
const uint8_t y = 0 + button_height;
46-
47-
uint8_t line_x = x - button_width;
48-
uint8_t line_y = y - button_height;
49-
canvas_draw_box(canvas, line_x, line_y, button_width, button_height);
50-
canvas_draw_line(canvas, line_x - 1, line_y, line_x - 1, y - 1);
51-
canvas_draw_line(canvas, line_x - 2, line_y, line_x - 2, y - 2);
52-
canvas_draw_line(canvas, line_x - 3, line_y, line_x - 3, y - 3);
53-
54-
canvas_invert_color(canvas);
55-
canvas_draw_str(canvas, x - button_width + horizontal_offset, y - vertical_offset, str);
56-
canvas_draw_icon(
57-
canvas, x - horizontal_offset - icon_get_width(icon), y - icon_v_offset, icon);
58-
canvas_invert_color(canvas);
1+
#include "gui_top_buttons.h"
2+
3+
void elements_button_top_left(Canvas* canvas, const char* str) {
4+
const Icon* icon = &I_ButtonUp_7x4;
5+
6+
const uint8_t button_height = 12;
7+
const uint8_t vertical_offset = 3;
8+
const uint8_t horizontal_offset = 3;
9+
const uint8_t string_width = canvas_string_width(canvas, str);
10+
const uint8_t icon_h_offset = 3;
11+
const uint8_t icon_width_with_offset = icon_get_width(icon) + icon_h_offset;
12+
const uint8_t icon_v_offset = icon_get_height(icon) + vertical_offset;
13+
const uint8_t button_width = string_width + horizontal_offset * 2 + icon_width_with_offset;
14+
15+
const uint8_t x = 0;
16+
const uint8_t y = 0 + button_height;
17+
18+
uint8_t line_x = x + button_width;
19+
uint8_t line_y = y - button_height;
20+
canvas_draw_box(canvas, x, line_y, button_width, button_height);
21+
canvas_draw_line(canvas, line_x + 0, line_y, line_x + 0, y - 1);
22+
canvas_draw_line(canvas, line_x + 1, line_y, line_x + 1, y - 2);
23+
canvas_draw_line(canvas, line_x + 2, line_y, line_x + 2, y - 3);
24+
25+
canvas_invert_color(canvas);
26+
canvas_draw_icon(canvas, x + horizontal_offset, y - icon_v_offset, icon);
27+
canvas_draw_str(
28+
canvas, x + horizontal_offset + icon_width_with_offset, y - vertical_offset, str);
29+
canvas_invert_color(canvas);
30+
}
31+
32+
void elements_button_top_right(Canvas* canvas, const char* str) {
33+
const Icon* icon = &I_ButtonDown_7x4;
34+
35+
const uint8_t button_height = 12;
36+
const uint8_t vertical_offset = 3;
37+
const uint8_t horizontal_offset = 3;
38+
const uint8_t string_width = canvas_string_width(canvas, str);
39+
const uint8_t icon_h_offset = 3;
40+
const uint8_t icon_width_with_offset = icon_get_width(icon) + icon_h_offset;
41+
const uint8_t icon_v_offset = icon_get_height(icon) + vertical_offset + 1;
42+
const uint8_t button_width = string_width + horizontal_offset * 2 + icon_width_with_offset;
43+
44+
const uint8_t x = canvas_width(canvas);
45+
const uint8_t y = 0 + button_height;
46+
47+
uint8_t line_x = x - button_width;
48+
uint8_t line_y = y - button_height;
49+
canvas_draw_box(canvas, line_x, line_y, button_width, button_height);
50+
canvas_draw_line(canvas, line_x - 1, line_y, line_x - 1, y - 1);
51+
canvas_draw_line(canvas, line_x - 2, line_y, line_x - 2, y - 2);
52+
canvas_draw_line(canvas, line_x - 3, line_y, line_x - 3, y - 3);
53+
54+
canvas_invert_color(canvas);
55+
canvas_draw_str(canvas, x - button_width + horizontal_offset, y - vertical_offset, str);
56+
canvas_draw_icon(
57+
canvas, x - horizontal_offset - icon_get_width(icon), y - icon_v_offset, icon);
58+
canvas_invert_color(canvas);
5959
}

helpers/gui_top_buttons.h

+20-20
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
#pragma once
2-
3-
#include <input/input.h>
4-
#include <gui/elements.h>
5-
#include <gui/icon.h>
6-
#include <gui/icon_animation.h>
7-
#include <assets_icons.h>
8-
9-
/**
10-
* Thanks to the author of metronome
11-
* @param canvas
12-
* @param str
13-
*/
14-
void elements_button_top_left(Canvas* canvas, const char* str);
15-
16-
/**
17-
* Thanks to the author of metronome
18-
* @param canvas
19-
* @param str
20-
*/
1+
#pragma once
2+
3+
#include <input/input.h>
4+
#include <gui/elements.h>
5+
#include <gui/icon.h>
6+
#include <gui/icon_animation.h>
7+
#include <assets_icons.h>
8+
9+
/**
10+
* Thanks to the author of metronome
11+
* @param canvas
12+
* @param str
13+
*/
14+
void elements_button_top_left(Canvas* canvas, const char* str);
15+
16+
/**
17+
* Thanks to the author of metronome
18+
* @param canvas
19+
* @param str
20+
*/
2121
void elements_button_top_right(Canvas* canvas, const char* str);

0 commit comments

Comments
 (0)