Compare commits

...

18 Commits

Author SHA1 Message Date
Just Call Me Koko
4fb65cd186 Merge pull request #1081 from justcallmekoko/develop
Remove verbose print statements
2026-01-25 17:46:33 -05:00
Just Call Me Koko
419dd434e5 Remove verbose print statements 2026-01-25 17:16:15 -05:00
Just Call Me Koko
44f51d2f70 Merge pull request #1077 from justcallmekoko/develop
Add prints
2026-01-25 01:18:47 -05:00
Just Call Me Koko
c4c652741e Adjust IDF versions for standard ESP32 2026-01-25 00:38:21 -05:00
Just Call Me Koko
4ec9d50562 Adjust IDF version 2026-01-24 23:02:40 -05:00
Just Call Me Koko
014cae1cb0 Fix macros 2026-01-24 11:13:19 -05:00
Just Call Me Koko
832e99cccd Only v6 NimBLE update 2026-01-24 11:06:50 -05:00
Just Call Me Koko
1648effcb2 Add prints 2026-01-23 22:31:53 -05:00
Just Call Me Koko
a1b02691d0 Merge pull request #1075 from justcallmekoko/develop
Update all standard ESP32 NimBLE
2026-01-23 16:01:50 -05:00
Just Call Me Koko
85c4802322 Update NimBLE in nightly build workflow 2026-01-23 15:46:28 -05:00
Just Call Me Koko
4ea8a44931 Update NimBLE in build workflow 2026-01-23 15:35:50 -05:00
Just Call Me Koko
f82b6c5ce3 Update all standard ESP32 NimBLE 2026-01-23 15:21:15 -05:00
Just Call Me Koko
a54a311995 Merge pull request #1073 from justcallmekoko/develop
Fix airtag sniffing crash
2026-01-22 21:09:52 -05:00
Just Call Me Koko
e689858891 Fix airtag sniffing crash 2026-01-22 18:58:08 -05:00
Just Call Me Koko
ebcfc9392e Merge pull request #1072 from justcallmekoko/develop
Bluetooth can deinit on ESP32 C5
2026-01-22 09:48:27 -05:00
Just Call Me Koko
9173785218 Bluetooth can deinit on ESP32 C5 2026-01-22 09:17:16 -05:00
Just Call Me Koko
64f6b4c582 Merge pull request #1071 from justcallmekoko/develop
Update NimBLE for ESP32-C5
2026-01-22 08:42:36 -05:00
Just Call Me Koko
6d2d1d7a0d Update NimBLE for ESP32-C5 2026-01-21 21:24:20 -05:00
8 changed files with 374 additions and 239 deletions

View File

@@ -19,23 +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: "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

View File

@@ -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

View File

@@ -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
/*

View File

@@ -599,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();
@@ -630,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();
@@ -652,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();
@@ -661,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";
@@ -678,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();
@@ -697,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) {
@@ -708,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();
@@ -728,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();
@@ -739,7 +752,8 @@ 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();
@@ -748,7 +762,8 @@ void CommandLine::runCommand(String input) {
}
// SAE sniff
else if (cmd_args.get(0) == SNIFF_SAE_CMD) {
Serial.println("Starting SAE Commit sniff. Stop with " + (String)STOPSCAN_CMD);
Serial.print(F("Starting SAE Commit sniff. Stop with "));
Serial.println(STOPSCAN_CMD);
#ifdef HAS_SCREEN
display_obj.clearScreen();
menu_function_obj.drawStatusBar();
@@ -757,7 +772,8 @@ void CommandLine::runCommand(String input) {
}
// 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();
@@ -766,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();
@@ -775,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();
@@ -784,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();
@@ -793,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();
@@ -802,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();
@@ -844,7 +865,8 @@ void CommandLine::runCommand(String input) {
}
// MAC Tracking
else if (cmd_args.get(0) == MAC_TRACK_CMD) {
Serial.println("Starting MAC Tracker. Stop with " + (String)STOPSCAN_CMD);
Serial.print(F("Starting MAC Tracker. Stop with "));
Serial.println(STOPSCAN_CMD);
#ifdef HAS_SCREEN
display_obj.clearScreen();
menu_function_obj.drawStatusBar();
@@ -1097,7 +1119,8 @@ 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();
@@ -1105,7 +1128,8 @@ void CommandLine::runCommand(String input) {
wifi_scan_obj.StartScan(WIFI_ATTACK_FUNNY_BEACON, TFT_CYAN);
}
else if (attack_type == ATTACK_TYPE_SAE) {
Serial.println("Starting SAE Commit spam. Stop with " + (String)STOPSCAN_CMD);
Serial.print(F("Starting SAE Commit spam. Stop with "));
Serial.println(STOPSCAN_CMD);
#ifdef HAS_SCREEN
display_obj.clearScreen();
menu_function_obj.drawStatusBar();
@@ -1133,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();
@@ -1141,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();
@@ -1149,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();
@@ -1159,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();
@@ -1184,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();
@@ -1192,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
@@ -1205,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();
@@ -1217,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();
@@ -1229,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();
@@ -1241,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();
@@ -1253,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();
@@ -1265,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();
@@ -1286,7 +1322,8 @@ void CommandLine::runCommand(String input) {
#ifdef HAS_GPS
if (gps_obj.getGpsModuleStatus()) {
Serial.println("Starting BT Wardrive. Stop with " + (String)STOPSCAN_CMD);
Serial.print(F("Starting BT Wardrive. Stop with "));
Serial.println(STOPSCAN_CMD);
#ifdef HAS_SCREEN
display_obj.clearScreen();
menu_function_obj.drawStatusBar();
@@ -1306,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();
@@ -1351,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();
@@ -1361,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();
@@ -1469,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();
@@ -1546,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 {
@@ -1667,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) {
@@ -1718,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) {
@@ -1766,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) {
@@ -1852,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);
@@ -1862,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);
}*/
}

View File

@@ -75,7 +75,7 @@ extern "C" {
memcpy(&AdvData_Raw[i], Name, name_len);
i += name_len;
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
AdvData.addData(std::string((char *)AdvData_Raw, 7 + name_len));
#else
AdvData.addData(AdvData_Raw, 7 + name_len);
@@ -106,7 +106,7 @@ extern "C" {
//AdvData_Raw[i++] = 0x10; // Type ???
//esp_fill_random(&AdvData_Raw[i], 3);
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
AdvData.addData(std::string((char *)AdvData_Raw, 11));
#else
AdvData.addData(AdvData_Raw, 11);
@@ -140,7 +140,7 @@ extern "C" {
AdvData_Raw[i++] = (uint8_t)random(256);
AdvData_Raw[i++] = 0x00;
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
AdvData.addData(std::string((char *)AdvData_Raw, 21));
#else
AdvData.addData(AdvData_Raw, 21);
@@ -170,7 +170,7 @@ extern "C" {
AdvData_Raw[i++] = 0x43;
AdvData_Raw[i++] = (model >> 0x00) & 0xFF; // Watch Model / Color (?)
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
AdvData.addData(std::string((char *)AdvData_Raw, 15));
#else
AdvData.addData(AdvData_Raw, 15);
@@ -197,7 +197,7 @@ extern "C" {
AdvData_Raw[i++] = 0x0A;
AdvData_Raw[i++] = (rand() % 120) - 100; // -100 to +20 dBm
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
AdvData.addData(std::string((char *)AdvData_Raw, 14));
#else
AdvData.addData(AdvData_Raw, 14);
@@ -249,7 +249,7 @@ extern "C" {
AdvData_Raw[i++] = 0x80;
// Add the constructed Advertisement Data to the BLE advertisement
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
AdvData.addData(std::string((char *)AdvData_Raw, i));
#else
AdvData.addData(AdvData_Raw, i);
@@ -261,7 +261,7 @@ extern "C" {
case Airtag: {
for (int i = 0; i < airtags->size(); i++) {
if (airtags->get(i).selected) {
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
AdvData.addData(std::string((char*)airtags->get(i).payload.data(), airtags->get(i).payloadSize));
#else
AdvData.addData(airtags->get(i).payload.data(), airtags->get(i).payloadSize);
@@ -286,12 +286,17 @@ extern "C" {
//// https://github.com/Spooks4576
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
class bluetoothScanAllCallback: public NimBLEAdvertisedDeviceCallbacks {
void onResult(NimBLEAdvertisedDevice *advertisedDevice) {
extern WiFiScan wifi_scan_obj;
if (wifi_scan_obj.bt_pending_clear)
return;
wifi_scan_obj.bt_cb_busy = true;
int buf = 0;
@@ -299,54 +304,76 @@ extern "C" {
if ((wifi_scan_obj.currentScanMode == BT_SCAN_AIRTAG) ||
(wifi_scan_obj.currentScanMode == BT_SCAN_AIRTAG_MON)) {
#ifndef HAS_DUAL_BAND
//Serial.println("Getting payload length...");
//Serial.flush();
#ifndef HAS_NIMBLE_2
uint8_t* payLoad = advertisedDevice->getPayload();
size_t len = advertisedDevice->getPayloadLength();
if (!payLoad) {
wifi_scan_obj.bt_cb_busy = false;
return;
}
#else
const std::vector<unsigned char>& payLoad = advertisedDevice->getPayload();
size_t len = payLoad.size();
#endif
//Serial.println("Checking for airtag bytes. Len: " + (String)len + "...");
//Serial.flush();
bool match = false;
for (int i = 0; i <= len - 4; i++) {
if (payLoad[i] == 0x1E && payLoad[i+1] == 0xFF && payLoad[i+2] == 0x4C && payLoad[i+3] == 0x00) {
match = true;
break;
}
if (payLoad[i] == 0x4C && payLoad[i+1] == 0x00 && payLoad[i+2] == 0x12 && payLoad[i+3] == 0x19) {
match = true;
break;
if (len >= 4) {
for (size_t i = 0; i <= len - 4; i++) {
if (payLoad[i] == 0x1E && payLoad[i+1] == 0xFF && payLoad[i+2] == 0x4C && payLoad[i+3] == 0x00) {
match = true;
break;
}
if (payLoad[i] == 0x4C && payLoad[i+1] == 0x00 && payLoad[i+2] == 0x12 && payLoad[i+3] == 0x19) {
match = true;
break;
}
}
} else {
wifi_scan_obj.bt_cb_busy = false;
return;
}
int rssi = advertisedDevice->getRSSI();
if (match) {
//Serial.println("Getting RSSI...");
//Serial.flush();
int rssi = advertisedDevice->getRSSI();
//Serial.println("Converting MAC to string...");
//Serial.flush();
String mac = advertisedDevice->getAddress().toString().c_str();
mac.toUpperCase();
//Serial.println("Checking airtags for existing airtag...");
//Serial.flush();
for (int i = 0; i < airtags->size(); i++) {
// Airtag is in list already. Update RSSI
//Serial.println("Found existing airtag. Updating...");
//Serial.flush();
if (mac == airtags->get(i).mac) {
AirTag old_airtag = airtags->get(i);
old_airtag.rssi = rssi;
old_airtag.last_seen = millis();
airtags->set(i, old_airtag);
wifi_scan_obj.bt_cb_busy = false;
return;
}
}
//Serial.println("Printing output to serial...");
//Serial.flush();
Serial.print(rssi);
Serial.print(F(" MAC: "));
Serial.println(mac);
Serial.print(F("Len: "));
Serial.print(F("Payload Len: "));
Serial.print(len);
Serial.print(F(" Payload: "));
for (size_t i = 0; i < len; i++) {
Serial.printf("%02X ", payLoad[i]);
}
Serial.println("\n");
//Serial.println("Creating new airtag for list...");
//Serial.flush();
AirTag airtag;
airtag.mac = mac;
airtag.payload.assign(payLoad, payLoad + len);
@@ -356,14 +383,15 @@ extern "C" {
airtags->add(airtag);
if (wifi_scan_obj.currentScanMode != BT_SCAN_AIRTAG_MON) {
#ifdef HAS_SCREEN
//Serial.println("Printing airtag to display...");
//Serial.flush();
display_string.concat((String)rssi);
display_string.concat(" MAC: ");
display_string.concat(mac);
uint8_t temp_len = display_string.length();
for (uint8_t i = 0; i < 40 - temp_len; i++)
int temp_len = display_string.length();
for (int i = 0; i < 40 - temp_len; i++)
{
display_string.concat(" ");
}
@@ -373,7 +401,7 @@ extern "C" {
}
}
else if (wifi_scan_obj.currentScanMode == BT_SCAN_FLIPPER) {
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
uint8_t* payLoad = advertisedDevice->getPayload();
size_t len = advertisedDevice->getPayloadLength();
#else
@@ -407,8 +435,10 @@ extern "C" {
mac.toUpperCase();
for (int i = 0; i < flippers->size(); i++) {
if (mac == flippers->get(i).mac)
if (mac == flippers->get(i).mac) {
wifi_scan_obj.bt_cb_busy = false;
return;
}
}
int rssi = advertisedDevice->getRSSI();
@@ -485,8 +515,10 @@ extern "C" {
wifi_scan_obj.copyNimbleMac(advertisedDevice->getAddress(), mac_char);
if (wifi_scan_obj.currentScanMode != BT_SCAN_WAR_DRIVE_CONT) {
if (wifi_scan_obj.seen_mac(mac_char))
if (wifi_scan_obj.seen_mac(mac_char)) {
wifi_scan_obj.bt_cb_busy = false;
return;
}
}
Serial.print(F("Device: "));
@@ -563,7 +595,7 @@ extern "C" {
}
}
else if (wifi_scan_obj.currentScanMode == BT_SCAN_FLOCK) {
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
uint8_t* payLoad = advertisedDevice->getPayload();
size_t len = advertisedDevice->getPayloadLength();
#else
@@ -733,10 +765,12 @@ extern "C" {
unsigned char mac_char[6];
wifi_scan_obj.copyNimbleMac(advertisedDevice->getAddress(), mac_char);
if (wifi_scan_obj.seen_mac(mac_char))
if (wifi_scan_obj.seen_mac(mac_char)) {
wifi_scan_obj.bt_cb_busy = false;
return;
}
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
uint8_t* payLoad = advertisedDevice->getPayload();
size_t len = advertisedDevice->getPayloadLength();
#else
@@ -962,6 +996,7 @@ extern "C" {
int frame_check = wifi_scan_obj.update_mac_entry(mac_char, advertisedDevice->getRSSI(), true);
}
wifi_scan_obj.bt_cb_busy = false;
return;
}
};
@@ -971,6 +1006,11 @@ extern "C" {
void onResult(const NimBLEAdvertisedDevice* advertisedDevice) override {
extern WiFiScan wifi_scan_obj;
if (wifi_scan_obj.bt_pending_clear)
return;
wifi_scan_obj.bt_cb_busy = true;
int buf = 0;
@@ -978,24 +1018,33 @@ extern "C" {
if ((wifi_scan_obj.currentScanMode == BT_SCAN_AIRTAG) ||
(wifi_scan_obj.currentScanMode == BT_SCAN_AIRTAG_MON)) {
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
uint8_t* payLoad = advertisedDevice->getPayload();
size_t len = advertisedDevice->getPayloadLength();
if (!payLoad) {
wifi_scan_obj.bt_cb_busy = false;
return;
}
#else
const std::vector<unsigned char>& payLoad = advertisedDevice->getPayload();
size_t len = payLoad.size();
#endif
bool match = false;
for (int i = 0; i <= len - 4; i++) {
if (payLoad[i] == 0x1E && payLoad[i+1] == 0xFF && payLoad[i+2] == 0x4C && payLoad[i+3] == 0x00) {
match = true;
break;
}
if (payLoad[i] == 0x4C && payLoad[i+1] == 0x00 && payLoad[i+2] == 0x12 && payLoad[i+3] == 0x19) {
match = true;
break;
if (len >= 4) {
for (size_t i = 0; i <= len - 4; i++) {
if (payLoad[i] == 0x1E && payLoad[i+1] == 0xFF && payLoad[i+2] == 0x4C && payLoad[i+3] == 0x00) {
match = true;
break;
}
if (payLoad[i] == 0x4C && payLoad[i+1] == 0x00 && payLoad[i+2] == 0x12 && payLoad[i+3] == 0x19) {
match = true;
break;
}
}
} else {
wifi_scan_obj.bt_cb_busy = false;
return;
}
int rssi = advertisedDevice->getRSSI();
@@ -1011,6 +1060,7 @@ extern "C" {
old_airtag.rssi = rssi;
old_airtag.last_seen = millis();
airtags->set(i, old_airtag);
wifi_scan_obj.bt_cb_busy = false;
return;
}
}
@@ -1020,15 +1070,11 @@ extern "C" {
Serial.println(mac);
Serial.print(F("Len: "));
Serial.print(len);
Serial.print(F(" Payload: "));
for (size_t i = 0; i < len; i++) {
Serial.printf("%02X ", payLoad[i]);
}
Serial.println("\n");
AirTag airtag;
airtag.mac = mac;
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
airtag.payload.assign(payLoad, payLoad + len);
airtag.payloadSize = len;
#else
@@ -1057,7 +1103,7 @@ extern "C" {
}
}
else if (wifi_scan_obj.currentScanMode == BT_SCAN_FLIPPER) {
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
uint8_t* payLoad = advertisedDevice->getPayload();
size_t len = advertisedDevice->getPayloadLength();
#else
@@ -1091,8 +1137,10 @@ extern "C" {
mac.toUpperCase();
for (int i = 0; i < flippers->size(); i++) {
if (mac == flippers->get(i).mac)
if (mac == flippers->get(i).mac) {
wifi_scan_obj.bt_cb_busy = false;
return;
}
}
int rssi = advertisedDevice->getRSSI();
@@ -1168,8 +1216,10 @@ extern "C" {
wifi_scan_obj.copyNimbleMac(advertisedDevice->getAddress(), mac_char);
if (wifi_scan_obj.currentScanMode != BT_SCAN_WAR_DRIVE_CONT) {
if (wifi_scan_obj.seen_mac(mac_char))
if (wifi_scan_obj.seen_mac(mac_char)) {
wifi_scan_obj.bt_cb_busy = false;
return;
}
}
Serial.print(F("Device: "));
@@ -1193,22 +1243,6 @@ extern "C" {
else {
display_string.concat(" | GPS: No Fix");
}
/*#ifdef HAS_SCREEN
uint8_t temp_len = display_string.length();
for (uint8_t i = 0; i < 40 - temp_len; i++)
{
display_string.concat(" ");
}
Serial.println();
while (display_obj.printing)
delay(1);
display_obj.loading = true;
display_obj.display_buffer->add(display_string);
display_obj.loading = false;
#endif*/
String wardrive_line = (String)advertisedDevice->getAddress().toString().c_str() + ",,[BLE]," + gps_obj.getDatetime() + ",0," + (String)advertisedDevice->getRSSI() + "," + gps_obj.getLat() + "," + gps_obj.getLon() + "," + gps_obj.getAlt() + "," + gps_obj.getAccuracy() + ",BLE\n";
Serial.print(wardrive_line);
@@ -1245,7 +1279,7 @@ extern "C" {
}
}
else if (wifi_scan_obj.currentScanMode == BT_SCAN_FLOCK) {
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
uint8_t* payLoad = advertisedDevice->getPayload();
size_t len = advertisedDevice->getPayloadLength();
#else
@@ -1415,10 +1449,12 @@ extern "C" {
unsigned char mac_char[6];
wifi_scan_obj.copyNimbleMac(advertisedDevice->getAddress(), mac_char);
if (wifi_scan_obj.seen_mac(mac_char))
if (wifi_scan_obj.seen_mac(mac_char)) {
wifi_scan_obj.bt_cb_busy = false;
return;
}
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
uint8_t* payLoad = advertisedDevice->getPayload();
size_t len = advertisedDevice->getPayloadLength();
#else
@@ -1643,6 +1679,9 @@ extern "C" {
int frame_check = wifi_scan_obj.update_mac_entry(mac_char, advertisedDevice->getRSSI(), true);
}
wifi_scan_obj.bt_cb_busy = false;
return;
}
};
@@ -1654,14 +1693,6 @@ WiFiScan::WiFiScan()
{
}
/*String WiFiScan::macToString(const Station& station) {
char macStr[18]; // 6 pairs of hex digits + 5 colons + null terminator
snprintf(macStr, sizeof(macStr), "%02X:%02X:%02X:%02X:%02X:%02X",
station.mac[0], station.mac[1], station.mac[2],
station.mac[3], station.mac[4], station.mac[5]);
return String(macStr);
}*/
void WiFiScan::RunSetup() {
if (ieee80211_raw_frame_sanity_check(31337, 0, 0) == 1)
this->wsl_bypass_enabled = true;
@@ -1733,8 +1764,9 @@ void WiFiScan::RunSetup() {
this->ble_initialized = true;
this->shutdownBLE();
esp_wifi_init(&cfg);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -2244,7 +2276,7 @@ void WiFiScan::startWiFiAttacks(uint8_t scan_mode, uint16_t color, String title_
packets_sent = 0;
esp_wifi_init(&cfg);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
#endif
esp_wifi_set_storage(WIFI_STORAGE_RAM);
@@ -2322,6 +2354,8 @@ bool WiFiScan::shutdownWiFi() {
bool WiFiScan::shutdownBLE() {
#ifdef HAS_BT
this->bt_cb_busy = false;
this->bt_pending_clear = false;
if (this->ble_initialized) {
Serial.println(F("Shutting down BLE"));
pAdvertising->stop();
@@ -2329,9 +2363,9 @@ bool WiFiScan::shutdownBLE() {
pBLEScan->clearResults();
#ifndef HAS_DUAL_BAND
//#ifndef HAS_DUAL_BAND
NimBLEDevice::deinit();
#endif
//#endif
this->_analyzer_value = 0;
this->bt_frames = 0;
@@ -2524,7 +2558,7 @@ void WiFiScan::StopScan(uint8_t scan_mode)
void WiFiScan::getMAC(bool get_sta, uint8_t* mac) {
char *buf;
esp_wifi_init(&cfg2);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
#endif
esp_wifi_set_storage(WIFI_STORAGE_RAM);
@@ -2561,7 +2595,7 @@ bool WiFiScan::mac_cmp(uint8_t addr1[6], uint8_t addr2[6]) {
#ifdef HAS_BT
void WiFiScan::copyNimbleMac(const BLEAddress &addr, unsigned char out[6]) {
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
const uint8_t* bytes = addr.getNative(); // NimBLE gives MAC as uint8_t[6]
#else
const ble_addr_t* base_addr = addr.getBase();
@@ -3504,7 +3538,7 @@ void WiFiScan::RunEvilPortal(uint8_t scan_mode, uint16_t color)
display_obj.setupScrollArea(display_obj.TOP_FIXED_AREA_2, BOT_FIXED_AREA);
#endif
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_init(&cfg);
//esp_wifi_set_country(&country);
#endif
@@ -3572,7 +3606,7 @@ void WiFiScan::RunAPScan(uint8_t scan_mode, uint16_t color)
esp_event_loop_create_default();
esp_wifi_init(&cfg2);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -4276,7 +4310,7 @@ void WiFiScan::RunPacketMonitor(uint8_t scan_mode, uint16_t color)
Serial.println(F("Running packet scan..."));
esp_wifi_init(&cfg2);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -4359,7 +4393,7 @@ void WiFiScan::RunEapolScan(uint8_t scan_mode, uint16_t color)
#endif
esp_wifi_init(&cfg);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -4429,7 +4463,7 @@ void WiFiScan::RunMimicFlood(uint8_t scan_mode, uint16_t color) {
packets_sent = 0;
esp_wifi_init(&cfg);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -4481,7 +4515,7 @@ void WiFiScan::RunPineScan(uint8_t scan_mode, uint16_t color)
#endif
esp_wifi_init(&cfg2);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -4535,7 +4569,7 @@ void WiFiScan::RunMultiSSIDScan(uint8_t scan_mode, uint16_t color)
#endif
esp_wifi_init(&cfg2);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -4586,7 +4620,7 @@ void WiFiScan::RunPwnScan(uint8_t scan_mode, uint16_t color)
#endif
esp_wifi_init(&cfg2);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -4628,13 +4662,13 @@ void WiFiScan::executeSourApple() {
delay(60);
pAdvertising->stop();
#ifndef HAS_DUAL_BAND
//#ifndef HAS_DUAL_BAND
if ((now_time - this->last_sour_apple_update > 1000) || (this->last_sour_apple_update == 0)) {
this->last_sour_apple_update = now_time;
NimBLEDevice::deinit();
this->ble_initialized = false;
}
#endif
//#endif
#endif
}
@@ -4683,9 +4717,9 @@ void WiFiScan::executeSpoofAirtag() {
delay(10);
pAdvertising->stop();
#ifndef HAS_DUAL_BAND
//#ifndef HAS_DUAL_BAND
NimBLEDevice::deinit();
#endif
//#endif
break;
}
@@ -4715,9 +4749,9 @@ void WiFiScan::executeSwiftpairSpam(EBLEPayloadType type) {
delay(10);
pAdvertising->stop();
#ifndef HAS_DUAL_BAND
//#ifndef HAS_DUAL_BAND
NimBLEDevice::deinit();
#endif
//#endif
#endif
}
@@ -4835,7 +4869,7 @@ void WiFiScan::executeWarDrive() {
// Start a BLE scan
if (currentScanMode == WIFI_SCAN_WAR_DRIVE) {
#ifdef HAS_BT
#ifdef HAS_DUAL_BAND
#ifdef HAS_NIMBLE_2
pBLEScan->start(500, false, false); // Scan is in MS
#else
pBLEScan->start(1, scanCompleteCB, false); // Scan is in Seconds
@@ -4954,7 +4988,7 @@ void WiFiScan::RunBeaconScan(uint8_t scan_mode, uint16_t color)
if (scan_mode != WIFI_SCAN_WAR_DRIVE) {
esp_wifi_init(&cfg2);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -5029,7 +5063,7 @@ void WiFiScan::RunStationScan(uint8_t scan_mode, uint16_t color)
} else {
Serial.println(F("Wi-Fi init succeeded with custom config."));
}
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -5101,7 +5135,7 @@ void WiFiScan::RunRawScan(uint8_t scan_mode, uint16_t color)
#endif
esp_wifi_init(&cfg2);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -5152,7 +5186,7 @@ void WiFiScan::RunDeauthScan(uint8_t scan_mode, uint16_t color)
#endif
esp_wifi_init(&cfg2);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -5212,7 +5246,7 @@ void WiFiScan::RunSAEScan(uint8_t scan_mode, uint16_t color) {
esp_wifi_init(&cfg2);
else
esp_wifi_init(&cfg);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -5295,7 +5329,7 @@ void WiFiScan::RunProbeScan(uint8_t scan_mode, uint16_t color)
#endif
esp_wifi_init(&cfg2);
#ifdef HAS_DUAL_BAND
#ifdef HAS_IDF_3
esp_wifi_set_country(&country);
esp_event_loop_create_default();
#endif
@@ -5489,7 +5523,7 @@ void WiFiScan::RunBluetoothScan(uint8_t scan_mode, uint16_t color)
display_obj.setupScrollArea(display_obj.TOP_FIXED_AREA_2, BOT_FIXED_AREA);
#endif
if (scan_mode == BT_SCAN_ALL)
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
pBLEScan->setAdvertisedDeviceCallbacks(new bluetoothScanAllCallback(), false);
#else
pBLEScan->setScanCallbacks(new bluetoothScanAllCallback(), false);
@@ -5508,7 +5542,7 @@ void WiFiScan::RunBluetoothScan(uint8_t scan_mode, uint16_t color)
if ((scan_mode == BT_SCAN_AIRTAG) || (scan_mode == BT_SCAN_AIRTAG_MON))
this->clearAirtags();
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
pBLEScan->setAdvertisedDeviceCallbacks(new bluetoothScanAllCallback(), true);
#else
pBLEScan->setScanCallbacks(new bluetoothScanAllCallback(), true);
@@ -5557,13 +5591,13 @@ void WiFiScan::RunBluetoothScan(uint8_t scan_mode, uint16_t color)
display_obj.setupScrollArea(display_obj.TOP_FIXED_AREA_2, BOT_FIXED_AREA);
#endif
if (scan_mode != BT_SCAN_WAR_DRIVE_CONT)
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
pBLEScan->setAdvertisedDeviceCallbacks(new bluetoothScanAllCallback(), false);
#else
pBLEScan->setScanCallbacks(new bluetoothScanAllCallback(), false);
#endif
else
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
pBLEScan->setAdvertisedDeviceCallbacks(new bluetoothScanAllCallback(), true);
#else
pBLEScan->setScanCallbacks(new bluetoothScanAllCallback(), true);
@@ -5584,7 +5618,7 @@ void WiFiScan::RunBluetoothScan(uint8_t scan_mode, uint16_t color)
display_obj.tft.setTextColor(TFT_BLACK, TFT_DARKGREY);
display_obj.setupScrollArea(display_obj.TOP_FIXED_AREA_2, BOT_FIXED_AREA);
#endif
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
pBLEScan->setAdvertisedDeviceCallbacks(new bluetoothScanAllCallback(), false);
#else
pBLEScan->setScanCallbacks(new bluetoothScanAllCallback(), false);
@@ -5607,7 +5641,7 @@ void WiFiScan::RunBluetoothScan(uint8_t scan_mode, uint16_t color)
display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
display_obj.setupScrollArea(display_obj.TOP_FIXED_AREA_2, BOT_FIXED_AREA);
#endif
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
pBLEScan->setAdvertisedDeviceCallbacks(new bluetoothScanAllCallback(), false);
#else
pBLEScan->setScanCallbacks(new bluetoothScanAllCallback(), false);
@@ -5616,7 +5650,7 @@ void WiFiScan::RunBluetoothScan(uint8_t scan_mode, uint16_t color)
}
else if ((scan_mode == WIFI_SCAN_WAR_DRIVE) ||
(scan_mode == WIFI_SCAN_DETECT_FOLLOW)) {
#ifndef HAS_DUAL_BAND
#ifndef HAS_NIMBLE_2
pBLEScan->setAdvertisedDeviceCallbacks(new bluetoothScanAllCallback(), true);
#else
pBLEScan->setScanCallbacks(new bluetoothScanAllCallback(), true);
@@ -10753,7 +10787,7 @@ bool WiFiScan::checkHostPort(IPAddress ip, uint16_t port, uint16_t timeout) {
return false;
}
#ifndef HAS_DUAL_BAND
#ifndef HAS_IDF_3
bool WiFiScan::readARP(IPAddress targ_ip) {
// Convert IPAddress to ip4_addr_t using IP4_ADDR
ip4_addr_t test_ip;
@@ -10777,7 +10811,7 @@ bool WiFiScan::checkHostPort(IPAddress ip, uint16_t port, uint16_t timeout) {
bool WiFiScan::singleARP(IPAddress ip_addr) {
#ifndef HAS_DUAL_BAND
#ifndef HAS_IDF_3
void* netif = NULL;
tcpip_adapter_get_netif(TCPIP_ADAPTER_IF_STA, &netif);
struct netif* netif_interface = (struct netif*)netif;
@@ -10809,7 +10843,7 @@ bool WiFiScan::checkHostPort(IPAddress ip, uint16_t port, uint16_t timeout) {
String display_string = "";
String output_line = "";
#ifndef HAS_DUAL_BAND
#ifndef HAS_IDF_3
void* netif = NULL;
tcpip_adapter_get_netif(TCPIP_ADAPTER_IF_STA, &netif);
struct netif* netif_interface = (struct netif*)netif;
@@ -10954,7 +10988,7 @@ void WiFiScan::pingScan(uint8_t scan_mode) {
if (this->current_scan_ip != IPAddress(0, 0, 0, 0)) {
this->current_scan_ip = getNextIP(this->current_scan_ip, this->subnet);
#ifndef HAS_DUAL_BAND
#ifndef HAS_IDF_3
if (this->singleARP(this->current_scan_ip)) {
#else
if (this->isHostAlive(this->current_scan_ip)) {
@@ -11152,7 +11186,11 @@ void WiFiScan::main(uint32_t currentTime)
#ifdef HAS_BT
if (this->ble_scanning) {
pBLEScan->stop();
this->bt_pending_clear = true;
while (bt_cb_busy)
delay(100);
pBLEScan->clearResults();
this->bt_pending_clear = false;
this->ble_scanning = false;
}
else {
@@ -11177,7 +11215,7 @@ void WiFiScan::main(uint32_t currentTime)
this->pingScan();
}
else if (currentScanMode == WIFI_ARP_SCAN) {
#ifndef HAS_DUAL_BAND
#ifndef HAS_IDF_3
this->fullARP();
#endif
}
@@ -11210,13 +11248,25 @@ void WiFiScan::main(uint32_t currentTime)
initTime = millis();
#ifdef HAS_BT
this->bt_pending_clear = true;
//Serial.println("Stopping BLE...");
//Serial.flush();
pBLEScan->stop();
delay(5);
//Serial.println("Clearing results...");
//Serial.flush();
while (bt_cb_busy)
delay(100);
pBLEScan->clearResults();
this->bt_pending_clear = false;
//Serial.println("Starting BLE...");
//Serial.flush();
pBLEScan->start(0, scanCompleteCB, false);
#endif
#ifdef HAS_SCREEN
//Serial.println("Updating UI...");
//Serial.flush();
display_obj.tft.fillRect(0,
(STATUS_BAR_WIDTH * 2) + 1 + EXT_BUTTON_WIDTH,
TFT_WIDTH,
@@ -11227,6 +11277,8 @@ void WiFiScan::main(uint32_t currentTime)
display_obj.tft.setTextSize(1);
display_obj.tft.setTextColor(TFT_WHITE, TFT_BLACK);
//Serial.println("Printing Airtags to display...");
//Serial.flush();
for (int y = 0; y < airtags->size(); y++) {
float last_seen_sec = (millis() - airtags->get(y).last_seen) / 1000;
display_obj.tft.println((String)airtags->get(y).rssi + " " + (String)last_seen_sec + "s " + airtags->get(y).mac);

View File

@@ -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"
@@ -32,15 +32,15 @@
#include "mbedtls/bignum.h"
#include "mbedtls/ctr_drbg.h"
#include "mbedtls/ecp.h"
#ifndef HAS_DUAL_BAND
#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
@@ -223,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
@@ -662,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];
@@ -742,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, \

View File

@@ -140,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
@@ -157,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
@@ -175,6 +181,7 @@
#define HAS_TEMP_SENSOR
#define HAS_GPS
#define HAS_PSRAM
//#define HAS_NIMBLE_2
#endif
#ifdef MARAUDER_REV_FEATHER
@@ -207,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)
@@ -224,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
@@ -243,6 +256,7 @@
#define HAS_TEMP_SENSOR
#define HAS_GPS
#define HAS_CYD_TOUCH
//#define HAS_NIMBLE_2
#endif
#ifdef MARAUDER_CYD_2USB
@@ -263,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
@@ -284,6 +299,7 @@
//#define HAS_CYD_TOUCH
#define HAS_SEPARATE_SD
#define HAS_CYD_PORTRAIT
//#define HAS_NIMBLE_2
#endif
#ifdef MARAUDER_CYD_GUITION
@@ -303,6 +319,7 @@
#define HAS_TEMP_SENSOR
#define HAS_GPS
//#define HAS_CYD_TOUCH
//#define HAS_NIMBLE_2
#endif
#ifdef MARAUDER_KIT
@@ -319,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
@@ -332,6 +352,7 @@
//#define HAS_SD
//#define HAS_TEMP_SENSOR
//#define HAS_GPS
//#define HAS_NIMBLE_2
#endif
#ifdef MARAUDER_FLIPPER
@@ -378,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
@@ -392,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
@@ -423,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
@@ -443,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
@@ -2540,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

View File

@@ -160,10 +160,15 @@ void setup()
esp_log_level_set("*", ESP_LOG_NONE);
#endif
#ifndef HAS_DUAL_BAND
#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);
@@ -204,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);
@@ -249,7 +263,7 @@ void setup()
backlightOff();
Serial.println("Headless Mode enabled");
Serial.println(F("Headless Mode enabled"));
}
#endif
#endif
@@ -257,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();