mirror of
https://github.com/justcallmekoko/ESP32Marauder.git
synced 2026-01-26 11:14:51 -08:00
Compare commits
20 Commits
v1.7.0
...
captivepor
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e0eb37e082 | ||
|
|
17338427a1 | ||
|
|
a10bb164ac | ||
|
|
b43a79e036 | ||
|
|
1cdb9b4a17 | ||
|
|
c117eebc0f | ||
|
|
303a9d2eeb | ||
|
|
a101bfdddf | ||
|
|
a0ed27308e | ||
|
|
2362b8e8c5 | ||
|
|
0ca43eb403 | ||
|
|
b76de6c314 | ||
|
|
d0ac2f178b | ||
|
|
06a5de8cd9 | ||
|
|
e300489b77 | ||
|
|
fe27910096 | ||
|
|
50b96f696e | ||
|
|
a6ed8899c7 | ||
|
|
2c40d83e3a | ||
|
|
acef9d437c |
4
.github/workflows/build_parallel.yml
vendored
4
.github/workflows/build_parallel.yml
vendored
@@ -18,7 +18,7 @@ jobs:
|
||||
matrix:
|
||||
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" }
|
||||
- { name: "Flipper Zero Multi Board", flag: "MARAUDER_FLIPPER", fbqn: "esp32:esp32:esp32s3:PartitionScheme=min_spiffs,FlashSize=8M,PSRAM=enabled", file_name: "multiboardS3", tft: false, tft_file: "", build_dir: "esp32s3", addr: "0x0" }
|
||||
- { 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" }
|
||||
- { name: "OG Marauder", flag: "MARAUDER_V4", fbqn: "esp32:esp32:d32:PartitionScheme=min_spiffs", file_name: "og", tft: true, tft_file: "User_Setup_og_marauder.h", build_dir: "d32", addr: "0x1000" }
|
||||
- { 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" }
|
||||
- { 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" }
|
||||
@@ -129,7 +129,7 @@ jobs:
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: h2zero/NimBLE-Arduino
|
||||
ref: 1.3.5
|
||||
ref: 1.3.8
|
||||
path: CustomNimBLE-Arduino
|
||||
|
||||
- name: Install Adafruit_NeoPixel
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
//#include <User_Setup_pocket_sdr.h>
|
||||
//#include <User_Setup_dual_nrf24.h>
|
||||
//#include <User_Setup_pocket_sdr_2.h>
|
||||
//#include <User_Setup_pocket_sdr_3.h>
|
||||
//#include <User_Setup_cyd_micro.h>
|
||||
//#include <User_Setup_cyd_guition.h>
|
||||
//#include <User_Setup_cyd_2usb.h>
|
||||
|
||||
330
User_Setup_pocket_sdr_3.h
Normal file
330
User_Setup_pocket_sdr_3.h
Normal file
@@ -0,0 +1,330 @@
|
||||
// USER DEFINED SETTINGS
|
||||
// Set driver type, fonts to be loaded, pins used and SPI control method etc
|
||||
//
|
||||
// See the User_Setup_Select.h file if you wish to be able to define multiple
|
||||
// setups and then easily select which setup file is used by the compiler.
|
||||
//
|
||||
// If this file is edited correctly then all the library example sketches should
|
||||
// run without the need to make any more changes for a particular hardware setup!
|
||||
// Note that some sketches are designed for a particular TFT pixel width/height
|
||||
|
||||
|
||||
// ##################################################################################
|
||||
//
|
||||
// Section 1. Call up the right driver file and any options for it
|
||||
//
|
||||
// ##################################################################################
|
||||
|
||||
// Display type - only define if RPi display
|
||||
//#define RPI_DRIVER
|
||||
|
||||
// Only define one driver, the other ones must be commented out
|
||||
//#define ILI9341_DRIVER // OG Marauder
|
||||
#define ST7735_DRIVER // Marauder Mini // Define additional parameters below for this display
|
||||
//#define ILI9163_DRIVER // Define additional parameters below for this display
|
||||
//#define S6D02A1_DRIVER
|
||||
//#define RPI_ILI9486_DRIVER // 20MHz maximum SPI
|
||||
//#define HX8357D_DRIVER
|
||||
//#define ILI9481_DRIVER
|
||||
//#define ILI9486_DRIVER
|
||||
//#define ILI9488_DRIVER // WARNING: Do not connect ILI9488 display SDO to MISO if other devices share the SPI bus (TFT SDO does NOT tristate when CS is high)
|
||||
//#define ST7789_DRIVER // Full configuration option, define additional parameters below for this display
|
||||
//#define ST7789_2_DRIVER // Minimal configuration option, define additional parameters below for this display
|
||||
//#define R61581_DRIVER
|
||||
//#define RM68140_DRIVER
|
||||
//#define ST7796_DRIVER
|
||||
|
||||
// Some displays support SPI reads via the MISO pin, other displays have a single
|
||||
// bi-directional SDA pin and the library will try to read this via the MOSI line.
|
||||
// To use the SDA line for reading data from the TFT uncomment the following line:
|
||||
|
||||
// #define TFT_SDA_READ // This option is for ESP32 ONLY, tested with ST7789 display only
|
||||
|
||||
// For ST7789 and ILI9341 ONLY, define the colour order IF the blue and red are swapped on your display
|
||||
// Try ONE option at a time to find the correct colour order for your display
|
||||
|
||||
// #define TFT_RGB_ORDER TFT_RGB // Colour order Red-Green-Blue
|
||||
#define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red
|
||||
|
||||
// For M5Stack ESP32 module with integrated ILI9341 display ONLY, remove // in line below
|
||||
|
||||
// #define M5STACK
|
||||
|
||||
// For ST7789, ST7735 and ILI9163 ONLY, define the pixel width and height in portrait orientation
|
||||
#define TFT_WIDTH 80
|
||||
// #define TFT_WIDTH 128 // Marauder Mini
|
||||
// #define TFT_WIDTH 240 // ST7789 240 x 240 and 240 x 320
|
||||
#define TFT_HEIGHT 160
|
||||
// #define TFT_HEIGHT 128 // Marauder Mini
|
||||
// #define TFT_HEIGHT 240 // ST7789 240 x 240
|
||||
// #define TFT_HEIGHT 320 // ST7789 240 x 320
|
||||
|
||||
// For ST7735 ONLY, define the type of display, originally this was based on the
|
||||
// colour of the tab on the screen protector film but this is not always true, so try
|
||||
// out the different options below if the screen does not display graphics correctly,
|
||||
// e.g. colours wrong, mirror images, or tray pixels at the edges.
|
||||
// Comment out ALL BUT ONE of these options for a ST7735 display driver, save this
|
||||
// this User_Setup file, then rebuild and upload the sketch to the board again:
|
||||
|
||||
// #define ST7735_INITB
|
||||
// #define ST7735_GREENTAB
|
||||
// #define ST7735_GREENTAB2
|
||||
// #define ST7735_GREENTAB3
|
||||
// #define ST7735_GREENTAB128 // For 128 x 128 display
|
||||
// #define ST7735_GREENTAB160x80 // For 160 x 80 display (BGR, inverted, 26 offset)
|
||||
// #define ST7735_REDTAB
|
||||
// #define ST7735_BLACKTAB
|
||||
#define ST7735_REDTAB160x80 // For 160 x 80 display with 24 pixel offset
|
||||
|
||||
// If colours are inverted (white shows as black) then uncomment one of the next
|
||||
// 2 lines try both options, one of the options should correct the inversion.
|
||||
|
||||
// #define TFT_INVERSION_ON
|
||||
#define TFT_INVERSION_OFF
|
||||
|
||||
// If a backlight control signal is available then define the TFT_BL pin in Section 2
|
||||
// below. The backlight will be turned ON when tft.begin() is called, but the library
|
||||
// needs to know if the LEDs are ON with the pin HIGH or LOW. If the LEDs are to be
|
||||
// driven with a PWM signal or turned OFF/ON then this must be handled by the user
|
||||
// sketch. e.g. with digitalWrite(TFT_BL, LOW);
|
||||
|
||||
#define TFT_BACKLIGHT_ON LOW // HIGH or LOW are options
|
||||
|
||||
// ##################################################################################
|
||||
//
|
||||
// Section 2. Define the pins that are used to interface with the display here
|
||||
//
|
||||
// ##################################################################################
|
||||
|
||||
// We must use hardware SPI, a minimum of 3 GPIO pins is needed.
|
||||
// Typical setup for ESP8266 NodeMCU ESP-12 is :
|
||||
//
|
||||
// Display SDO/MISO to NodeMCU pin D6 (or leave disconnected if not reading TFT)
|
||||
// Display LED to NodeMCU pin VIN (or 5V, see below)
|
||||
// Display SCK to NodeMCU pin D5
|
||||
// Display SDI/MOSI to NodeMCU pin D7
|
||||
// Display DC (RS/AO)to NodeMCU pin D3
|
||||
// Display RESET to NodeMCU pin D4 (or RST, see below)
|
||||
// Display CS to NodeMCU pin D8 (or GND, see below)
|
||||
// Display GND to NodeMCU pin GND (0V)
|
||||
// Display VCC to NodeMCU 5V or 3.3V
|
||||
//
|
||||
// The TFT RESET pin can be connected to the NodeMCU RST pin or 3.3V to free up a control pin
|
||||
//
|
||||
// The DC (Data Command) pin may be labeled AO or RS (Register Select)
|
||||
//
|
||||
// With some displays such as the ILI9341 the TFT CS pin can be connected to GND if no more
|
||||
// SPI devices (e.g. an SD Card) are connected, in this case comment out the #define TFT_CS
|
||||
// line below so it is NOT defined. Other displays such at the ST7735 require the TFT CS pin
|
||||
// to be toggled during setup, so in these cases the TFT_CS line must be defined and connected.
|
||||
//
|
||||
// The NodeMCU D0 pin can be used for RST
|
||||
//
|
||||
//
|
||||
// Note: only some versions of the NodeMCU provide the USB 5V on the VIN pin
|
||||
// If 5V is not available at a pin you can use 3.3V but backlight brightness
|
||||
// will be lower.
|
||||
|
||||
|
||||
// ###### EDIT THE PIN NUMBERS IN THE LINES FOLLOWING TO SUIT YOUR ESP8266 SETUP ######
|
||||
|
||||
// For NodeMCU - use pin numbers in the form PIN_Dx where Dx is the NodeMCU pin designation
|
||||
//#define TFT_CS PIN_D8 // Chip select control pin D8
|
||||
//#define TFT_DC PIN_D3 // Data Command control pin
|
||||
//#define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line)
|
||||
//#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V
|
||||
|
||||
//#define TFT_BL PIN_D1 // LED back-light (only for ST7789 with backlight control pin)
|
||||
|
||||
//#define TOUCH_CS PIN_D2 // Chip select pin (T_CS) of touch screen
|
||||
|
||||
//#define TFT_WR PIN_D2 // Write strobe for modified Raspberry Pi TFT only
|
||||
|
||||
|
||||
// ###### FOR ESP8266 OVERLAP MODE EDIT THE PIN NUMBERS IN THE FOLLOWING LINES ######
|
||||
|
||||
// Overlap mode shares the ESP8266 FLASH SPI bus with the TFT so has a performance impact
|
||||
// but saves pins for other functions. It is best not to connect MISO as some displays
|
||||
// do not tristate that line wjen chip select is high!
|
||||
// On NodeMCU 1.0 SD0=MISO, SD1=MOSI, CLK=SCLK to connect to TFT in overlap mode
|
||||
// On NodeMCU V3 S0 =MISO, S1 =MOSI, S2 =SCLK
|
||||
// In ESP8266 overlap mode the following must be defined
|
||||
|
||||
//#define TFT_SPI_OVERLAP
|
||||
|
||||
// In ESP8266 overlap mode the TFT chip select MUST connect to pin D3
|
||||
//#define TFT_CS PIN_D3
|
||||
//#define TFT_DC PIN_D5 // Data Command control pin
|
||||
//#define TFT_RST PIN_D4 // Reset pin (could connect to NodeMCU RST, see next line)
|
||||
//#define TFT_RST -1 // Set TFT_RST to -1 if the display RESET is connected to NodeMCU RST or 3.3V
|
||||
|
||||
|
||||
// ###### EDIT THE PIN NUMBERS IN THE LINES FOLLOWING TO SUIT YOUR ESP32 SETUP ######
|
||||
|
||||
// For ESP32 Dev board (only tested with ILI9341 display)
|
||||
// The hardware SPI can be mapped to any pins
|
||||
|
||||
// Marauder Mini
|
||||
// Drone Detector v1
|
||||
|
||||
#define TFT_CS 23 // Chip select control pin D8
|
||||
#define TFT_DC 24 // Data Command control pin
|
||||
#define TFT_RST -1 // Reset pin (could connect to NodeMCU RST, see next line)
|
||||
#define TOUCH_CS -1
|
||||
//#define TFT_MISO 16
|
||||
#define TFT_MOSI 7
|
||||
#define TFT_SCLK 6
|
||||
#define TFT_BL 27
|
||||
|
||||
|
||||
// Drone Detector v2
|
||||
/*
|
||||
#define TFT_CS 17 // Chip select control pin D8
|
||||
#define TFT_DC 26 // Data Command control pin
|
||||
#define TFT_RST -1 // Reset pin (could connect to NodeMCU RST, see next line)
|
||||
#define TOUCH_CS -1
|
||||
//#define TFT_MISO 16
|
||||
#define TFT_MOSI 23
|
||||
#define TFT_SCLK 18
|
||||
#define TFT_BL 32
|
||||
*/
|
||||
/*
|
||||
// ESP32 Marauder
|
||||
#define TFT_MISO 19
|
||||
#define TFT_MOSI 23
|
||||
#define TFT_SCLK 18
|
||||
#define TFT_CS 17 // Chip select control pin
|
||||
#define TFT_DC 16 // Data Command control pin
|
||||
#define TFT_RST 5 // Reset pin (could connect to RST pin)
|
||||
//#define TFT_RST -1 // Set TFT_RST to -1 if display RESET is connected to ESP32 board RST
|
||||
|
||||
#define TFT_BL 32 // LED back-light (only for ST7789 with backlight control pin)
|
||||
|
||||
#define TOUCH_CS 21 // Chip select pin (T_CS) of touch screen
|
||||
*/
|
||||
/////////////////////////////
|
||||
|
||||
// ESP32 Centauri
|
||||
/*
|
||||
#define TFT_MISO 19
|
||||
#define TFT_MOSI 23
|
||||
#define TFT_SCLK 18
|
||||
#define TFT_CS 27 // Chip select control pin
|
||||
#define TFT_DC 26 // Data Command control pin
|
||||
#define TFT_RST 5 // Reset pin (could connect to RST pin)
|
||||
//#define TFT_RST -1 // Set TFT_RST to -1 if display RESET is connected to ESP32 board RST
|
||||
|
||||
#define TFT_BL 32 // LED back-light (only for ST7789 with backlight control pin)
|
||||
|
||||
#define TOUCH_CS 21 // Chip select pin (T_CS) of touch screen
|
||||
*/
|
||||
/////////////////////////////
|
||||
|
||||
//#define TFT_WR 22 // Write strobe for modified Raspberry Pi TFT only
|
||||
|
||||
// For the M5Stack module use these #define lines
|
||||
//#define TFT_MISO 19
|
||||
//#define TFT_MOSI 23
|
||||
//#define TFT_SCLK 18
|
||||
//#define TFT_CS 14 // Chip select control pin
|
||||
//#define TFT_DC 27 // Data Command control pin
|
||||
//#define TFT_RST 33 // Reset pin (could connect to Arduino RESET pin)
|
||||
//#define TFT_BL 32 // LED back-light (required for M5Stack)
|
||||
|
||||
// ###### EDIT THE PINs BELOW TO SUIT YOUR ESP32 PARALLEL TFT SETUP ######
|
||||
|
||||
// The library supports 8 bit parallel TFTs with the ESP32, the pin
|
||||
// selection below is compatible with ESP32 boards in UNO format.
|
||||
// Wemos D32 boards need to be modified, see diagram in Tools folder.
|
||||
// Only ILI9481 and ILI9341 based displays have been tested!
|
||||
|
||||
// Parallel bus is only supported on ESP32
|
||||
// Uncomment line below to use ESP32 Parallel interface instead of SPI
|
||||
|
||||
//#define ESP32_PARALLEL
|
||||
|
||||
// The ESP32 and TFT the pins used for testing are:
|
||||
//#define TFT_CS 33 // Chip select control pin (library pulls permanently low
|
||||
//#define TFT_DC 15 // Data Command control pin - must use a pin in the range 0-31
|
||||
//#define TFT_RST 32 // Reset pin, toggles on startup
|
||||
|
||||
//#define TFT_WR 4 // Write strobe control pin - must use a pin in the range 0-31
|
||||
//#define TFT_RD 2 // Read strobe control pin
|
||||
|
||||
//#define TFT_D0 12 // Must use pins in the range 0-31 for the data bus
|
||||
//#define TFT_D1 13 // so a single register write sets/clears all bits.
|
||||
//#define TFT_D2 26 // Pins can be randomly assigned, this does not affect
|
||||
//#define TFT_D3 25 // TFT screen update performance.
|
||||
//#define TFT_D4 17
|
||||
//#define TFT_D5 16
|
||||
//#define TFT_D6 27
|
||||
//#define TFT_D7 14
|
||||
|
||||
|
||||
// ##################################################################################
|
||||
//
|
||||
// Section 3. Define the fonts that are to be used here
|
||||
//
|
||||
// ##################################################################################
|
||||
|
||||
// Comment out the #defines below with // to stop that font being loaded
|
||||
// The ESP8366 and ESP32 have plenty of memory so commenting out fonts is not
|
||||
// normally necessary. If all fonts are loaded the extra FLASH space required is
|
||||
// about 17Kbytes. To save FLASH space only enable the fonts you need!
|
||||
|
||||
#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
|
||||
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
|
||||
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
|
||||
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
|
||||
#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-.
|
||||
#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
|
||||
//#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT
|
||||
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
|
||||
|
||||
// Comment out the #define below to stop the SPIFFS filing system and smooth font code being loaded
|
||||
// this will save ~20kbytes of FLASH
|
||||
#define SMOOTH_FONT
|
||||
|
||||
|
||||
// ##################################################################################
|
||||
//
|
||||
// Section 4. Other options
|
||||
//
|
||||
// ##################################################################################
|
||||
|
||||
// Define the SPI clock frequency, this affects the graphics rendering speed. Too
|
||||
// fast and the TFT driver will not keep up and display corruption appears.
|
||||
// With an ILI9341 display 40MHz works OK, 80MHz sometimes fails
|
||||
// With a ST7735 display more than 27MHz may not work (spurious pixels and lines)
|
||||
// With an ILI9163 display 27 MHz works OK.
|
||||
|
||||
// #define SPI_FREQUENCY 1000000
|
||||
//#define SPI_FREQUENCY 5000000
|
||||
// #define SPI_FREQUENCY 10000000
|
||||
// #define SPI_FREQUENCY 20000000
|
||||
#define SPI_FREQUENCY 27000000 // Marauder // Actually sets it to 26.67MHz = 80/3
|
||||
// #define SPI_FREQUENCY 40000000
|
||||
// #define SPI_FREQUENCY 80000000
|
||||
|
||||
// Optional reduced SPI frequency for reading TFT
|
||||
//#define SPI_READ_FREQUENCY 20000000
|
||||
|
||||
// The XPT2046 requires a lower SPI clock rate of 2.5MHz so we define that here:
|
||||
//#define SPI_TOUCH_FREQUENCY 2500000
|
||||
|
||||
// The ESP32 has 2 free SPI ports i.e. VSPI and HSPI, the VSPI is the default.
|
||||
// If the VSPI port is in use and pins are not accessible (e.g. TTGO T-Beam)
|
||||
// then uncomment the following line:
|
||||
//#define USE_HSPI_PORT
|
||||
|
||||
// Comment out the following #define if "SPI Transactions" do not need to be
|
||||
// supported. When commented out the code size will be smaller and sketches will
|
||||
// run slightly faster, so leave it commented out unless you need it!
|
||||
|
||||
// Transaction support is needed to work with SD library but not needed with TFT_SdFat
|
||||
// Transaction support is required if other SPI devices are connected.
|
||||
|
||||
// Transactions are automatically enabled by the library for an ESP32 (to use HAL mutex)
|
||||
// so changing it here has no effect
|
||||
|
||||
// #define SUPPORT_TRANSACTIONS
|
||||
@@ -72,6 +72,30 @@ void EvilPortal::setupServer() {
|
||||
});
|
||||
#endif
|
||||
|
||||
const char* captiveEndpoints[] = {
|
||||
"/hotspot-detect.html",
|
||||
"/library/test/success.html",
|
||||
"/success.txt",
|
||||
"/generate_204",
|
||||
"/gen_204",
|
||||
"/ncsi.txt",
|
||||
"/connecttest.txt",
|
||||
"/redirect"
|
||||
};
|
||||
|
||||
for (int i = 0; i < sizeof(captiveEndpoints) / sizeof(captiveEndpoints[0]); i++) {
|
||||
|
||||
#ifndef HAS_PSRAM
|
||||
server.on(captiveEndpoints[i], HTTP_GET, [this](AsyncWebServerRequest *request){
|
||||
request->send_P(200, "text/html", index_html);
|
||||
});
|
||||
#else
|
||||
server.on(captiveEndpoints[i], HTTP_GET, [this](AsyncWebServerRequest *request){
|
||||
request->send(200, "text/html", index_html);
|
||||
});
|
||||
#endif
|
||||
}
|
||||
|
||||
server.on("/get-ap-name", HTTP_GET, [this](AsyncWebServerRequest *request) {
|
||||
request->send(200, "text/plain", WiFi.softAPSSID());
|
||||
});
|
||||
|
||||
@@ -1817,6 +1817,8 @@ void MenuFunctions::RunSetup()
|
||||
extern LinkedList<Station>* stations;
|
||||
extern LinkedList<AirTag>* airtags;
|
||||
extern LinkedList<IPAddress>* ipList;
|
||||
extern LinkedList<ProbeReqSsid>* probe_req_ssids;
|
||||
extern LinkedList<ssid>* ssids;
|
||||
|
||||
this->disable_touch = false;
|
||||
|
||||
@@ -1866,6 +1868,7 @@ void MenuFunctions::RunSetup()
|
||||
//#ifndef HAS_ILI9341
|
||||
wifiStationMenu.list = new LinkedList<MenuNode>();
|
||||
//#endif
|
||||
selectProbeSSIDsMenu.list = new LinkedList<MenuNode>();
|
||||
|
||||
// WiFi HTML menu stuff
|
||||
htmlMenu.list = new LinkedList<MenuNode>();
|
||||
@@ -2208,6 +2211,67 @@ void MenuFunctions::RunSetup()
|
||||
this->changeMenu(&generateSSIDsMenu);
|
||||
wifi_scan_obj.RunGenerateSSIDs();
|
||||
});
|
||||
|
||||
//Add Select probe ssid
|
||||
this->addNodes(&wifiGeneralMenu, text_table1[65], TFTCYAN, NULL, KEYBOARD_ICO, [this]() {
|
||||
selectProbeSSIDsMenu.list->clear();
|
||||
|
||||
// Add the back button
|
||||
this->addNodes(&selectProbeSSIDsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
|
||||
this->changeMenu(&wifiGeneralMenu);
|
||||
|
||||
// TODO: TBD - Should probe_req_ssids have it´s own life and override ap.config and/or ssids -list for EP?
|
||||
// If so, then we should not add selected ssids to ssids list
|
||||
|
||||
// Add selected ssid names to ssids list when clicking back button
|
||||
if (probe_req_ssids->size() > 0) {
|
||||
|
||||
//TODO: TBD - Clear ssids list before adding new ones??
|
||||
|
||||
for (int i = 0; i < probe_req_ssids->size(); i++) {
|
||||
ProbeReqSsid cur_probe_ssid = probe_req_ssids->get(i);
|
||||
if (cur_probe_ssid.selected) {
|
||||
bool ssidExists = false;
|
||||
for (int i = 0; i < ssids->size(); i++) {
|
||||
if (ssids->get(i).essid == cur_probe_ssid.essid) {
|
||||
ssidExists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!ssidExists) {
|
||||
wifi_scan_obj.addSSID(cur_probe_ssid.essid);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Populate the menu with buttons
|
||||
for (int i = 0; i < probe_req_ssids->size(); i++) {
|
||||
ProbeReqSsid cur_ssid = probe_req_ssids->get(i);
|
||||
// This is the menu node
|
||||
this->addNodes(
|
||||
&selectProbeSSIDsMenu,
|
||||
"[" + String(cur_ssid.requests) + "]" + cur_ssid.essid,
|
||||
TFTCYAN,
|
||||
NULL,
|
||||
255,
|
||||
[this, i]() {
|
||||
ProbeReqSsid new_ssid = probe_req_ssids->get(i);
|
||||
new_ssid.selected = !probe_req_ssids->get(i).selected;
|
||||
|
||||
// Change selection status of menu node
|
||||
MenuNode new_node = current_menu->list->get(i + 1);
|
||||
new_node.selected = !current_menu->list->get(i + 1).selected;
|
||||
current_menu->list->set(i + 1, new_node);
|
||||
|
||||
probe_req_ssids->set(i, new_ssid);
|
||||
},
|
||||
probe_req_ssids->get(i).selected);
|
||||
}
|
||||
this->changeMenu(&selectProbeSSIDsMenu);
|
||||
});
|
||||
|
||||
#ifdef HAS_ILI9341
|
||||
this->addNodes(&wifiGeneralMenu, text_table1[1], TFTNAVY, NULL, KEYBOARD_ICO, [this](){
|
||||
display_obj.clearScreen();
|
||||
|
||||
@@ -188,6 +188,7 @@ class MenuFunctions
|
||||
Menu genAPMacMenu;
|
||||
Menu cloneAPMacMenu;
|
||||
Menu setMacMenu;
|
||||
Menu selectProbeSSIDsMenu;
|
||||
|
||||
// Bluetooth menu stuff
|
||||
Menu bluetoothSnifferMenu;
|
||||
|
||||
@@ -16,6 +16,7 @@ LinkedList<Station>* stations;
|
||||
LinkedList<AirTag>* airtags;
|
||||
LinkedList<Flipper>* flippers;
|
||||
LinkedList<IPAddress>* ipList;
|
||||
LinkedList<ProbeReqSsid>* probe_req_ssids;
|
||||
|
||||
extern "C" int ieee80211_raw_frame_sanity_check(int32_t arg, int32_t arg2, int32_t arg3){
|
||||
if (arg == 31337)
|
||||
@@ -548,6 +549,7 @@ void WiFiScan::RunSetup() {
|
||||
airtags = new LinkedList<AirTag>();
|
||||
flippers = new LinkedList<Flipper>();
|
||||
ipList = new LinkedList<IPAddress>();
|
||||
probe_req_ssids = new LinkedList<ProbeReqSsid>;
|
||||
// for Pinescan
|
||||
pinescan_trackers = new LinkedList<PineScanTracker>();
|
||||
confirmed_pinescan = new LinkedList<ConfirmedPineScan>();
|
||||
@@ -3351,6 +3353,8 @@ void WiFiScan::RunDeauthScan(uint8_t scan_mode, uint16_t color)
|
||||
// Function for running probe request scan
|
||||
void WiFiScan::RunProbeScan(uint8_t scan_mode, uint16_t color)
|
||||
{
|
||||
probe_req_ssids->clear();
|
||||
|
||||
if (scan_mode == WIFI_SCAN_PROBE)
|
||||
startPcap("probe");
|
||||
else if (scan_mode == WIFI_SCAN_STATION_WAR_DRIVE) {
|
||||
@@ -3434,8 +3438,6 @@ void WiFiScan::RunSourApple(uint8_t scan_mode, uint16_t color) {
|
||||
display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK);
|
||||
#endif
|
||||
|
||||
this->ble_initialized;
|
||||
|
||||
#ifdef HAS_FLIPPER_LED
|
||||
flipper_led.sniffLED();
|
||||
#elif defined(XIAO_ESP32_S3)
|
||||
@@ -3480,7 +3482,6 @@ void WiFiScan::RunSwiftpairSpam(uint8_t scan_mode, uint16_t color) {
|
||||
display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK);
|
||||
#endif
|
||||
|
||||
this->ble_initialized;
|
||||
|
||||
#ifdef HAS_FLIPPER_LED
|
||||
flipper_led.attackLED();
|
||||
@@ -5773,6 +5774,8 @@ void WiFiScan::probeSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type)
|
||||
if ((snifferPacket->payload[0] == 0x40) && (buf == 0))
|
||||
{
|
||||
if (wifi_scan_obj.currentScanMode == WIFI_SCAN_PROBE) {
|
||||
String probe_req_essid;
|
||||
|
||||
delay(random(0, 10));
|
||||
Serial.print("RSSI: ");
|
||||
Serial.print(snifferPacket->rx_ctrl.rssi);
|
||||
@@ -5788,9 +5791,30 @@ void WiFiScan::probeSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type)
|
||||
for (int i = 0; i < snifferPacket->payload[25]; i++)
|
||||
{
|
||||
Serial.print((char)snifferPacket->payload[26 + i]);
|
||||
display_string.concat((char)snifferPacket->payload[26 + i]);
|
||||
probe_req_essid.concat((char)snifferPacket->payload[26 + i]);
|
||||
}
|
||||
|
||||
display_string.concat(probe_req_essid);
|
||||
|
||||
if (probe_req_essid.length() > 0) {
|
||||
bool essidExist = false;
|
||||
for (int i = 0; i < probe_req_ssids->size(); i++) {
|
||||
ProbeReqSsid cur_probe_ssid = probe_req_ssids->get(i);
|
||||
if (cur_probe_ssid.essid == probe_req_essid) {
|
||||
cur_probe_ssid.requests++;
|
||||
probe_req_ssids->set(i, cur_probe_ssid);
|
||||
essidExist = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!essidExist) {
|
||||
ProbeReqSsid probeReqSsid;
|
||||
probeReqSsid.essid = probe_req_essid;
|
||||
probeReqSsid.requests = 1;
|
||||
probeReqSsid.selected = false;
|
||||
probe_req_ssids->add(probeReqSsid);
|
||||
}
|
||||
}
|
||||
// Print spaces because of the rotating lines of the hardware scroll.
|
||||
// The same characters print from previous lines so I just overwrite them
|
||||
// with spaces.
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include <vector>
|
||||
|
||||
#ifdef HAS_BT
|
||||
#include <NimBLEDevice.h>
|
||||
#include <NimBLEDevice.h> // 1.3.8
|
||||
#endif
|
||||
|
||||
#include <WiFi.h>
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
//#define MARAUDER_KIT
|
||||
//#define GENERIC_ESP32
|
||||
//#define MARAUDER_FLIPPER
|
||||
//#define MARAUDER_MULTIBOARD_S3
|
||||
//#define ESP32_LDDB
|
||||
//#define MARAUDER_DEV_BOARD_PRO
|
||||
//#define XIAO_ESP32_S3
|
||||
@@ -27,7 +28,7 @@
|
||||
//#define MARAUDER_CYD_GUITION // ESP32-2432S024 GUITION
|
||||
//// END BOARD TARGETS
|
||||
|
||||
#define MARAUDER_VERSION "v1.7.0"
|
||||
#define MARAUDER_VERSION "v1.7.2"
|
||||
|
||||
#define GRAPH_REFRESH 100
|
||||
|
||||
@@ -60,6 +61,8 @@
|
||||
#define HARDWARE_NAME "Marauder Kit"
|
||||
#elif defined(MARAUDER_FLIPPER)
|
||||
#define HARDWARE_NAME "Flipper Zero Dev Board"
|
||||
#elif defined(MARAUDER_MULTIBOARD_S3)
|
||||
#define HARDWARE_NAME "Flipper Zero Multi Board S3"
|
||||
#elif defined(ESP32_LDDB)
|
||||
#define HARDWARE_NAME "ESP32 LDDB"
|
||||
#elif defined(MARAUDER_DEV_BOARD_PRO)
|
||||
@@ -292,6 +295,22 @@
|
||||
//#define HAS_TEMP_SENSOR
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_MULTIBOARD_S3
|
||||
#define HAS_FLIPPER_LED
|
||||
//#define FLIPPER_ZERO_HAT
|
||||
//#define HAS_BATTERY
|
||||
#define HAS_BT
|
||||
//#define HAS_BUTTONS
|
||||
//#define HAS_NEOPIXEL_LED
|
||||
//#define HAS_PWR_MGMT
|
||||
//#define HAS_SCREEN
|
||||
#define HAS_GPS
|
||||
#define HAS_SD
|
||||
#define USE_SD
|
||||
//#define HAS_PSRAM
|
||||
//#define HAS_TEMP_SENSOR
|
||||
#endif
|
||||
|
||||
#ifdef ESP32_LDDB
|
||||
//#define FLIPPER_ZERO_HAT
|
||||
//#define HAS_BATTERY
|
||||
@@ -1666,6 +1685,10 @@
|
||||
#define SD_CS 10
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_MULTIBOARD_S3
|
||||
#define SD_CS 10
|
||||
#endif
|
||||
|
||||
#ifdef ESP32_LDDB
|
||||
#define SD_CS 4
|
||||
#endif
|
||||
@@ -1761,6 +1784,8 @@
|
||||
#define MEM_LOWER_LIM 10000
|
||||
#elif defined(MARAUDER_FLIPPER)
|
||||
#define MEM_LOWER_LIM 10000
|
||||
#elif defined(MARAUDER_MULTIBOARD_S3)
|
||||
#define MEM_LOWER_LIM 10000
|
||||
#elif defined(ESP32_LDDB)
|
||||
#define MEM_LOWER_LIM 10000
|
||||
#elif defined(MARAUDER_DEV_BOARD_PRO)
|
||||
@@ -1852,6 +1877,10 @@
|
||||
#define GPS_SERIAL_INDEX 1
|
||||
#define GPS_TX 9
|
||||
#define GPS_RX 21
|
||||
#elif defined(MARAUDER_MULTIBOARD_S3)
|
||||
#define GPS_SERIAL_INDEX 1
|
||||
#define GPS_TX 9
|
||||
#define GPS_RX 21
|
||||
#elif defined(MARAUDER_M5STICKC)
|
||||
#define GPS_SERIAL_INDEX 1
|
||||
#define GPS_TX 33
|
||||
@@ -1999,6 +2028,12 @@
|
||||
#define R_PIN 6
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_MULTIBOARD_S3
|
||||
#define B_PIN 4
|
||||
#define G_PIN 5
|
||||
#define R_PIN 6
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_CYD_MICRO
|
||||
#define B_PIN 17
|
||||
#define G_PIN 16
|
||||
|
||||
@@ -105,6 +105,7 @@ PROGMEM const char text1_61[] = "Select Stations";
|
||||
PROGMEM const char text1_62[] = "Deauth Targeted";
|
||||
PROGMEM const char text1_63[] = "Detect Pineapple";
|
||||
PROGMEM const char text1_64[] = "Detect MultiSSID";
|
||||
PROGMEM const char text1_65[] = "Select probe SSIDs";
|
||||
|
||||
//SDInterface.cpp texts
|
||||
PROGMEM const char text2_0[] = "Error, could not find update.bin";
|
||||
@@ -185,7 +186,7 @@ PROGMEM const char text4_49[] = " Detect MultiSSID ";
|
||||
|
||||
//Making tables
|
||||
PROGMEM const char *text_table0[] = {text0_0,text0_1, text0_2, text0_3, text0_4, text0_5, text0_6, text0_7, text0_8};
|
||||
PROGMEM const char *text_table1[] = {text1_0,text1_1,text1_2,text1_3,text1_4,text1_5,text1_6,text1_7,text1_8,text1_9,text1_10,text1_11,text1_12,text1_13,text1_14,text1_15,text1_16,text1_17,text1_18,text1_19,text1_20,text1_21,text1_22,text1_23,text1_24,text1_25,text1_26,text1_27,text1_28,text1_29,text1_30,text1_31,text1_32,text1_33,text1_34,text1_35,text1_36,text1_37,text1_38,text1_39,text1_40,text1_41,text1_42,text1_43,text1_44,text1_45,text1_46,text1_47,text1_48,text1_49,text1_50,text1_51,text1_52,text1_53,text1_54,text1_55,text1_56,text1_57,text1_58,text1_59,text1_60,text1_61,text1_62,text1_63,text1_64};
|
||||
PROGMEM const char *text_table1[] = {text1_0,text1_1,text1_2,text1_3,text1_4,text1_5,text1_6,text1_7,text1_8,text1_9,text1_10,text1_11,text1_12,text1_13,text1_14,text1_15,text1_16,text1_17,text1_18,text1_19,text1_20,text1_21,text1_22,text1_23,text1_24,text1_25,text1_26,text1_27,text1_28,text1_29,text1_30,text1_31,text1_32,text1_33,text1_34,text1_35,text1_36,text1_37,text1_38,text1_39,text1_40,text1_41,text1_42,text1_43,text1_44,text1_45,text1_46,text1_47,text1_48,text1_49,text1_50,text1_51,text1_52,text1_53,text1_54,text1_55,text1_56,text1_57,text1_58,text1_59,text1_60,text1_61,text1_62,text1_63,text1_64, text1_65};
|
||||
PROGMEM const char *text_table2[] = {text2_0,text2_1,text2_2,text2_3,text2_4,text2_5,text2_6,text2_7,text2_8,text2_9,text2_10,text2_11,text2_12,text2_13,text2_14};
|
||||
PROGMEM const char *text_table3[] = {text3_0,text3_1,text3_2,text3_3,text3_4,text3_5};
|
||||
PROGMEM const char *text_table4[] = {text4_0,text4_1,text4_2,text4_3,text4_4,text4_5,text4_6,text4_7,text1_54,text4_9,text4_10,text4_11,text4_12,text4_13,text4_14,text4_15,text4_16,text4_17,text4_18,text4_19,text4_20,text4_21,text4_22,text4_23,text4_24,text4_25,text4_26,text4_27,text4_28,text4_29,text4_30,text4_31,text4_32,text4_33,text4_34,text4_35,text4_36,text4_37,text4_38,text4_39,text4_40,text4_41,text4_42,text4_43,text4_44,text4_45,text4_46,text4_47,text4_48,text4_49};
|
||||
|
||||
@@ -21,6 +21,12 @@ struct Station {
|
||||
uint16_t ap;
|
||||
};
|
||||
|
||||
struct ProbeReqSsid {
|
||||
String essid;
|
||||
bool selected;
|
||||
uint8_t requests;
|
||||
};
|
||||
|
||||
const char apple_ouis[][9] PROGMEM = {
|
||||
"00:17:F2", "00:1E:C2", "00:26:08", "F8:1E:DF", "BC:92:6B",
|
||||
"28:E0:2C", "3C:07:54", "7C:D1:C3", "DC:A9:04", "F0:D1:A9",
|
||||
|
||||
Reference in New Issue
Block a user