mirror of
https://github.com/justcallmekoko/ESP32Marauder.git
synced 2026-01-26 03:05:00 -08:00
Compare commits
50 Commits
nightly_a2
...
nightly_4f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4fb65cd186 | ||
|
|
419dd434e5 | ||
|
|
44f51d2f70 | ||
|
|
c4c652741e | ||
|
|
4ec9d50562 | ||
|
|
014cae1cb0 | ||
|
|
832e99cccd | ||
|
|
1648effcb2 | ||
|
|
a1b02691d0 | ||
|
|
85c4802322 | ||
|
|
4ea8a44931 | ||
|
|
f82b6c5ce3 | ||
|
|
a54a311995 | ||
|
|
e689858891 | ||
|
|
ebcfc9392e | ||
|
|
9173785218 | ||
|
|
64f6b4c582 | ||
|
|
6d2d1d7a0d | ||
|
|
467c58fef3 | ||
|
|
52eea5f4f7 | ||
|
|
2430db99b3 | ||
|
|
1ed63e3386 | ||
|
|
0196c00220 | ||
|
|
6456527f5f | ||
|
|
e7e8fc7d80 | ||
|
|
5fdf09c8fa | ||
|
|
af9938f8eb | ||
|
|
14e18a12bf | ||
|
|
0ba3d0f60a | ||
|
|
d94a059b81 | ||
|
|
140668448f | ||
|
|
18e582b9a9 | ||
|
|
961bcb6cf5 | ||
|
|
2fa969552a | ||
|
|
e4528d9dea | ||
|
|
774d5f0707 | ||
|
|
bab011e618 | ||
|
|
07a684a03e | ||
|
|
cbb2d33f24 | ||
|
|
3bb45c1ff3 | ||
|
|
e3fe40ede0 | ||
|
|
b09be1c093 | ||
|
|
8e0ed07483 | ||
|
|
0ff6411407 | ||
|
|
249ba6eabe | ||
|
|
7a19fcb458 | ||
|
|
88762063ff | ||
|
|
26370241ee | ||
|
|
9d2a1ab3aa | ||
|
|
6a360b236c |
19
.github/workflows/build_parallel.yml
vendored
19
.github/workflows/build_parallel.yml
vendored
@@ -19,24 +19,23 @@ jobs:
|
||||
board:
|
||||
- { name: "Flipper Zero WiFi Dev Board", flag: "MARAUDER_FLIPPER", fbqn: "esp32:esp32:esp32s2:PartitionScheme=min_spiffs,FlashSize=4M,PSRAM=enabled", file_name: "flipper", tft: false, tft_file: "", build_dir: "esp32s2", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Flipper Zero Multi Board S3", flag: "MARAUDER_MULTIBOARD_S3", fbqn: "esp32:esp32:esp32s3:PartitionScheme=min_spiffs,FlashSize=4M", file_name: "multiboardS3", tft: false, tft_file: "", build_dir: "esp32s3", addr: "0x0", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "OG Marauder", flag: "MARAUDER_V4", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "old_hardware", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v6", flag: "MARAUDER_V6", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "v6", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v6.1", flag: "MARAUDER_V6_1", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "v6_1", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder Kit", flag: "MARAUDER_KIT", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "kit", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder Mini", flag: "MARAUDER_MINI", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "mini", tft: true, tft_file: "User_Setup_marauder_mini.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "ESP32 LDDB", flag: "ESP32_LDDB", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "esp32_lddb", tft: false, tft_file: "", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder Dev Board Pro", flag: "MARAUDER_DEV_BOARD_PRO", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "marauder_dev_board_pro", tft: false, tft_file: "", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "OG Marauder", flag: "MARAUDER_V4", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "old_hardware", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v6", flag: "MARAUDER_V6", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "v6", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v6.1", flag: "MARAUDER_V6_1", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "v6_1", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder Kit", flag: "MARAUDER_KIT", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "kit", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder Mini", flag: "MARAUDER_MINI", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "mini", tft: true, tft_file: "User_Setup_marauder_mini.h", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "ESP32 LDDB", flag: "ESP32_LDDB", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "esp32_lddb", tft: false, tft_file: "", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder Dev Board Pro", flag: "MARAUDER_DEV_BOARD_PRO", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "marauder_dev_board_pro", tft: false, tft_file: "", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "M5StickCPlus", flag: "MARAUDER_M5STICKC", fbqn: "esp32:esp32:m5stick-c:PartitionScheme=min_spiffs", file_name: "m5stickc_plus", tft: true, tft_file: "User_Setup_marauder_m5stickc.h", build_dir: "m5stick-c", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "M5StickCPlus 2", flag: "MARAUDER_M5STICKCP2", fbqn: "esp32:esp32:m5stick-c:PartitionScheme=min_spiffs", file_name: "m5stickc_plus2", tft: true, tft_file: "User_Setup_marauder_m5stickcp2.h", build_dir: "m5stick-c", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Rev Feather", flag: "MARAUDER_REV_FEATHER", fbqn: "esp32:esp32:esp32s2:PartitionScheme=min_spiffs,FlashSize=4M,PSRAM=enabled", file_name: "rev_feather", tft: true, tft_file: "User_Setup_marauder_rev_feather.h", build_dir: "esp32s2", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v7", flag: "MARAUDER_V7", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "marauder_v7", tft: true, tft_file: "User_Setup_dual_nrf24.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v7", flag: "MARAUDER_V7", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "marauder_v7", tft: true, tft_file: "User_Setup_dual_nrf24.h", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder CYD 2432S028", flag: "MARAUDER_CYD_MICRO", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "cyd_2432S028", tft: true, tft_file: "User_Setup_cyd_micro.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder CYD 2432S024 GUITION", flag: "MARAUDER_CYD_GUITION", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "cyd_2432S024_guition", tft: true, tft_file: "User_Setup_cyd_guition.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder CYD 2432S028 2 USB", flag: "MARAUDER_CYD_2USB", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "cyd_2432S028_2usb", tft: true, tft_file: "User_Setup_cyd_2usb.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder CYD 3.5inch", flag: "MARAUDER_CYD_3_5_INCH", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "cyd_3_5_inch", tft: true, tft_file: "User_Setup_cyd_3_5_inch.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v7.1", flag: "MARAUDER_V7_1", fbqn: "esp32:esp32:dfrobot_firebeetle2_esp32e:FlashSize=16M,PartitionScheme=min_spiffs,PSRAM=enabled", file_name: "marauder_v7_1", tft: true, tft_file: "User_Setup_dual_nrf24.h", build_dir: "dfrobot_firebeetle2_esp32e", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "M5Cardputer", flag: "MARAUDER_CARDPUTER", fbqn: "esp32:esp32:esp32s3:PartitionScheme=min_spiffs,FlashSize=8M,PSRAM=disabled", file_name: "m5cardputer", tft: true, tft_file: "User_Setup_marauder_m5cardputer.h", build_dir: "esp32s3", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "ESP32-C5-DevKitC-1", flag: "MARAUDER_C5", fbqn: "esp32:esp32:esp32c5:FlashSize=8M,PartitionScheme=min_spiffs,PSRAM=enabled", file_name: "esp32c5devkitc1", tft: false, tft_file: "", build_dir: "esp32c5", addr: "0x2000", idf_ver: "3.3.4", nimble_ver: "2.3.6", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "ESP32-C5-DevKitC-1", flag: "MARAUDER_C5", fbqn: "esp32:esp32:esp32c5:FlashSize=8M,PartitionScheme=min_spiffs,PSRAM=enabled", file_name: "esp32c5devkitc1", tft: false, tft_file: "", build_dir: "esp32c5", addr: "0x2000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
|
||||
19
.github/workflows/nightly_build.yml
vendored
19
.github/workflows/nightly_build.yml
vendored
@@ -68,24 +68,23 @@ jobs:
|
||||
board:
|
||||
- { name: "Flipper Zero WiFi Dev Board", flag: "MARAUDER_FLIPPER", fbqn: "esp32:esp32:esp32s2:PartitionScheme=min_spiffs,FlashSize=4M,PSRAM=enabled", file_name: "flipper", tft: false, tft_file: "", build_dir: "esp32s2", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Flipper Zero Multi Board S3", flag: "MARAUDER_MULTIBOARD_S3", fbqn: "esp32:esp32:esp32s3:PartitionScheme=min_spiffs,FlashSize=4M", file_name: "multiboardS3", tft: false, tft_file: "", build_dir: "esp32s3", addr: "0x0", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "OG Marauder", flag: "MARAUDER_V4", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "old_hardware", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v6", flag: "MARAUDER_V6", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "v6", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v6.1", flag: "MARAUDER_V6_1", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "v6_1", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder Kit", flag: "MARAUDER_KIT", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "kit", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder Mini", flag: "MARAUDER_MINI", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "mini", tft: true, tft_file: "User_Setup_marauder_mini.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "ESP32 LDDB", flag: "ESP32_LDDB", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "esp32_lddb", tft: false, tft_file: "", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder Dev Board Pro", flag: "MARAUDER_DEV_BOARD_PRO", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "marauder_dev_board_pro", tft: false, tft_file: "", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "OG Marauder", flag: "MARAUDER_V4", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "old_hardware", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v6", flag: "MARAUDER_V6", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "v6", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v6.1", flag: "MARAUDER_V6_1", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "v6_1", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder Kit", flag: "MARAUDER_KIT", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "kit", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder Mini", flag: "MARAUDER_MINI", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "mini", tft: true, tft_file: "User_Setup_marauder_mini.h", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "ESP32 LDDB", flag: "ESP32_LDDB", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "esp32_lddb", tft: false, tft_file: "", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder Dev Board Pro", flag: "MARAUDER_DEV_BOARD_PRO", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "marauder_dev_board_pro", tft: false, tft_file: "", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "M5StickCPlus", flag: "MARAUDER_M5STICKC", fbqn: "esp32:esp32:m5stick-c:PartitionScheme=min_spiffs", file_name: "m5stickc_plus", tft: true, tft_file: "User_Setup_marauder_m5stickc.h", build_dir: "m5stick-c", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "M5StickCPlus 2", flag: "MARAUDER_M5STICKCP2", fbqn: "esp32:esp32:m5stick-c:PartitionScheme=min_spiffs", file_name: "m5stickc_plus2", tft: true, tft_file: "User_Setup_marauder_m5stickcp2.h", build_dir: "m5stick-c", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Rev Feather", flag: "MARAUDER_REV_FEATHER", fbqn: "esp32:esp32:esp32s2:PartitionScheme=min_spiffs,FlashSize=4M,PSRAM=enabled", file_name: "rev_feather", tft: true, tft_file: "User_Setup_marauder_rev_feather.h", build_dir: "esp32s2", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v7", flag: "MARAUDER_V7", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "marauder_v7", tft: true, tft_file: "User_Setup_dual_nrf24.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v7", flag: "MARAUDER_V7", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "marauder_v7", tft: true, tft_file: "User_Setup_dual_nrf24.h", build_dir: "d32", addr: "0x1000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder CYD 2432S028", flag: "MARAUDER_CYD_MICRO", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "cyd_2432S028", tft: true, tft_file: "User_Setup_cyd_micro.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder CYD 2432S024 GUITION", flag: "MARAUDER_CYD_GUITION", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "cyd_2432S024_guition", tft: true, tft_file: "User_Setup_cyd_guition.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder CYD 2432S028 2 USB", flag: "MARAUDER_CYD_2USB", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "cyd_2432S028_2usb", tft: true, tft_file: "User_Setup_cyd_2usb.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder CYD 3.5inch", flag: "MARAUDER_CYD_3_5_INCH", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "cyd_3_5_inch", tft: true, tft_file: "User_Setup_cyd_3_5_inch.h", build_dir: "d32", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "Marauder v7.1", flag: "MARAUDER_V7_1", fbqn: "esp32:esp32:dfrobot_firebeetle2_esp32e:FlashSize=16M,PartitionScheme=min_spiffs,PSRAM=enabled", file_name: "marauder_v7_1", tft: true, tft_file: "User_Setup_dual_nrf24.h", build_dir: "dfrobot_firebeetle2_esp32e", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "M5Cardputer", flag: "MARAUDER_CARDPUTER", fbqn: "esp32:esp32:esp32s3:PartitionScheme=min_spiffs,FlashSize=8M,PSRAM=disabled", file_name: "m5cardputer", tft: true, tft_file: "User_Setup_marauder_m5cardputer.h", build_dir: "esp32s3", addr: "0x1000", idf_ver: "2.0.11", nimble_ver: "1.3.8", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "ESP32-C5-DevKitC-1", flag: "MARAUDER_C5", fbqn: "esp32:esp32:esp32c5:FlashSize=8M,PartitionScheme=min_spiffs,PSRAM=enabled", file_name: "esp32c5devkitc1", tft: false, tft_file: "", build_dir: "esp32c5", addr: "0x2000", idf_ver: "3.3.4", nimble_ver: "2.3.6", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
- { name: "ESP32-C5-DevKitC-1", flag: "MARAUDER_C5", fbqn: "esp32:esp32:esp32c5:FlashSize=8M,PartitionScheme=min_spiffs,PSRAM=enabled", file_name: "esp32c5devkitc1", tft: false, tft_file: "", build_dir: "esp32c5", addr: "0x2000", idf_ver: "3.3.4", nimble_ver: "master", esp_async: "bigbrodude6119/ESPAsyncWebServer", esp_async_ver: "master" }
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
|
||||
@@ -169,9 +169,9 @@
|
||||
#define TFT_DC 16 // Data Command control pin
|
||||
#define TFT_RST 5 // Reset pin (could connect to NodeMCU RST, see next line)
|
||||
#define TOUCH_CS -1
|
||||
//#define TFT_MISO 19
|
||||
//#define TFT_MOSI 23
|
||||
//#define TFT_SCLK 18
|
||||
#define TFT_MISO 19
|
||||
#define TFT_MOSI 23
|
||||
#define TFT_SCLK 18
|
||||
//#define TFT_BL 32
|
||||
|
||||
/*
|
||||
|
||||
@@ -52,6 +52,10 @@ void Buffer::open(bool is_pcap){
|
||||
}
|
||||
}
|
||||
|
||||
String Buffer::getFileName() {
|
||||
return this->fileName;
|
||||
}
|
||||
|
||||
void Buffer::openFile(String file_name, fs::FS* fs, bool serial, bool is_pcap, bool is_gpx) {
|
||||
bool save_pcap = settings_obj.loadSetting<bool>("SavePCAP");
|
||||
if (!save_pcap) {
|
||||
|
||||
@@ -25,6 +25,7 @@ class Buffer {
|
||||
void append(wifi_promiscuous_pkt_t *packet, int len);
|
||||
void append(String log);
|
||||
void save();
|
||||
String getFileName();
|
||||
private:
|
||||
void createFile(String name, bool is_pcap, bool is_gpx = false);
|
||||
void open(bool is_pcap);
|
||||
|
||||
@@ -240,10 +240,12 @@ void CommandLine::runCommand(String input) {
|
||||
Serial.println(HELP_SNIFF_ESP_CMD);
|
||||
Serial.println(HELP_SNIFF_DEAUTH_CMD);
|
||||
Serial.println(HELP_SNIFF_PMKID_CMD);
|
||||
Serial.println(HELP_SNIFF_SAE_CMD);
|
||||
Serial.println(HELP_STOPSCAN_CMD);
|
||||
#ifdef HAS_GPS
|
||||
Serial.println(HELP_WARDRIVE_CMD);
|
||||
#endif
|
||||
Serial.println(HELP_MAC_TRACK_CMD);
|
||||
|
||||
// WiFi attack
|
||||
Serial.println(HELP_ATTACK_CMD);
|
||||
@@ -323,7 +325,8 @@ void CommandLine::runCommand(String input) {
|
||||
else if (cmd_args.get(0) == GPS_DATA_CMD) {
|
||||
#ifdef HAS_GPS
|
||||
if (gps_obj.getGpsModuleStatus()) {
|
||||
Serial.println("Getting GPS Data. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Getting GPS Data. Stop with "));
|
||||
Serial.println((String)STOPSCAN_CMD);
|
||||
wifi_scan_obj.currentScanMode = WIFI_SCAN_GPS_DATA;
|
||||
#ifdef HAS_SCREEN
|
||||
menu_function_obj.changeMenu(&menu_function_obj.gpsInfoMenu);
|
||||
@@ -388,7 +391,8 @@ void CommandLine::runCommand(String input) {
|
||||
nmea_type="beidou_bd";
|
||||
}
|
||||
gps_obj.setType(nmea_type);
|
||||
Serial.println("GPS Output Type Set To: " + nmea_type);
|
||||
Serial.print(F("GPS Output Type Set To: "));
|
||||
Serial.println(nmea_type);
|
||||
}
|
||||
else
|
||||
Serial.println(F("You did not provide a valid argument"));
|
||||
@@ -466,12 +470,14 @@ void CommandLine::runCommand(String input) {
|
||||
int ch_set = this->argSearch(&cmd_args, "-s");
|
||||
|
||||
if (cmd_args.size() == 1) {
|
||||
Serial.println("Current channel: " + (String)wifi_scan_obj.set_channel);
|
||||
Serial.print(F("Current channel: "));
|
||||
Serial.println(wifi_scan_obj.set_channel);
|
||||
}
|
||||
else if (ch_set != -1) {
|
||||
wifi_scan_obj.set_channel = cmd_args.get(ch_set + 1).toInt();
|
||||
wifi_scan_obj.changeChannel();
|
||||
Serial.println("Set channel: " + (String)wifi_scan_obj.set_channel);
|
||||
Serial.print(F("Set channel: "));
|
||||
Serial.println(wifi_scan_obj.set_channel);
|
||||
}
|
||||
}
|
||||
// Clear APs
|
||||
@@ -529,7 +535,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
|
||||
if (!result) {
|
||||
Serial.println("Could not successfully update setting \"" + setting_name + "\"");
|
||||
Serial.print(F("Could not successfully update setting \""));
|
||||
Serial.println(setting_name + "\"");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -547,7 +554,8 @@ void CommandLine::runCommand(String input) {
|
||||
|
||||
// Signal strength scan
|
||||
if (cmd_args.get(0) == SIGSTREN_CMD) {
|
||||
Serial.println("Starting Signal Strength Scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Signal Strength Scan. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -557,7 +565,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
// Packet count
|
||||
else if (cmd_args.get(0) == PACKET_COUNT_CMD) {
|
||||
Serial.println("Starting Packet Count Scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Packet Count Scan. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -572,7 +581,8 @@ void CommandLine::runCommand(String input) {
|
||||
int flk_sw = this->argSearch(&cmd_args, "-f");
|
||||
|
||||
if (flk_sw != -1) {
|
||||
Serial.println("Starting Flock Wardrive. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Flock Wardrive. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -580,7 +590,8 @@ void CommandLine::runCommand(String input) {
|
||||
wifi_scan_obj.StartScan(BT_SCAN_FLOCK_WARDRIVE, TFT_GREEN);
|
||||
}
|
||||
else if (sta_sw != -1) {
|
||||
Serial.println("Starting Station Wardrive. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Station Wardrive. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -588,7 +599,8 @@ void CommandLine::runCommand(String input) {
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_STATION_WAR_DRIVE, TFT_GREEN);
|
||||
}
|
||||
else {
|
||||
Serial.println("Starting Wardrive. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Wardrive. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -619,7 +631,10 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
|
||||
if (evil_portal_obj.setAP(probe_req_ssids->get(pr_index).essid)) {
|
||||
Serial.println("Starting Karma Attack with " + probe_req_ssids->get(pr_index).essid + ". Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Karma Attack with "));
|
||||
Serial.print(probe_req_ssids->get(pr_index).essid);
|
||||
Serial.print(F(". Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -641,7 +656,8 @@ void CommandLine::runCommand(String input) {
|
||||
if (cmd_sw != -1) {
|
||||
String et_command = cmd_args.get(cmd_sw + 1);
|
||||
if (et_command == "start") {
|
||||
Serial.println("Starting Evil Portal. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Evil Portal. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -650,7 +666,8 @@ void CommandLine::runCommand(String input) {
|
||||
String target_html_name = cmd_args.get(html_sw + 1);
|
||||
evil_portal_obj.target_html_name = target_html_name;
|
||||
evil_portal_obj.using_serial_html = false;
|
||||
Serial.println("Set html file as " + evil_portal_obj.target_html_name);
|
||||
Serial.print(F("Set html file as "));
|
||||
Serial.println(evil_portal_obj.target_html_name);
|
||||
}
|
||||
//else {
|
||||
// evil_portal_obj.target_html_name = "index.html";
|
||||
@@ -667,7 +684,8 @@ void CommandLine::runCommand(String input) {
|
||||
String target_html_name = cmd_args.get(cmd_sw + 2);
|
||||
evil_portal_obj.target_html_name = target_html_name;
|
||||
evil_portal_obj.using_serial_html = false;
|
||||
Serial.println("Set html file as " + evil_portal_obj.target_html_name);
|
||||
Serial.print(F("Set html file as "));
|
||||
Serial.println(evil_portal_obj.target_html_name);
|
||||
}
|
||||
else if (et_command == "sethtmlstr") {
|
||||
evil_portal_obj.setHtmlFromSerial();
|
||||
@@ -686,7 +704,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
}
|
||||
else if (cmd_args.get(0) == SCAN_ALL_CMD) {
|
||||
Serial.println("Scanning for APs and Stations. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Scanning for APs and Stations. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_AP_STA, TFT_MAGENTA);
|
||||
}
|
||||
else if (cmd_args.get(0) == SCANAP_CMD) {
|
||||
@@ -697,17 +716,20 @@ void CommandLine::runCommand(String input) {
|
||||
#endif
|
||||
|
||||
if (full_sw == -1) {
|
||||
Serial.println("Starting AP scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting AP scan. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_TARGET_AP, TFT_MAGENTA);
|
||||
}
|
||||
else {
|
||||
Serial.println("Starting Full AP scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Full AP scan. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_TARGET_AP_FULL, TFT_MAGENTA);
|
||||
}
|
||||
}
|
||||
// Raw sniff
|
||||
else if (cmd_args.get(0) == SNIFF_RAW_CMD) {
|
||||
Serial.println("Starting Raw sniff. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Raw sniff. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -717,9 +739,11 @@ void CommandLine::runCommand(String input) {
|
||||
// Scan stations
|
||||
else if (cmd_args.get(0) == SCANSTA_CMD) {
|
||||
if(access_points->size() < 1)
|
||||
Serial.println("The AP list is empty. Scan APs first with " + (String)SCANAP_CMD);
|
||||
Serial.print(F("The AP list is empty. Scan APs first with "));
|
||||
Serial.println(SCANAP_CMD);
|
||||
|
||||
Serial.println("Starting Station scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Station scan. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -728,16 +752,28 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
// Beacon sniff
|
||||
else if (cmd_args.get(0) == SNIFF_BEACON_CMD) {
|
||||
Serial.println("Starting Beacon sniff. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Beacon sniff. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_AP, TFT_MAGENTA);
|
||||
}
|
||||
// SAE sniff
|
||||
else if (cmd_args.get(0) == SNIFF_SAE_CMD) {
|
||||
Serial.print(F("Starting SAE Commit sniff. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_SAE_COMMIT, TFT_MAGENTA);
|
||||
}
|
||||
// Probe sniff
|
||||
else if (cmd_args.get(0) == SNIFF_PROBE_CMD) {
|
||||
Serial.println("Starting Probe sniff. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Probe sniff. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -746,7 +782,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
// Deauth sniff
|
||||
else if (cmd_args.get(0) == SNIFF_DEAUTH_CMD) {
|
||||
Serial.println("Starting Deauth sniff. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Deauth sniff. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -755,7 +792,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
// Pwn sniff
|
||||
else if (cmd_args.get(0) == SNIFF_PWN_CMD) {
|
||||
Serial.println("Starting Pwnagotchi sniff. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Pwnagotchi sniff. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -764,7 +802,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
// PineScan sniff
|
||||
else if (cmd_args.get(0) == SNIFF_PINESCAN_CMD) {
|
||||
Serial.println("Starting Pinescan sniff. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Pinescan sniff. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -773,7 +812,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
// MultiSSID sniff
|
||||
else if (cmd_args.get(0) == SNIFF_MULTISSID_CMD) {
|
||||
Serial.println("Starting MultiSSID sniff. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting MultiSSID sniff. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -782,7 +822,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
// Espressif sniff
|
||||
else if (cmd_args.get(0) == SNIFF_ESP_CMD) {
|
||||
Serial.println("Starting Espressif device sniff. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Espressif device sniff. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -822,6 +863,16 @@ void CommandLine::runCommand(String input) {
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_ACTIVE_EAPOL, TFT_VIOLET);
|
||||
}
|
||||
}
|
||||
// MAC Tracking
|
||||
else if (cmd_args.get(0) == MAC_TRACK_CMD) {
|
||||
Serial.print(F("Starting MAC Tracker. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_DETECT_FOLLOW, TFT_MAGENTA);
|
||||
}
|
||||
|
||||
|
||||
//// MAC Address commands (Added by H4W9_4)
|
||||
@@ -1068,13 +1119,23 @@ void CommandLine::runCommand(String input) {
|
||||
wifi_scan_obj.StartScan(WIFI_ATTACK_RICK_ROLL, TFT_YELLOW);
|
||||
}
|
||||
else if (attack_type == ATTACK_TYPE_FUNNY) {
|
||||
Serial.println("Starting Funny SSID Beacon spam. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Funny SSID Beacon spam. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(WIFI_ATTACK_FUNNY_BEACON, TFT_CYAN);
|
||||
}
|
||||
else if (attack_type == ATTACK_TYPE_SAE) {
|
||||
Serial.print(F("Starting SAE Commit spam. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(WIFI_ATTACK_SAE_COMMIT, TFT_CYAN);
|
||||
}
|
||||
else {
|
||||
Serial.println(F("Attack type not properly defined"));
|
||||
return;
|
||||
@@ -1096,7 +1157,8 @@ void CommandLine::runCommand(String input) {
|
||||
|
||||
// Airtag sniff
|
||||
if (bt_type == "airtag") {
|
||||
Serial.println("Starting Airtag sniff. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Airtag sniff. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1104,7 +1166,8 @@ void CommandLine::runCommand(String input) {
|
||||
wifi_scan_obj.StartScan(BT_SCAN_AIRTAG, TFT_WHITE);
|
||||
}
|
||||
else if (bt_type == "flipper") {
|
||||
Serial.println("Starting Flipper sniff. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Flipper sniff. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1112,7 +1175,8 @@ void CommandLine::runCommand(String input) {
|
||||
wifi_scan_obj.StartScan(BT_SCAN_FLIPPER, TFT_ORANGE);
|
||||
}
|
||||
else if (bt_type == "flock") {
|
||||
Serial.println("Starting Flock sniff. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Flock sniff. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1122,7 +1186,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
// General bluetooth sniff
|
||||
else {
|
||||
Serial.println("Starting Bluetooth scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Bluetooth scan. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1147,7 +1212,8 @@ void CommandLine::runCommand(String input) {
|
||||
at.selected = false;
|
||||
airtags->set(i, at);
|
||||
}
|
||||
Serial.println("Spoofing Airtag: " + airtags->get(target_mac).mac);
|
||||
Serial.print(F("Spoofing Airtag: "));
|
||||
Serial.println(airtags->get(target_mac).mac);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1155,7 +1221,8 @@ void CommandLine::runCommand(String input) {
|
||||
wifi_scan_obj.StartScan(BT_SPOOF_AIRTAG, TFT_WHITE);
|
||||
}
|
||||
else {
|
||||
Serial.println("Provided index is out of range: " + (String)target_mac);
|
||||
Serial.print(F("Provided index is out of range: "));
|
||||
Serial.println(target_mac);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
@@ -1168,7 +1235,8 @@ void CommandLine::runCommand(String input) {
|
||||
|
||||
if (bt_type == "apple") {
|
||||
#ifdef HAS_BT
|
||||
Serial.println("Starting Sour Apple attack. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Sour Apple attack. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1180,7 +1248,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
else if (bt_type == "windows") {
|
||||
#ifdef HAS_BT
|
||||
Serial.println("Starting Swiftpair Spam attack. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Swiftpair Spam attack. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1192,7 +1261,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
else if (bt_type == "samsung") {
|
||||
#ifdef HAS_BT
|
||||
Serial.println("Starting Samsung Spam attack. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Samsung Spam attack. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1204,7 +1274,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
else if (bt_type == "google") {
|
||||
#ifdef HAS_BT
|
||||
Serial.println("Starting Google Spam attack. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Google Spam attack. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1216,7 +1287,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
else if (bt_type == "flipper") {
|
||||
#ifdef HAS_BT
|
||||
Serial.println("Starting Flipper Spam attack. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Flipper Spam attack. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1228,7 +1300,8 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
else if (bt_type == "all") {
|
||||
#ifdef HAS_BT
|
||||
Serial.println("Starting BT Spam All attack. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting BT Spam All attack. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1248,23 +1321,14 @@ void CommandLine::runCommand(String input) {
|
||||
#ifdef HAS_BT
|
||||
#ifdef HAS_GPS
|
||||
if (gps_obj.getGpsModuleStatus()) {
|
||||
int cont_sw = this->argSearch(&cmd_args, "-c");
|
||||
|
||||
if (cont_sw == -1) {
|
||||
Serial.println("Starting BT Wardrive. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE, TFT_GREEN);
|
||||
}
|
||||
else {Serial.println("Starting Continuous BT Wardrive. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE_CONT, TFT_GREEN);
|
||||
}
|
||||
Serial.print(F("Starting BT Wardrive. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE, TFT_GREEN);
|
||||
}
|
||||
else
|
||||
Serial.println(F("GPS Module not detected"));
|
||||
@@ -1279,7 +1343,8 @@ void CommandLine::runCommand(String input) {
|
||||
// Bluetooth CC Skimmer scan
|
||||
else if (cmd_args.get(0) == BT_SKIM_CMD) {
|
||||
#ifdef HAS_BT
|
||||
Serial.println("Starting Bluetooth CC Skimmer scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Bluetooth CC Skimmer scan. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1324,7 +1389,8 @@ void CommandLine::runCommand(String input) {
|
||||
if (wifi_scan_obj.wifi_connected) {
|
||||
// Ping Scan
|
||||
if (cmd_args.get(0) == PING_CMD) {
|
||||
Serial.println("Starting Ping Scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting Ping Scan. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1334,7 +1400,8 @@ void CommandLine::runCommand(String input) {
|
||||
|
||||
if (cmd_args.get(0) == ARP_SCAN_CMD) {
|
||||
#ifndef HAS_DUAL_BAND
|
||||
Serial.println("Starting ARP Scan. Stop with " + (String)STOPSCAN_CMD);
|
||||
Serial.print(F("Starting ARP Scan. Stop with "));
|
||||
Serial.println(STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1442,7 +1509,8 @@ void CommandLine::runCommand(String input) {
|
||||
target_mode = WIFI_SCAN_RDP;
|
||||
|
||||
if (target_mode != 0) {
|
||||
Serial.println("Starting port scan for service " + port_name);
|
||||
Serial.print(F("Starting port scan for service "));
|
||||
Serial.println(port_name);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
@@ -1519,7 +1587,7 @@ void CommandLine::runCommand(String input) {
|
||||
if (stations->get(access_points->get(x).stations->get(i)).selected) {
|
||||
Serial.print(" [" + (String)access_points->get(x).stations->get(i) + "] ");
|
||||
Serial.print(sta_mac);
|
||||
Serial.println(" (selected)");
|
||||
Serial.println(F(" (selected)"));
|
||||
count_selected += 1;
|
||||
}
|
||||
else {
|
||||
@@ -1640,7 +1708,8 @@ void CommandLine::runCommand(String input) {
|
||||
for (int i = 0; i < ap_index.size(); i++) {
|
||||
int index = ap_index.get(i).toInt();
|
||||
if (!this->inRange(access_points->size(), index)) {
|
||||
Serial.println("Index not in range: " + (String)index);
|
||||
Serial.print(F("Index not in range: "));
|
||||
Serial.println(index);
|
||||
continue;
|
||||
}
|
||||
if (access_points->get(index).selected) {
|
||||
@@ -1691,7 +1760,8 @@ void CommandLine::runCommand(String input) {
|
||||
for (int i = 0; i < sta_index.size(); i++) {
|
||||
int index = sta_index.get(i).toInt();
|
||||
if (!this->inRange(stations->size(), index)) {
|
||||
Serial.println("Index not in range: " + (String)index);
|
||||
Serial.print(F("Index not in range: "));
|
||||
Serial.println(index);
|
||||
continue;
|
||||
}
|
||||
if (stations->get(index).selected) {
|
||||
@@ -1739,7 +1809,8 @@ void CommandLine::runCommand(String input) {
|
||||
for (int i = 0; i < ss_index.size(); i++) {
|
||||
int index = ss_index.get(i).toInt();
|
||||
if (!this->inRange(ssids->size(), index)) {
|
||||
Serial.println("Index not in range: " + (String)index);
|
||||
Serial.print(F("Index not in range: "));
|
||||
Serial.println(index);
|
||||
continue;
|
||||
}
|
||||
if (ssids->get(index).selected) {
|
||||
@@ -1825,7 +1896,8 @@ void CommandLine::runCommand(String input) {
|
||||
else if (rem_sw != -1) {
|
||||
int index = cmd_args.get(rem_sw + 1).toInt();
|
||||
if (!this->inRange(ssids->size(), index)) {
|
||||
Serial.println("Index not in range: " + (String)index);
|
||||
Serial.print(F("Index not in range: "));
|
||||
Serial.println(index);
|
||||
return;
|
||||
}
|
||||
ssids->remove(index);
|
||||
@@ -1835,41 +1907,4 @@ void CommandLine::runCommand(String input) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
// Join WiFi
|
||||
/*else if (cmd_args.get(0) == JOINWIFI_CMD) {
|
||||
int n_sw = this->argSearch(&cmd_args, "-n"); // name
|
||||
int a_sw = this->argSearch(&cmd_args, "-a"); // access point
|
||||
int s_sw = this->argSearch(&cmd_args, "-s"); // ssid
|
||||
int p_sw = this->argSearch(&cmd_args, "-p");
|
||||
|
||||
String essid = "";
|
||||
String pwx = "";
|
||||
|
||||
if (s_sw != -1) {
|
||||
int index = cmd_args.get(s_sw + 1).toInt();
|
||||
if (!this->inRange(ssids->size(), index)) {
|
||||
Serial.println("Index not in range: " + (String)index);
|
||||
return;
|
||||
}
|
||||
essid = ssids->get(index).essid;
|
||||
} else if (a_sw != -1) {
|
||||
int index = cmd_args.get(a_sw + 1).toInt();
|
||||
if (!this->inRange(access_points->size(), index)) {
|
||||
Serial.println("Index not in range: " + (String)index);
|
||||
return;
|
||||
}
|
||||
essid = access_points->get(index).essid;
|
||||
} else if (n_sw != -1) {
|
||||
essid = cmd_args.get(n_sw + 1);
|
||||
} else {
|
||||
Serial.println("You must specify an access point or ssid");
|
||||
return;
|
||||
}
|
||||
|
||||
if (p_sw != -1) {
|
||||
pwx = cmd_args.get(p_sw + 1);
|
||||
}
|
||||
Serial.println("Attempting to join WiFi with ssid " + (String)essid);
|
||||
wifi_scan_obj.joinWiFi(essid, pwx);
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -78,6 +78,8 @@ const char PROGMEM WARDRIVE_CMD[] = "wardrive";
|
||||
const char PROGMEM PING_CMD[] = "pingscan";
|
||||
const char PROGMEM PORT_SCAN_CMD[] = "portscan";
|
||||
const char PROGMEM ARP_SCAN_CMD[] = "arpscan";
|
||||
const char PROGMEM MAC_TRACK_CMD[] = "mactrack";
|
||||
const char PROGMEM SNIFF_SAE_CMD[] = "sniffsae";
|
||||
|
||||
// WiFi attack
|
||||
const char PROGMEM ATTACK_CMD[] = "attack";
|
||||
@@ -88,6 +90,7 @@ const char PROGMEM ATTACK_TYPE_FUNNY[] = "funny";
|
||||
const char PROGMEM ATTACK_TYPE_RR[] = "rickroll";
|
||||
const char PROGMEM ATTACK_TYPE_BM[] = "badmsg";
|
||||
const char PROGMEM ATTACK_TYPE_S[] = "sleep";
|
||||
const char PROGMEM ATTACK_TYPE_SAE[] = "sae";
|
||||
|
||||
// WiFi Aux
|
||||
const char PROGMEM LIST_AP_CMD[] = "list";
|
||||
@@ -152,9 +155,11 @@ const char PROGMEM HELP_WARDRIVE_CMD[] = "wardrive [-s/-f]";
|
||||
const char PROGMEM HELP_PING_CMD[] = "pingscan";
|
||||
const char PROGMEM HELP_PORT_SCAN_CMD[] = "portscan [-a -t <ip index>]/[-s <ssh/telnet/dns/http/smtp/https/rdp>]";
|
||||
const char PROGMEM HELP_ARP_SCAN_CMD[] = "arpscan [-f]";
|
||||
const char PROGMEM HELP_MAC_TRACK_CMD[] = "mactrack";
|
||||
const char PROGMEM HELP_SNIFF_SAE_CMD[] = "sniffsae";
|
||||
|
||||
// WiFi attack
|
||||
const char PROGMEM HELP_ATTACK_CMD[] = "attack -t <beacon [-l/-r/-a]/deauth [-c]/[-s <src mac>] [-d <dst mac>]/probe/rickroll/badmsg [-c]/sleep [-c]>";
|
||||
const char PROGMEM HELP_ATTACK_CMD[] = "attack -t <sae/beacon [-l/-r/-a]/deauth [-c]/[-s <src mac>] [-d <dst mac>]/probe/rickroll/badmsg [-c]/sleep [-c]>";
|
||||
|
||||
// WiFi Aux
|
||||
const char PROGMEM HELP_LIST_AP_CMD_A[] = "list -s";
|
||||
@@ -183,7 +188,7 @@ const char PROGMEM HELP_BT_SPOOFAT_CMD[] = "spoofat -t <index>";
|
||||
//const char PROGMEM HELP_BT_SWIFTPAIR_SPAM_CMD[] = "swiftpair";
|
||||
//const char PROGMEM HELP_BT_SAMSUNG_SPAM_CMD[] = "samsungblespam";
|
||||
//onst char PROGMEM HELP_BT_SPAM_ALL_CMD[] = "btspamall";
|
||||
const char PROGMEM HELP_BT_WARDRIVE_CMD[] = "btwardrive [-c]";
|
||||
const char PROGMEM HELP_BT_WARDRIVE_CMD[] = "btwardrive";
|
||||
const char PROGMEM HELP_BT_SKIM_CMD[] = "sniffskim";
|
||||
const char PROGMEM HELP_FOOT[] = "==================================";
|
||||
|
||||
|
||||
@@ -10,23 +10,22 @@ MicroNMEA nmea(nmeaBuffer, sizeof(nmeaBuffer));
|
||||
|
||||
HardwareSerial Serial2(GPS_SERIAL_INDEX);
|
||||
|
||||
static const char *PCAS_SET_115200 = "$PCAS01,5*19\r\n";
|
||||
|
||||
static const uint32_t PROBE_MS = 1200;
|
||||
|
||||
void GpsInterface::begin() {
|
||||
|
||||
/*#ifdef MARAUDER_MINI
|
||||
pinMode(26, OUTPUT);
|
||||
|
||||
delay(1);
|
||||
|
||||
analogWrite(26, 243);
|
||||
delay(1);
|
||||
|
||||
Serial.println("Activated GPS");
|
||||
delay(100);
|
||||
#endif*/
|
||||
|
||||
|
||||
Serial2.begin(9600, SERIAL_8N1, GPS_TX, GPS_RX);
|
||||
|
||||
uint32_t gps_baud = this->initGpsBaudAndForce115200();
|
||||
|
||||
if ((gps_baud != 9600) && (gps_baud != 115200))
|
||||
Serial.println("Could not detect GPS baudrate");
|
||||
|
||||
delay(1000);
|
||||
|
||||
MicroNMEA::sendSentence(Serial2, "$PSTMSETPAR,1201,0x00000042");
|
||||
MicroNMEA::sendSentence(Serial2, "$PSTMSAVEPAR");
|
||||
|
||||
@@ -35,7 +34,6 @@ void GpsInterface::begin() {
|
||||
delay(1000);
|
||||
|
||||
if (Serial2.available()) {
|
||||
Serial.println("GPS Attached Successfully");
|
||||
this->gps_enabled = true;
|
||||
while (Serial2.available()) {
|
||||
//Fetch the character one by one
|
||||
@@ -58,6 +56,67 @@ void GpsInterface::begin() {
|
||||
|
||||
}
|
||||
|
||||
bool GpsInterface::probeBaud(uint32_t baud) {
|
||||
Serial2.end();
|
||||
delay(50);
|
||||
|
||||
Serial2.begin(baud, SERIAL_8N1, GPS_TX, GPS_RX);
|
||||
|
||||
uint32_t start = millis();
|
||||
bool sawDollar = false;
|
||||
bool parsedSentence = false;
|
||||
|
||||
while (millis() - start < PROBE_MS) {
|
||||
while (Serial2.available()) {
|
||||
char c = (char)Serial2.read();
|
||||
|
||||
if (c == '$') {
|
||||
sawDollar = true;
|
||||
}
|
||||
|
||||
// Feed characters directly to MicroNMEA
|
||||
if (nmea.process(c)) {
|
||||
parsedSentence = true;
|
||||
}
|
||||
|
||||
// If we’ve seen real NMEA traffic and MicroNMEA parsed something,
|
||||
// this baud is almost certainly correct
|
||||
if (sawDollar && parsedSentence) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
delay(1);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void GpsInterface::setGpsTo115200From9600() {
|
||||
Serial2.print(PCAS_SET_115200);
|
||||
Serial2.flush();
|
||||
delay(200);
|
||||
}
|
||||
|
||||
uint32_t GpsInterface::initGpsBaudAndForce115200() {
|
||||
if (probeBaud(115200)) {
|
||||
return 115200;
|
||||
}
|
||||
|
||||
if (probeBaud(9600)) {
|
||||
setGpsTo115200From9600();
|
||||
|
||||
if (probeBaud(115200)) {
|
||||
return 115200;
|
||||
}
|
||||
|
||||
probeBaud(9600);
|
||||
return 9600;
|
||||
}
|
||||
|
||||
probeBaud(9600);
|
||||
return 0;
|
||||
}
|
||||
|
||||
//passthrough for other objects
|
||||
void gps_nmea_notimp(MicroNMEA& nmea){
|
||||
gps_obj.enqueue(nmea);
|
||||
|
||||
@@ -121,6 +121,9 @@ class GpsInterface {
|
||||
void flush_queue_nmea();
|
||||
String dt_string_from_gps();
|
||||
void setGPSInfo();
|
||||
bool probeBaud(uint32_t baud);
|
||||
void setGpsTo115200From9600();
|
||||
uint32_t initGpsBaudAndForce115200();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -203,6 +203,7 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
{
|
||||
// Stop the current scan
|
||||
if ((wifi_scan_obj.currentScanMode == WIFI_SCAN_PROBE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_SAE_COMMIT) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_DETECT_FOLLOW) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_STATION_WAR_DRIVE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_STATION) ||
|
||||
@@ -238,6 +239,7 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_BAD_MSG) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_SLEEP) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_SLEEP_TARGETED) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_SAE_COMMIT) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_MIMIC) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_FUNNY_BEACON) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_RICK_ROLL) ||
|
||||
@@ -301,6 +303,7 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
{
|
||||
// Stop the current scan
|
||||
if ((wifi_scan_obj.currentScanMode == WIFI_SCAN_PROBE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_SAE_COMMIT) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_DETECT_FOLLOW) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_STATION_WAR_DRIVE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_RAW_CAPTURE) ||
|
||||
@@ -338,6 +341,7 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_BAD_MSG) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_SLEEP) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_SLEEP_TARGETED) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_SAE_COMMIT) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_MIMIC) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_FUNNY_BEACON) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_RICK_ROLL) ||
|
||||
@@ -403,6 +407,7 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_BAD_MSG) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_SLEEP) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_SLEEP_TARGETED) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_SAE_COMMIT) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_MIMIC) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_SCAN_PACKET_RATE) &&
|
||||
(wifi_scan_obj.currentScanMode != WIFI_SCAN_RAW_CAPTURE) &&
|
||||
@@ -1676,6 +1681,11 @@ void MenuFunctions::RunSetup()
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_DETECT_FOLLOW, TFT_MAGENTA);
|
||||
});
|
||||
this->addNodes(&wifiSnifferMenu, "SAE Commit", TFTLIME, NULL, EAPOL, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_SAE_COMMIT, TFT_GREEN);
|
||||
});
|
||||
|
||||
// Build Wardriving menu
|
||||
#ifdef HAS_GPS
|
||||
@@ -1842,6 +1852,11 @@ void MenuFunctions::RunSetup()
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_ATTACK_SLEEP_TARGETED, TFT_MAGENTA);
|
||||
});
|
||||
this->addNodes(&wifiAttackMenu, "SAE Commit Flood", TFTLIME, NULL, EAPOL, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_ATTACK_SAE_COMMIT, TFT_GREEN);
|
||||
});
|
||||
|
||||
evilPortalMenu.parentMenu = &wifiAttackMenu;
|
||||
this->addNodes(&evilPortalMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||
@@ -2425,11 +2440,6 @@ void MenuFunctions::RunSetup()
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE, TFT_GREEN);
|
||||
});
|
||||
this->addNodes(&bluetoothSnifferMenu, "BT Wardrive Continuous", TFTRED, NULL, REBOOT, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE_CONT, TFT_GREEN);
|
||||
});
|
||||
}
|
||||
#endif
|
||||
this->addNodes(&bluetoothSnifferMenu, text_table1[35], TFTMAGENTA, NULL, CC_SKIMMERS, [this]() {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -14,7 +14,7 @@
|
||||
#include <NimBLEDevice.h> // 1.3.8, 2.3.2
|
||||
#endif
|
||||
|
||||
#ifdef HAS_DUAL_BAND
|
||||
#ifdef HAS_IDF_3
|
||||
extern "C" {
|
||||
#include "esp_netif.h"
|
||||
#include "esp_netif_net_stack.h"
|
||||
@@ -28,14 +28,19 @@
|
||||
#include "esp_wifi.h"
|
||||
#include "esp_wifi_types.h"
|
||||
#include <esp_timer.h>
|
||||
#ifndef HAS_DUAL_BAND
|
||||
#include "mbedtls/entropy.h"
|
||||
#include "mbedtls/bignum.h"
|
||||
#include "mbedtls/ctr_drbg.h"
|
||||
#include "mbedtls/ecp.h"
|
||||
#ifndef HAS_IDF_3
|
||||
#include <lwip/etharp.h>
|
||||
#include <lwip/ip_addr.h>
|
||||
#endif
|
||||
#ifdef HAS_DUAL_BAND
|
||||
#ifdef HAS_IDF_3
|
||||
#include "esp_system.h"
|
||||
#include "esp_mac.h"
|
||||
#endif
|
||||
#if defined(HAS_BT) && !defined(HAS_DUAL_BAND)
|
||||
#if defined(HAS_BT) && !defined(HAS_NIMBLE_2)
|
||||
#include "esp_bt.h"
|
||||
#endif
|
||||
#ifdef HAS_SCREEN
|
||||
@@ -145,6 +150,8 @@
|
||||
#define BT_SCAN_SIMPLE_TWO 74
|
||||
#define BT_SCAN_FLOCK_WARDRIVE 75
|
||||
#define WIFI_SCAN_DETECT_FOLLOW 76
|
||||
#define WIFI_SCAN_SAE_COMMIT 77
|
||||
#define WIFI_ATTACK_SAE_COMMIT 78
|
||||
|
||||
#define WIFI_ATTACK_FUNNY_BEACON 99
|
||||
|
||||
@@ -216,10 +223,6 @@ extern Settings settings_obj;
|
||||
|
||||
esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, bool en_sys_seq);
|
||||
|
||||
#ifdef HAS_DUAL_BAND
|
||||
esp_err_t esp_base_mac_addr_set(uint8_t *Mac);
|
||||
#endif
|
||||
|
||||
#define EMPTY_ENTRY 0
|
||||
#define VALID_ENTRY 1
|
||||
#define TOMBSTONE_ENTRY 2
|
||||
@@ -236,6 +239,7 @@ struct MacEntry {
|
||||
bool following;
|
||||
int32_t dloc;
|
||||
int8_t rssi;
|
||||
bool bt;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
@@ -271,6 +275,8 @@ class WiFiScan
|
||||
struct mac_addr mac_history[mac_history_len];
|
||||
#endif
|
||||
|
||||
int current_act_len = 0;
|
||||
|
||||
uint32_t chanActTime = 0;
|
||||
|
||||
uint8_t ap_mac[6] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
|
||||
@@ -307,6 +313,7 @@ class WiFiScan
|
||||
|
||||
uint32_t initTime = 0;
|
||||
uint32_t last_ui_update = 0;
|
||||
uint32_t last_sour_apple_update = 0;
|
||||
bool run_setup = true;
|
||||
void initWiFi(uint8_t scan_mode);
|
||||
uint8_t bluetoothScanTime = 5;
|
||||
@@ -432,6 +439,15 @@ class WiFiScan
|
||||
LinkedList<ConfirmedMultiSSID>* confirmed_multissid;
|
||||
bool multissid_list_full_reported;
|
||||
|
||||
uint8_t sae_commit[32] = {
|
||||
0xb0, 0x00, 0x00, 0x00, // Type/Subtype, Duration
|
||||
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, // Destination
|
||||
0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, // Source
|
||||
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, // BSSID (Destination)
|
||||
0x00, 0x00, // Frag num
|
||||
0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x00 // Auth alg (SAE), SAE sequence, group 19
|
||||
};
|
||||
|
||||
// barebones packet
|
||||
uint8_t packet[128] = { 0x80, 0x00, 0x00, 0x00, //Frame Control, Duration
|
||||
/*4*/ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //Destination address
|
||||
@@ -562,7 +578,7 @@ class WiFiScan
|
||||
bool isHostAlive(IPAddress ip);
|
||||
bool checkHostPort(IPAddress ip, uint16_t port, uint16_t timeout = 100);
|
||||
String extractManufacturer(const uint8_t* payload);
|
||||
int checkMatchAP(char addr[]);
|
||||
int checkMatchAP(char addr[], bool update_ap = true);
|
||||
bool beaconHasWPS(const uint8_t* payload, int len);
|
||||
uint8_t getSecurityType(const uint8_t* beacon, uint16_t len);
|
||||
void addAnalyzerValue(int16_t value, int rssi_avg, int16_t target_array[], int array_size);
|
||||
@@ -574,6 +590,7 @@ class WiFiScan
|
||||
void executeSpoofAirtag();
|
||||
void executeSwiftpairSpam(EBLEPayloadType type);
|
||||
void startWardriverWiFi();
|
||||
void saeAttackLoop(uint32_t currentTime);
|
||||
//void generateRandomMac(uint8_t* mac);
|
||||
//void generateRandomName(char *name, size_t length);
|
||||
String processPwnagotchiBeacon(const uint8_t* frame, int length);
|
||||
@@ -592,6 +609,7 @@ class WiFiScan
|
||||
void tftDrawChannelScaleButtons();
|
||||
void tftDrawColorKey();
|
||||
void tftDrawGraphObjects();
|
||||
bool sendSAECommitFrame(uint8_t* targ_addr, uint8_t* src_addr) ;
|
||||
void sendProbeAttack(uint32_t currentTime);
|
||||
void sendDeauthAttack(uint32_t currentTime, String dst_mac_str = "ff:ff:ff:ff:ff:ff");
|
||||
void sendBadMsgAttack(uint32_t currentTime, bool all = false);
|
||||
@@ -618,6 +636,7 @@ class WiFiScan
|
||||
void RunDeauthScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunEapolScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunProbeScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunSAEScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunPacketMonitor(uint8_t scan_mode, uint16_t color);
|
||||
void RunBluetoothScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunSourApple(uint8_t scan_mode, uint16_t color);
|
||||
@@ -629,6 +648,7 @@ class WiFiScan
|
||||
void parseBSSID(const char* bssidStr, uint8_t* bssid);
|
||||
void writeHeader(bool poi = false);
|
||||
void writeFooter(bool poi = false);
|
||||
void displayWardriveStats();
|
||||
|
||||
|
||||
public:
|
||||
@@ -638,6 +658,10 @@ class WiFiScan
|
||||
|
||||
//LinkedList<ssid>* ssids;
|
||||
|
||||
volatile bool bt_cb_busy = false;
|
||||
volatile bool bt_pending_clear = false;
|
||||
|
||||
|
||||
static MacEntry mac_entries[mac_history_len];
|
||||
static uint8_t mac_entry_state[mac_history_len];
|
||||
|
||||
@@ -718,7 +742,7 @@ class WiFiScan
|
||||
|
||||
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
|
||||
|
||||
#ifndef HAS_DUAL_BAND
|
||||
#ifndef HAS_IDF_3
|
||||
wifi_init_config_t cfg2 = { \
|
||||
.event_handler = &esp_event_send_internal, \
|
||||
.osi_funcs = &g_wifi_osi_funcs, \
|
||||
@@ -763,8 +787,8 @@ class WiFiScan
|
||||
#endif
|
||||
bool seen_mac(unsigned char* mac, bool simple = true);
|
||||
int16_t seen_mac_int(unsigned char* mac, bool simple = true);
|
||||
int update_mac_entry(const uint8_t mac[6], int8_t rssi = 0);
|
||||
inline void insert_mac_entry(uint32_t idx, const uint8_t mac[6], uint32_t now_ms, int8_t rssi = 0);
|
||||
int update_mac_entry(const uint8_t mac[6], int8_t rssi = 0, bool bt = false);
|
||||
inline void insert_mac_entry(uint32_t idx, const uint8_t mac[6], uint32_t now_ms, int8_t rssi = 0, bool bt = false);
|
||||
void evict_and_insert(const uint8_t mac[6], uint32_t now_ms);
|
||||
uint8_t build_top10_for_ui(MacEntry* out_top10, MacSortMode mode);
|
||||
void save_mac(unsigned char* mac);
|
||||
@@ -796,8 +820,7 @@ class WiFiScan
|
||||
bool scanning();
|
||||
bool joinWiFi(String ssid, String password, bool gui = true);
|
||||
bool startWiFi(String ssid, String password, bool gui = true);
|
||||
String getStaMAC();
|
||||
String getApMAC();
|
||||
void getMAC(bool get_sta, uint8_t* mac);
|
||||
String freeRAM();
|
||||
void changeChannel();
|
||||
void changeChannel(int chan);
|
||||
@@ -831,7 +854,14 @@ class WiFiScan
|
||||
void startGPX(String file_name);
|
||||
//String macToString(const Station& station);
|
||||
|
||||
static bool initMbedtls();
|
||||
static int mbedtls_entropy_source(void *data, unsigned char *output, size_t len);
|
||||
static bool getSAEACT(const uint8_t *frame, size_t frame_len, uint16_t &group_out, size_t &act_len_out);
|
||||
static bool sae_group_sizes(uint16_t group, size_t &scalar_len, size_t &element_len);
|
||||
static bool mac_cmp(const uint8_t *a, const uint8_t *b);
|
||||
static inline uint16_t le16(const uint8_t *p);
|
||||
static void getMAC(char *addr, uint8_t* data, uint16_t offset);
|
||||
static void getMAC(uint8_t* mac, const uint8_t* data, uint16_t offset);
|
||||
static void pwnSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void beaconSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
//static void rawSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
#define POLISH_POTATO
|
||||
|
||||
//#define DEVELOPER
|
||||
|
||||
//// BOARD TARGETS
|
||||
//#define MARAUDER_M5STICKC
|
||||
//#define MARAUDER_M5STICKCP2
|
||||
@@ -138,6 +140,10 @@
|
||||
#define USE_SD
|
||||
#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
#define HAS_NIMBLE_2
|
||||
#define HAS_IDF_3
|
||||
//#define HAS_C5_SD
|
||||
#define HAS_SIMPLEX_DISPLAY
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V7
|
||||
@@ -155,6 +161,8 @@
|
||||
#define USE_SD
|
||||
#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
#define HAS_NIMBLE_2
|
||||
#define HAS_IDF_3
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V7_1
|
||||
@@ -173,6 +181,7 @@
|
||||
#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
#define HAS_PSRAM
|
||||
//#define HAS_NIMBLE_2
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_REV_FEATHER
|
||||
@@ -205,6 +214,9 @@
|
||||
#define USE_SD
|
||||
#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
#define HAS_NIMBLE_2
|
||||
#define HAS_IDF_3
|
||||
#define HAS_C5_SD
|
||||
#endif
|
||||
|
||||
#if defined(MARAUDER_V6) || defined(MARAUDER_V6_1)
|
||||
@@ -222,6 +234,9 @@
|
||||
#define USE_SD
|
||||
#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
#define HAS_NIMBLE_2
|
||||
#define HAS_IDF_3
|
||||
#define HAS_C5_SD
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_CYD_MICRO
|
||||
@@ -241,6 +256,7 @@
|
||||
#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
#define HAS_CYD_TOUCH
|
||||
//#define HAS_NIMBLE_2
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_CYD_2USB
|
||||
@@ -261,6 +277,7 @@
|
||||
#define HAS_GPS
|
||||
#define HAS_CYD_TOUCH
|
||||
#define HAS_CYD_PORTRAIT
|
||||
//#define HAS_NIMBLE_2
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_CYD_3_5_INCH
|
||||
@@ -282,6 +299,7 @@
|
||||
//#define HAS_CYD_TOUCH
|
||||
#define HAS_SEPARATE_SD
|
||||
#define HAS_CYD_PORTRAIT
|
||||
//#define HAS_NIMBLE_2
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_CYD_GUITION
|
||||
@@ -301,6 +319,7 @@
|
||||
#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
//#define HAS_CYD_TOUCH
|
||||
//#define HAS_NIMBLE_2
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_KIT
|
||||
@@ -317,6 +336,9 @@
|
||||
#define USE_SD
|
||||
#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
#define HAS_NIMBLE_2
|
||||
#define HAS_IDF_3
|
||||
#define HAS_C5_SD
|
||||
#endif
|
||||
|
||||
#ifdef GENERIC_ESP32
|
||||
@@ -330,6 +352,7 @@
|
||||
//#define HAS_SD
|
||||
//#define HAS_TEMP_SENSOR
|
||||
//#define HAS_GPS
|
||||
//#define HAS_NIMBLE_2
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_FLIPPER
|
||||
@@ -376,6 +399,8 @@
|
||||
#define USE_SD
|
||||
//#define HAS_TEMP_SENSOR
|
||||
//#define HAS_GPS
|
||||
#define HAS_NIMBLE_2
|
||||
#define HAS_IDF_3
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_DEV_BOARD_PRO
|
||||
@@ -390,6 +415,8 @@
|
||||
#define USE_SD
|
||||
//#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
#define HAS_NIMBLE_2
|
||||
#define HAS_IDF_3
|
||||
#endif
|
||||
|
||||
#ifdef XIAO_ESP32_S3
|
||||
@@ -421,6 +448,8 @@
|
||||
#define HAS_DUAL_BAND
|
||||
//#define HAS_PSRAM
|
||||
//#define HAS_TEMP_SENSOR
|
||||
#define HAS_NIMBLE_2
|
||||
#define HAS_IDF_3
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V8
|
||||
@@ -441,6 +470,8 @@
|
||||
#define HAS_DUAL_BAND
|
||||
#define HAS_PSRAM
|
||||
//#define HAS_TEMP_SENSOR
|
||||
#define HAS_NIMBLE_2
|
||||
#define HAS_IDF_3
|
||||
#endif
|
||||
//// END BOARD FEATURES
|
||||
|
||||
@@ -2538,6 +2569,36 @@
|
||||
#define SD_MOSI TFT_MOSI
|
||||
#define SD_SCK TFT_SCLK
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V4
|
||||
#define SD_MISO TFT_MISO
|
||||
#define SD_MOSI TFT_MOSI
|
||||
#define SD_SCK TFT_SCLK
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V6
|
||||
#define SD_MISO TFT_MISO
|
||||
#define SD_MOSI TFT_MOSI
|
||||
#define SD_SCK TFT_SCLK
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V6_1
|
||||
#define SD_MISO TFT_MISO
|
||||
#define SD_MOSI TFT_MOSI
|
||||
#define SD_SCK TFT_SCLK
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_KIT
|
||||
#define SD_MISO TFT_MISO
|
||||
#define SD_MOSI TFT_MOSI
|
||||
#define SD_SCK TFT_SCLK
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_MINI
|
||||
#define SD_MISO TFT_MISO
|
||||
#define SD_MOSI TFT_MOSI
|
||||
#define SD_SCK TFT_SCLK
|
||||
#endif
|
||||
#endif
|
||||
//// END STUPID CYD STUFF
|
||||
|
||||
|
||||
@@ -154,10 +154,21 @@ void backlightOff() {
|
||||
|
||||
void setup()
|
||||
{
|
||||
#ifndef HAS_DUAL_BAND
|
||||
randomSeed(esp_random());
|
||||
|
||||
#ifndef DEVELOPER
|
||||
esp_log_level_set("*", ESP_LOG_NONE);
|
||||
#endif
|
||||
|
||||
#ifndef HAS_IDF_3
|
||||
esp_spiram_init();
|
||||
#endif
|
||||
|
||||
Serial.begin(115200);
|
||||
|
||||
while(!Serial)
|
||||
delay(10);
|
||||
|
||||
#ifdef HAS_C5_SD
|
||||
Serial.println("Starting shared SPI for C5 SD configuration...");
|
||||
sharedSPI.begin(SD_SCK, SD_MISO, SD_MOSI);
|
||||
@@ -198,21 +209,30 @@ void setup()
|
||||
delay(10);
|
||||
#endif
|
||||
|
||||
Serial.begin(115200);
|
||||
//Serial.begin(115200);
|
||||
|
||||
while(!Serial)
|
||||
delay(10);
|
||||
//while(!Serial)
|
||||
// delay(10);
|
||||
|
||||
Serial.println("ESP-IDF version is: " + String(esp_get_idf_version()));
|
||||
|
||||
#ifdef HAS_PSRAM
|
||||
if (psramInit()) {
|
||||
Serial.println("PSRAM is correctly initialized");
|
||||
Serial.println(F("PSRAM is correctly initialized"));
|
||||
} else {
|
||||
Serial.println("PSRAM not available");
|
||||
Serial.println(F("PSRAM not available"));
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAS_SIMPLEX_DISPLAY
|
||||
#if defined(HAS_SD)
|
||||
// Do some SD stuff
|
||||
if(!sd_obj.initSD())
|
||||
Serial.println(F("SD Card NOT Supported"));
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.RunSetup();
|
||||
display_obj.tft.setTextColor(TFT_WHITE, TFT_BLACK);
|
||||
@@ -243,7 +263,7 @@ void setup()
|
||||
|
||||
backlightOff();
|
||||
|
||||
Serial.println("Headless Mode enabled");
|
||||
Serial.println(F("Headless Mode enabled"));
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
@@ -251,11 +271,14 @@ void setup()
|
||||
settings_obj.begin();
|
||||
|
||||
buffer_obj = Buffer();
|
||||
#if defined(HAS_SD)
|
||||
// Do some SD stuff
|
||||
if(!sd_obj.initSD())
|
||||
Serial.println(F("SD Card NOT Supported"));
|
||||
|
||||
#ifndef HAS_SIMPLEX_DISPLAY
|
||||
#if defined(HAS_SD)
|
||||
// Do some SD stuff
|
||||
if(!sd_obj.initSD())
|
||||
Serial.println(F("SD Card NOT Supported"));
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
wifi_scan_obj.RunSetup();
|
||||
|
||||
@@ -56,6 +56,25 @@ uint8_t getDRAMUsagePercent() {
|
||||
}
|
||||
#endif
|
||||
|
||||
String hexDump(const uint8_t *buf, size_t len) {
|
||||
String out;
|
||||
out.reserve(len * 3); // "FF " per byte (approx)
|
||||
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
if (buf[i] < 0x10) {
|
||||
out += '0';
|
||||
}
|
||||
out += String(buf[i], HEX);
|
||||
|
||||
if (i < len - 1) {
|
||||
out += ' ';
|
||||
}
|
||||
}
|
||||
|
||||
out.toUpperCase();
|
||||
return out;
|
||||
}
|
||||
|
||||
String byteArrayToHexString(const std::vector<uint8_t>& byteArray) {
|
||||
String result;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user