Skip to content

Commit a2e9627

Browse files
authored
Merge branch 'BruceDevices:main' into main
2 parents 420dddf + 04bee02 commit a2e9627

275 files changed

Lines changed: 25210 additions & 5395 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dockerignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
.pio/
2+
.platformio/
3+
.git/
4+
.vscode/
5+
__pycache__/
6+
*.pyc
7+
mqjs_build/
8+
Bruce-*.bin

.github/workflows/PR_All_envs.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,20 @@ jobs:
2727
- { env: "m5stack-cores3", family: "ESP32-S3",}
2828
- { env: "esp32-s3-devkitc-1", family: "ESP32-S3",}
2929
- { env: "esp32-c5", family: "ESP32-C5",}
30+
- { env: "esp32-c5-tft", family: "ESP32-C5",}
3031
- { env: "CYD-2432S028", family: "ESP32",}
3132
- { env: "CYD-2USB", family: "ESP32",}
3233
- { env: "CYD-2432W328C", family: "ESP32",}
3334
- { env: "CYD-2432W328C_2", family: "ESP32",}
3435
- { env: "CYD-2432W328R-or-S024R", family: "ESP32",}
36+
- { env: "CYD-3248S035R", family: "ESP32",}
37+
- { env: "CYD-3248S035C", family: "ESP32",}
3538
- { env: "LAUNCHER_CYD-2432W328R-or-S024R", family: "ESP32",}
3639
- { env: "LAUNCHER_CYD-2432S028", family: "ESP32",}
3740
- { env: "LAUNCHER_CYD-2USB", family: "ESP32",}
3841
- { env: "LAUNCHER_CYD-2432W328C", family: "ESP32",}
42+
- { env: "LAUNCHER_CYD-3248S035R", family: "ESP32",}
43+
- { env: "LAUNCHER_CYD-3248S035C", family: "ESP32",}
3944
- { env: "lilygo-t-embed-cc1101", family: "ESP32-S3",}
4045
- { env: "lilygo-t-embed", family: "ESP32-S3",}
4146
- { env: "lilygo-t-deck", family: "ESP32-S3",}
@@ -75,6 +80,11 @@ jobs:
7580
with:
7681
python-version: "3.13"
7782

83+
- name: Install build deps (multilib)
84+
run: |
85+
sudo apt-get update
86+
sudo apt-get install -y --no-install-recommends gcc-multilib libc6-dev-i386
87+
7888
# - name: Cache pip
7989
# uses: actions/cache@v4
8090
# with:

.github/workflows/PR_check.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ name: Build and Push OR check-PR
44
on:
55
pull_request:
66
branches:
7-
- main
7+
- main, dev
88
workflow_dispatch:
99
inputs:
1010
board:
@@ -61,6 +61,11 @@ jobs:
6161
with:
6262
python-version: "3.13"
6363

64+
- name: Install build deps (multilib)
65+
run: |
66+
sudo apt-get update
67+
sudo apt-get install -y --no-install-recommends gcc-multilib libc6-dev-i386
68+
6469
# - name: Cache pip
6570
# uses: actions/cache@v4
6671
# with:

.github/workflows/buil_parallel.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
matrix:
1919
board:
2020
- { env: "m5stack-cardputer", family: "ESP32-S3",}
21+
- { env: "m5stack-sticks3", family: "ESP32-S3",}
2122
- { env: "m5stack-cplus2", family: "ESP32",}
2223
- { env: "m5stack-cplus1_1", family: "ESP32",}
2324
- { env: "LAUNCHER_m5stack-cplus1_1", family: "ESP32",}
@@ -33,10 +34,14 @@ jobs:
3334
- { env: "CYD-2432W328C", family: "ESP32",}
3435
- { env: "CYD-2432W328C_2", family: "ESP32",}
3536
- { env: "CYD-2432W328R-or-S024R", family: "ESP32",}
37+
- { env: "CYD-3248S035R", family: "ESP32",}
38+
- { env: "CYD-3248S035C", family: "ESP32",}
3639
- { env: "LAUNCHER_CYD-2432W328R-or-S024R", family: "ESP32",}
3740
- { env: "LAUNCHER_CYD-2432S028", family: "ESP32",}
3841
- { env: "LAUNCHER_CYD-2USB", family: "ESP32",}
3942
- { env: "LAUNCHER_CYD-2432W328C", family: "ESP32",}
43+
- { env: "LAUNCHER_CYD-3248S035R", family: "ESP32",}
44+
# - { env: "LAUNCHER_CYD-3248S035C", family: "ESP32",}
4045
- { env: "lilygo-t-embed-cc1101", family: "ESP32-S3",}
4146
- { env: "lilygo-t-embed", family: "ESP32-S3",}
4247
- { env: "lilygo-t-deck", family: "ESP32-S3",}
@@ -51,6 +56,7 @@ jobs:
5156
- { env: "lilygo-t-hmi", family: "ESP32-S3",}
5257
- { env: "lilygo-t-lora-pager", family: "ESP32-S3",}
5358
- { env: "smoochiee-board", family: "ESP32-S3",}
59+
- { env: "reaper", family: "ESP32-S3",}
5460
- { env: "Phantom_S024R", family: "ESP32",}
5561
- { env: "LAUNCHER_Phantom_S024R", family: "ESP32",}
5662
- { env: "Marauder-Mini", family: "ESP32",}
@@ -75,6 +81,11 @@ jobs:
7581
with:
7682
python-version: "3.13"
7783

84+
- name: Install build deps (multilib)
85+
run: |
86+
sudo apt-get update
87+
sudo apt-get install -y --no-install-recommends gcc-multilib libc6-dev-i386
88+
7889
- name: Cache pip
7990
uses: actions/cache@v4
8091
with:
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
name: Manual Build (Select Environment)
2+
# All credits to Ninja-Jr @ninjajr
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
target_branch:
7+
description: 'Branch to build from'
8+
required: true
9+
default: 'main'
10+
type: string
11+
environment:
12+
description: 'Select environment to build'
13+
required: true
14+
default: 'lilygo-t-embed-cc1101'
15+
type: choice
16+
options:
17+
- "m5stack-cardputer"
18+
- "m5stack-cplus2"
19+
- "m5stack-cplus1_1"
20+
- "LAUNCHER_m5stack-cplus1_1"
21+
- "m5stack-core2"
22+
- "m5stack-core16mb"
23+
- "m5stack-core4mb"
24+
- "m5stack-cores3"
25+
- "esp32-s3-devkitc-1"
26+
- "esp32-c5"
27+
- "esp32-c5-tft"
28+
- "CYD-2432S028"
29+
- "CYD-2USB"
30+
- "CYD-2432W328C"
31+
- "CYD-2432W328C_2"
32+
- "CYD-2432W328R-or-S024R"
33+
- "CYD-3248S035R"
34+
- "CYD-3248S035C"
35+
- "LAUNCHER_CYD-2432W328R-or-S024R"
36+
- "LAUNCHER_CYD-2432S028"
37+
- "LAUNCHER_CYD-2USB"
38+
- "LAUNCHER_CYD-2432W328C"
39+
- "LAUNCHER_CYD-3248S035R"
40+
- "LAUNCHER_CYD-3248S035C"
41+
- "lilygo-t-embed-cc1101"
42+
- "lilygo-t-embed"
43+
- "lilygo-t-deck"
44+
- "lilygo-t-watch-s3"
45+
- "lilygo-t-deck-pro"
46+
- "lilygo-t-display-s3"
47+
- "lilygo-t-display-s3-touch"
48+
- "lilygo-t-display-s3-mmc"
49+
- "lilygo-t-display-s3-touch-mmc"
50+
- "lilygo-t-display-s3-pro"
51+
- "lilygo-t-display-ttgo"
52+
- "lilygo-t-hmi"
53+
- "lilygo-t-lora-pager"
54+
- "smoochiee-board"
55+
- "Phantom_S024R"
56+
- "LAUNCHER_Phantom_S024R"
57+
- "Marauder-Mini"
58+
- "LAUNCHER_Marauder-Mini"
59+
- "Awok-Mini"
60+
- "Marauder-v7"
61+
- "LAUNCHER_Marauder-v7"
62+
- "Marauder-V4-V6"
63+
- "Marauder-v61"
64+
- "LAUNCHER_Marauder-V4-V6"
65+
- "LAUNCHER_Marauder-v61"
66+
- "Awok-Touch"
67+
- "WaveSentry-R1"
68+
- "LAUNCHER_WaveSentry-R1"
69+
70+
jobs:
71+
compile_selected:
72+
name: Build ${{ github.event.inputs.environment }}
73+
runs-on: ubuntu-latest
74+
env:
75+
SELECTED_ENV: ${{ github.event.inputs.environment }}
76+
77+
steps:
78+
- name: Checkout repository
79+
uses: actions/checkout@v4
80+
with:
81+
ref: ${{ github.event.inputs.target_branch }}
82+
83+
- name: Setup Python
84+
uses: actions/setup-python@v5
85+
with:
86+
python-version: "3.13"
87+
88+
- name: Cache pip
89+
uses: actions/cache@v4
90+
with:
91+
path: ~/.cache/pip
92+
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}
93+
restore-keys: |
94+
${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}
95+
${{ runner.os }}-pip-
96+
97+
- name: Cache PlatformIO Framework
98+
uses: actions/cache@v4
99+
with:
100+
path: ~/.platformio
101+
key: ${{ runner.os }}-platformio-${{ hashFiles('platformio.ini') }}
102+
restore-keys: |
103+
${{ runner.os }}-platformio-${{ hashFiles('platformio.ini') }}
104+
${{ runner.os }}-platformio-
105+
106+
- name: PIO libraries cache
107+
uses: actions/cache@v4
108+
with:
109+
path: .pio/libdeps
110+
key: ${{ runner.os }}-pio-${{ env.SELECTED_ENV }}-${{ hashFiles('platformio.ini') }}
111+
restore-keys: |
112+
${{ runner.os }}-pio-${{ env.SELECTED_ENV }}-${{ hashFiles('platformio.ini') }}
113+
${{ runner.os }}-pio-${{ env.SELECTED_ENV }}-
114+
115+
- name: Install dependencies
116+
run: |
117+
pip install requests esptool intelhex
118+
pip install platformio
119+
120+
- name: Prepare PlatformIO file (Bruce version logic)
121+
id: prepare_version
122+
run: |
123+
echo "Preparing PlatformIO configuration..."
124+
125+
# Manual builds always use commit SHA (simple and logical)
126+
version="${GITHUB_SHA::7}"
127+
echo "Using commit SHA: $version"
128+
129+
echo "VERSION=$version" >> $GITHUB_OUTPUT
130+
131+
# Apply version to platformio.ini (upstream method)
132+
sed -i "s/-DBRUCE_VERSION=/-DBRUCE_VERSION='\"$version\"' ; /g" ./platformio.ini
133+
sed -i "s/-DGIT_COMMIT_HASH='\"Homebrew\"'/!echo '-DGIT_COMMIT_HASH=\\\\\"'\$(git describe --always --dirty)'\\\\\"'/g" ./platformio.ini
134+
135+
- name: Run Compile
136+
run: |
137+
set -o pipefail
138+
echo "Building environment: ${{ env.SELECTED_ENV }}"
139+
platformio run -e "${{ env.SELECTED_ENV }}" | tee "build-${{ env.SELECTED_ENV }}.log"
140+
141+
- name: Build summary
142+
run: |
143+
if [[ -f "build-${{ env.SELECTED_ENV }}.log" ]]; then
144+
echo "Last 75 lines of build-${{ env.SELECTED_ENV }}.log:"
145+
tail -n 75 "build-${{ env.SELECTED_ENV }}.log"
146+
else
147+
echo "Build log not found; nothing to show."
148+
fi
149+
150+
- name: Upload Artifacts
151+
uses: actions/upload-artifact@v4
152+
with:
153+
name: Bruce-${{ env.SELECTED_ENV }}
154+
path: Bruce-*.*
155+
retention-days: 1
156+
if-no-files-found: error
157+
158+
- name: Display Build Info
159+
run: |
160+
echo "Build completed successfully!"
161+
echo "Environment: ${{ env.SELECTED_ENV }}"
162+
echo "Version: ${{ steps.prepare_version.outputs.VERSION }}"
163+
echo "Git Hash: $(git describe --always --dirty)"
164+
echo "Built files:"
165+
ls -la Bruce-*.* 2>/dev/null || echo "No Bruce files found"

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,7 @@ include/current_year.h
1414
checksum.sha256
1515
/*.bin
1616
.vscode/extensions.json
17+
mqjs_build
18+
docker-logs
19+
lib/mquickjs_headers/mqjs_stdlib_generator
20+
lib/mquickjs_headers/mqjs_stdlib_generator.exe

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# :shark: Bruce
44

5-
Bruce is meant to be a versatile ESP32 firmware that supports a ton of offensive features focusing on facilitating Red Team operations.
5+
Bruce is a versatile ESP32 firmware that supports a ton of offensive features focusing on facilitating Red Team operations.
66
It also supports M5stack and Lilygo products and works great with Cardputer, Sticks, M5Cores, T-Decks and T-Embeds.
77

88
**Check our fully open-source hardware too:** https://bruce.computer/boards
@@ -230,6 +230,7 @@ Also, [read our FAQ](https://github.com/pr3y/Bruce/wiki/FAQ)
230230
| [Lilygo T-LoRa Pager](https://lilygo.cc/products/t-lora-pager) | :x: | :x: | :x: | :x: | :x: | :ok: | :x: | :x: | :x: | :x: |
231231
| [Smoochiee V2](https://www.pcbway.com/project/shareproject/Bruce_PCB_Smoochiee_d6a0284b.html) | :ok: | :ok: | :x: | :ok: | :x: | :ok: | :x: | :x: | :x: | :x: |
232232
| [ESP32-C5](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html) | :ok: | :ok: | :x: | :ok: | :x: | :x: | :x: | :x: | :x: | :x: |
233+
| [Bruce RF Reaper](https://www.elecrow.com/bruce-pcb-rf-reaper.html) | :ok: | :ok: | :x: | :x: but w/ ST25R3916 | :x: | :ok: | :ok: | :x: | :ok: | :x: |
233234

234235
² CYD have a LITE_VERSION version for Launcher Compatibility
235236
¹ Core, CYD and StickCs Bad-USB: [here](https://github.com/pr3y/Bruce/wiki/Others#badusb)

0 commit comments

Comments
 (0)