Merge pull request #937 from justcallmekoko/develop

Clean up menu transition for Minis
This commit is contained in:
Just Call Me Koko
2025-10-06 14:58:11 -04:00
committed by GitHub
3 changed files with 151 additions and 147 deletions
+3
View File
@@ -410,6 +410,9 @@ void Display::clearScreen()
#ifndef MARAUDER_V7
tft.fillScreen(TFT_BLACK);
tft.setCursor(0, 0);
#elif defined(MARAUDER_MINI)
tft.fillRect(0, 0, TFT_WIDTH, TFT_HEIGHT, TFT_BLACK);
tft.setCursor(0, 0);
#else
tft.fillRect(0, 0, TFT_WIDTH, TFT_HEIGHT, TFT_BLACK);
tft.setCursor(0, 0);
+147 -146
View File
@@ -1517,11 +1517,11 @@ void MenuFunctions::updateStatusBar()
if ((current_channel != wifi_scan_obj.old_channel) || (status_changed)) {
wifi_scan_obj.old_channel = current_channel;
//#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC) || defined(MARAUDER_REV_FEATHER) || defined(MARAUDER_CARDPUTER)
// display_obj.tft.fillRect(43, 0, CHAR_WIDTH * 6, STATUS_BAR_WIDTH, STATUSBAR_COLOR);
//#else
// display_obj.tft.fillRect(50, 0, (CHAR_WIDTH / 2) * 6, STATUS_BAR_WIDTH, STATUSBAR_COLOR);
//#endif
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC) || defined(MARAUDER_REV_FEATHER) || defined(MARAUDER_CARDPUTER)
display_obj.tft.fillRect(TFT_WIDTH/4, 0, CHAR_WIDTH * 6, STATUS_BAR_WIDTH, STATUSBAR_COLOR);
#else
display_obj.tft.fillRect(50, 0, (CHAR_WIDTH / 2) * 7, STATUS_BAR_WIDTH, STATUSBAR_COLOR);
#endif
#ifdef HAS_FULL_SCREEN
display_obj.tft.drawString("CH: " + (String)wifi_scan_obj.old_channel, 50, 0, 2);
#endif
@@ -2094,18 +2094,18 @@ void MenuFunctions::RunSetup()
// Build Main Menu
mainMenu.parentMenu = NULL;
this->addNodes(&mainMenu, text_table1[7], TFTGREEN, NULL, WIFI, [this]() {
this->changeMenu(&wifiMenu);
this->changeMenu(&wifiMenu, true);
});
this->addNodes(&mainMenu, text_table1[19], TFTCYAN, NULL, BLUETOOTH, [this]() {
this->changeMenu(&bluetoothMenu);
this->changeMenu(&bluetoothMenu, true);
});
#ifdef HAS_GPS
this->addNodes(&mainMenu, text1_66, TFTRED, NULL, GPS_MENU, [this]() {
this->changeMenu(&gpsMenu);
this->changeMenu(&gpsMenu, true);
});
#endif
this->addNodes(&mainMenu, text_table1[9], TFTBLUE, NULL, DEVICE, [this]() {
this->changeMenu(&deviceMenu);
this->changeMenu(&deviceMenu, true);
});
this->addNodes(&mainMenu, text_table1[30], TFTLIGHTGREY, NULL, REBOOT, []() {
ESP.restart();
@@ -2114,30 +2114,30 @@ void MenuFunctions::RunSetup()
// Build WiFi Menu
wifiMenu.parentMenu = &mainMenu; // Main Menu is second menu parent
this->addNodes(&wifiMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiMenu.parentMenu);
this->changeMenu(wifiMenu.parentMenu, true);
});
this->addNodes(&wifiMenu, text_table1[31], TFTYELLOW, NULL, SNIFFERS, [this]() {
this->changeMenu(&wifiSnifferMenu);
this->changeMenu(&wifiSnifferMenu, true);
});
this->addNodes(&wifiMenu, "Scanners", TFTORANGE, NULL, SCANNERS, [this]() {
this->changeMenu(&wifiScannerMenu);
this->changeMenu(&wifiScannerMenu, true);
});
#ifdef HAS_GPS
this->addNodes(&wifiMenu, "Wardriving", TFTGREEN, NULL, BEACON_SNIFF, [this]() {
this->changeMenu(&wardrivingMenu);
this->changeMenu(&wardrivingMenu, true);
});
#endif
this->addNodes(&wifiMenu, text_table1[32], TFTRED, NULL, ATTACKS, [this]() {
this->changeMenu(&wifiAttackMenu);
this->changeMenu(&wifiAttackMenu, true);
});
this->addNodes(&wifiMenu, text_table1[33], TFTPURPLE, NULL, GENERAL_APPS, [this]() {
this->changeMenu(&wifiGeneralMenu);
this->changeMenu(&wifiGeneralMenu, true);
});
// Build WiFi scanner Menu
wifiScannerMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
this->addNodes(&wifiScannerMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiScannerMenu.parentMenu);
this->changeMenu(wifiScannerMenu.parentMenu, true);
});
this->addNodes(&wifiScannerMenu, "Ping Scan", TFTGREEN, NULL, SCANNERS, [this]() {
display_obj.clearScreen();
@@ -2153,7 +2153,7 @@ void MenuFunctions::RunSetup()
// Add the back button
wifiIPMenu.list->clear();
this->addNodes(&wifiIPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiIPMenu.parentMenu);
this->changeMenu(wifiIPMenu.parentMenu, true);
});
// Populate the menu with buttons
@@ -2167,7 +2167,7 @@ void MenuFunctions::RunSetup()
wifi_scan_obj.StartScan(WIFI_PORT_SCAN_ALL, TFT_BLUE);
});
}
this->changeMenu(&wifiIPMenu);
this->changeMenu(&wifiIPMenu, true);
});
this->addNodes(&wifiScannerMenu, "SSH Scan", TFTORANGE, NULL, SCANNERS, [this]() {
display_obj.clearScreen();
@@ -2208,7 +2208,7 @@ void MenuFunctions::RunSetup()
// Build WiFi sniffer Menu
wifiSnifferMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
this->addNodes(&wifiSnifferMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiSnifferMenu.parentMenu);
this->changeMenu(wifiSnifferMenu.parentMenu, true);
});
this->addNodes(&wifiSnifferMenu, text_table1[42], TFTCYAN, NULL, PROBE_SNIFF, [this]() {
display_obj.clearScreen();
@@ -2317,7 +2317,7 @@ void MenuFunctions::RunSetup()
#ifdef HAS_GPS
wardrivingMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
this->addNodes(&wardrivingMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wardrivingMenu.parentMenu);
this->changeMenu(wardrivingMenu.parentMenu, true);
});
if (gps_obj.getGpsModuleStatus()) {
this->addNodes(&wardrivingMenu, "Wardrive", TFTGREEN, NULL, BEACON_SNIFF, [this]() {
@@ -2340,7 +2340,7 @@ void MenuFunctions::RunSetup()
// Build WiFi attack menu
wifiAttackMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
this->addNodes(&wifiAttackMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiAttackMenu.parentMenu);
this->changeMenu(wifiAttackMenu.parentMenu, true);
});
this->addNodes(&wifiAttackMenu, text_table1[50], TFTRED, NULL, BEACON_LIST, [this]() {
display_obj.clearScreen();
@@ -2382,10 +2382,10 @@ void MenuFunctions::RunSetup()
ssidsMenu.parentMenu = &evilPortalMenu;
this->addNodes(&wifiAPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiAPMenu.parentMenu);
this->changeMenu(wifiAPMenu.parentMenu, true);
});
this->addNodes(&ssidsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(ssidsMenu.parentMenu);
this->changeMenu(ssidsMenu.parentMenu, true);
});
// Get AP list ready
@@ -2405,7 +2405,7 @@ void MenuFunctions::RunSetup()
wifi_scan_obj.setMac();
}
else
this->changeMenu(&evilPortalMenu);
this->changeMenu(&evilPortalMenu, true);
});
}
@@ -2419,10 +2419,10 @@ void MenuFunctions::RunSetup()
wifi_scan_obj.setMac();
}
else
this->changeMenu(&evilPortalMenu);
this->changeMenu(&evilPortalMenu, true);
});
}
this->changeMenu(&evilPortalMenu);
this->changeMenu(&evilPortalMenu, true);
});
this->addNodes(&wifiAttackMenu, text_table1[54], TFTRED, NULL, DEAUTH_SNIFF, [this]() {
display_obj.clearScreen();
@@ -2444,7 +2444,7 @@ void MenuFunctions::RunSetup()
// Add the back button
selectProbeSSIDsMenu.list->clear();
this->addNodes(&selectProbeSSIDsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(&wifiAttackMenu);
this->changeMenu(&wifiAttackMenu, true);
});
// Populate the menu with buttons
@@ -2458,10 +2458,10 @@ void MenuFunctions::RunSetup()
wifi_scan_obj.setMac();
}
else
this->changeMenu(&wifiAttackMenu);
this->changeMenu(&wifiAttackMenu, true);
});
}
this->changeMenu(&selectProbeSSIDsMenu);
this->changeMenu(&selectProbeSSIDsMenu, true);
});
this->addNodes(&wifiAttackMenu, "Bad Msg", TFTRED, NULL, DEAUTH_SNIFF, [this]() {
@@ -2487,22 +2487,22 @@ void MenuFunctions::RunSetup()
evilPortalMenu.parentMenu = &wifiAttackMenu;
this->addNodes(&evilPortalMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(evilPortalMenu.parentMenu);
this->changeMenu(evilPortalMenu.parentMenu, true);
});
this->addNodes(&evilPortalMenu, "Access Points", TFTGREEN, NULL, BEACON_SNIFF, [this]() {
this->changeMenu(&wifiAPMenu);
this->changeMenu(&wifiAPMenu, true);
});
this->addNodes(&evilPortalMenu, "User SSIDs", TFTCYAN, NULL, PROBE_SNIFF, [this]() {
this->changeMenu(&ssidsMenu);
this->changeMenu(&ssidsMenu, true);
});
// Build WiFi General menu
wifiGeneralMenu.parentMenu = &wifiMenu;
this->addNodes(&wifiGeneralMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiGeneralMenu.parentMenu);
this->changeMenu(wifiGeneralMenu.parentMenu, true);
});
this->addNodes(&wifiGeneralMenu, text_table1[27], TFTSKYBLUE, NULL, GENERATE, [this]() {
this->changeMenu(&generateSSIDsMenu);
this->changeMenu(&generateSSIDsMenu, true);
wifi_scan_obj.RunGenerateSSIDs();
});
@@ -2512,7 +2512,7 @@ void MenuFunctions::RunSetup()
// Add the back button
this->addNodes(&selectProbeSSIDsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(&wifiGeneralMenu);
this->changeMenu(&wifiGeneralMenu, true);
// 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
@@ -2563,7 +2563,7 @@ void MenuFunctions::RunSetup()
},
probe_req_ssids->get(i).selected);
}
this->changeMenu(&selectProbeSSIDsMenu);
this->changeMenu(&selectProbeSSIDsMenu, true);
});
clearSSIDsMenu.parentMenu = &wifiGeneralMenu;
@@ -2577,20 +2577,20 @@ void MenuFunctions::RunSetup()
#endif
#if (!defined(HAS_ILI9341) && defined(HAS_BUTTONS))
this->addNodes(&wifiGeneralMenu, text_table1[1], TFTNAVY, NULL, KEYBOARD_ICO, [this](){
this->changeMenu(&miniKbMenu);
this->changeMenu(&miniKbMenu, true);
this->miniKeyboard(&miniKbMenu);
});
#endif
this->addNodes(&wifiGeneralMenu, text_table1[28], TFTSILVER, NULL, CLEAR_ICO, [this]() {
this->changeMenu(&clearSSIDsMenu);
this->changeMenu(&clearSSIDsMenu, true);
wifi_scan_obj.RunClearSSIDs();
});
this->addNodes(&wifiGeneralMenu, text_table1[29], TFTDARKGREY, NULL, CLEAR_ICO, [this]() {
this->changeMenu(&clearAPsMenu);
this->changeMenu(&clearAPsMenu, true);
wifi_scan_obj.RunClearAPs();
});
this->addNodes(&wifiGeneralMenu, text_table1[60], TFTBLUE, NULL, CLEAR_ICO, [this]() {
this->changeMenu(&clearAPsMenu);
this->changeMenu(&clearAPsMenu, true);
wifi_scan_obj.RunClearStations();
});
//#else // Mini EP HTML select
@@ -2598,7 +2598,7 @@ void MenuFunctions::RunSetup()
// Add the back button
htmlMenu.list->clear();
this->addNodes(&htmlMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(htmlMenu.parentMenu);
this->changeMenu(htmlMenu.parentMenu, true);
});
// Populate the menu with buttons
@@ -2609,25 +2609,25 @@ void MenuFunctions::RunSetup()
evil_portal_obj.target_html_name = evil_portal_obj.html_files->get(evil_portal_obj.selected_html_index);
Serial.println("Set Evil Portal HTML as " + evil_portal_obj.target_html_name);
evil_portal_obj.using_serial_html = false;
this->changeMenu(htmlMenu.parentMenu);
this->changeMenu(htmlMenu.parentMenu, true);
return;
});
}
this->changeMenu(&htmlMenu);
this->changeMenu(&htmlMenu, true);
});
//#if (!defined(HAS_ILI9341) && defined(HAS_BUTTONS))
miniKbMenu.parentMenu = &wifiGeneralMenu;
#ifndef MARAUDER_CARDPUTER
this->addNodes(&miniKbMenu, "a", TFTCYAN, NULL, 0, [this]() {
this->changeMenu(miniKbMenu.parentMenu);
this->changeMenu(miniKbMenu.parentMenu, true);
});
#endif
//#endif
htmlMenu.parentMenu = &wifiGeneralMenu;
this->addNodes(&htmlMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(htmlMenu.parentMenu);
this->changeMenu(htmlMenu.parentMenu, true);
});
// Select APs on Mini
@@ -2636,7 +2636,7 @@ void MenuFunctions::RunSetup()
// Add the back button
wifiAPMenu.list->clear();
this->addNodes(&wifiAPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiAPMenu.parentMenu);
this->changeMenu(wifiAPMenu.parentMenu, true);
});
this->addNodes(&wifiAPMenu, "Select ALL", TFTGREEN, NULL, 255, [this](){
@@ -2651,7 +2651,7 @@ void MenuFunctions::RunSetup()
current_menu->list->set(x + 2, new_node);
}
this->changeMenu(current_menu);
this->changeMenu(current_menu, true);
});
@@ -2670,40 +2670,40 @@ void MenuFunctions::RunSetup()
access_points->set(i, new_ap);
}, access_points->get(i).selected);
}
this->changeMenu(&wifiAPMenu);
this->changeMenu(&wifiAPMenu, true);
});
this->addNodes(&wifiGeneralMenu, "View AP Info", TFTCYAN, NULL, KEYBOARD_ICO, [this](){
// Add the back button
wifiAPMenu.list->clear();
this->addNodes(&wifiAPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiAPMenu.parentMenu);
this->changeMenu(wifiAPMenu.parentMenu, true);
});
// Populate the menu with buttons
for (int i = 0; i < access_points->size(); i++) {
// This is the menu node
this->addNodes(&wifiAPMenu, access_points->get(i).essid, TFTCYAN, NULL, 255, [this, i](){
this->changeMenu(&apInfoMenu);
this->changeMenu(&apInfoMenu, true);
wifi_scan_obj.RunAPInfo(i);
});
}
this->changeMenu(&wifiAPMenu);
this->changeMenu(&wifiAPMenu, true);
});
apInfoMenu.parentMenu = &wifiAPMenu;
this->addNodes(&apInfoMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(apInfoMenu.parentMenu);
this->changeMenu(apInfoMenu.parentMenu, true);
});
wifiAPMenu.parentMenu = &wifiGeneralMenu;
this->addNodes(&wifiAPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiAPMenu.parentMenu);
this->changeMenu(wifiAPMenu.parentMenu, true);
});
wifiIPMenu.parentMenu = &wifiScannerMenu;
this->addNodes(&wifiIPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiIPMenu.parentMenu);
this->changeMenu(wifiIPMenu.parentMenu, true);
});
@@ -2711,7 +2711,7 @@ void MenuFunctions::RunSetup()
this->addNodes(&wifiGeneralMenu, "Select Stations", TFTCYAN, NULL, KEYBOARD_ICO, [this](){
wifiAPMenu.list->clear();
this->addNodes(&wifiAPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiAPMenu.parentMenu);
this->changeMenu(wifiAPMenu.parentMenu, true);
});
int menu_limit = access_points->size();
@@ -2725,7 +2725,7 @@ void MenuFunctions::RunSetup()
// Add back button to the APs
this->addNodes(&wifiStationMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiStationMenu.parentMenu);
this->changeMenu(wifiStationMenu.parentMenu, true);
});
this->addNodes(&wifiStationMenu, "Select ALL", TFTGREEN, NULL, 255, [this, i](){
@@ -2743,7 +2743,7 @@ void MenuFunctions::RunSetup()
stations->set(cur_ap_sta_inx, new_sta);
}
this->changeMenu(current_menu);
this->changeMenu(current_menu, true);
});
@@ -2765,18 +2765,18 @@ void MenuFunctions::RunSetup()
}
// Final change menu to the menu of Stations
this->changeMenu(&wifiStationMenu);
this->changeMenu(&wifiStationMenu, true);
}, false);
}
this->changeMenu(&wifiAPMenu);
this->changeMenu(&wifiAPMenu, true);
});
this->addNodes(&wifiGeneralMenu, "Join WiFi", TFTWHITE, NULL, KEYBOARD_ICO, [this](){
// Add the back button
wifiAPMenu.list->clear();
this->addNodes(&wifiAPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiAPMenu.parentMenu);
this->changeMenu(wifiAPMenu.parentMenu, true);
});
// Populate the menu with buttons
@@ -2785,14 +2785,14 @@ void MenuFunctions::RunSetup()
this->addNodes(&wifiAPMenu, access_points->get(i).essid, TFTCYAN, NULL, 255, [this, i](){
// Join WiFi using mini keyboard
#ifdef HAS_MINI_KB
this->changeMenu(&miniKbMenu);
this->changeMenu(&miniKbMenu, true);
String password = this->miniKeyboard(&miniKbMenu, true);
if (password != "") {
Serial.println("Using SSID: " + (String)access_points->get(i).essid + " Password: " + (String)password);
wifi_scan_obj.currentScanMode = LV_JOIN_WIFI;
wifi_scan_obj.StartScan(LV_JOIN_WIFI, TFT_YELLOW);
wifi_scan_obj.joinWiFi(access_points->get(i).essid, password);
this->changeMenu(current_menu);
this->changeMenu(current_menu, true);
}
#endif
@@ -2804,7 +2804,7 @@ void MenuFunctions::RunSetup()
#endif
});
}
this->changeMenu(&wifiAPMenu);
this->changeMenu(&wifiAPMenu, true);
});
this->addNodes(&wifiGeneralMenu, "Join Saved WiFi", TFTWHITE, NULL, KEYBOARD_ICO, [this](){
@@ -2813,13 +2813,13 @@ void MenuFunctions::RunSetup()
if ((ssid != "") && (pw != "")) {
wifi_scan_obj.joinWiFi(ssid, pw, false);
this->changeMenu(&wifiGeneralMenu);
this->changeMenu(&wifiGeneralMenu, true);
}
else {
// Add the back button
wifiAPMenu.list->clear();
this->addNodes(&wifiAPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiAPMenu.parentMenu);
this->changeMenu(wifiAPMenu.parentMenu, true);
});
// Populate the menu with buttons
@@ -2828,14 +2828,14 @@ void MenuFunctions::RunSetup()
this->addNodes(&wifiAPMenu, access_points->get(i).essid, TFTCYAN, NULL, 255, [this, i](){
// Join WiFi using mini keyboard
#ifdef HAS_MINI_KB
this->changeMenu(&miniKbMenu);
this->changeMenu(&miniKbMenu, true);
String password = this->miniKeyboard(&miniKbMenu, true);
if (password != "") {
Serial.println("Using SSID: " + (String)access_points->get(i).essid + " Password: " + (String)password);
wifi_scan_obj.currentScanMode = LV_JOIN_WIFI;
wifi_scan_obj.StartScan(LV_JOIN_WIFI, TFT_YELLOW);
wifi_scan_obj.joinWiFi(access_points->get(i).essid, password);
this->changeMenu(current_menu);
this->changeMenu(current_menu, true);
}
#endif
@@ -2847,7 +2847,7 @@ void MenuFunctions::RunSetup()
#endif
});
}
this->changeMenu(&wifiAPMenu);
this->changeMenu(&wifiAPMenu, true);
}
});
@@ -2857,7 +2857,7 @@ void MenuFunctions::RunSetup()
// Add the back button
ssidsMenu.list->clear();
this->addNodes(&ssidsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(ssidsMenu.parentMenu);
this->changeMenu(ssidsMenu.parentMenu, true);
});
// Populate the menu with buttons
@@ -2866,14 +2866,14 @@ void MenuFunctions::RunSetup()
this->addNodes(&ssidsMenu, ssids->get(i).essid, TFTCYAN, NULL, 255, [this, i](){
// Join WiFi using mini keyboard
#ifdef HAS_MINI_KB
this->changeMenu(&miniKbMenu);
this->changeMenu(&miniKbMenu, true);
String password = this->miniKeyboard(&miniKbMenu, true);
if (password != "") {
Serial.println("Using SSID: " + (String)ssids->get(i).essid + " Password: " + (String)password);
wifi_scan_obj.currentScanMode = LV_JOIN_WIFI;
wifi_scan_obj.StartScan(LV_JOIN_WIFI, TFT_YELLOW);
wifi_scan_obj.startWiFi(ssids->get(i).essid, password);
this->changeMenu(current_menu);
this->changeMenu(current_menu, true);
}
#endif
@@ -2885,7 +2885,7 @@ void MenuFunctions::RunSetup()
#endif
});
}
this->changeMenu(&ssidsMenu);
this->changeMenu(&ssidsMenu, true);
});
/*this->addNodes(&wifiGeneralMenu, "Start Saved AP", TFTWHITE, NULL, KEYBOARD_ICO, [this](){
@@ -2934,7 +2934,7 @@ void MenuFunctions::RunSetup()
wifiStationMenu.parentMenu = &ssidsMenu;
this->addNodes(&wifiStationMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiStationMenu.parentMenu);
this->changeMenu(wifiStationMenu.parentMenu, true);
});
//#endif
@@ -2948,32 +2948,32 @@ void MenuFunctions::RunSetup()
//#endif
this->addNodes(&wifiGeneralMenu, "Set MACs", TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(&setMacMenu);
this->changeMenu(&setMacMenu, true);
});
this->addNodes(&wifiGeneralMenu, "Shutdown WiFi", TFTRED, NULL, 0, [this]() {
WiFi.disconnect(true);
delay(100);
wifi_scan_obj.StartScan(WIFI_SCAN_OFF, TFT_RED);
this->changeMenu(current_menu);
this->changeMenu(current_menu, true);
});
// Menu for generating and setting MAC addrs for AP and STA
setMacMenu.parentMenu = &wifiGeneralMenu;
this->addNodes(&setMacMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(setMacMenu.parentMenu);
this->changeMenu(setMacMenu.parentMenu, true);
});
// Generate random MAC for AP
this->addNodes(&setMacMenu, "Generate AP MAC", TFTLIME, NULL, 0, [this]() {
this->changeMenu(&genAPMacMenu);
this->changeMenu(&genAPMacMenu, true);
wifi_scan_obj.RunGenerateRandomMac(true);
});
// Generate random MAC for AP
this->addNodes(&setMacMenu, "Generate STA MAC", TFTCYAN, NULL, 0, [this]() {
this->changeMenu(&genAPMacMenu);
this->changeMenu(&genAPMacMenu, true);
wifi_scan_obj.RunGenerateRandomMac(false);
});
@@ -2983,77 +2983,77 @@ void MenuFunctions::RunSetup()
// Add the back button
wifiAPMenu.list->clear();
this->addNodes(&wifiAPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiAPMenu.parentMenu);
this->changeMenu(wifiAPMenu.parentMenu, true);
});
// Populate the menu with buttons
for (int i = 0; i < access_points->size(); i++) {
// This is the menu node
this->addNodes(&wifiAPMenu, access_points->get(i).essid, TFTLIME, NULL, 255, [this, i](){
this->changeMenu(&genAPMacMenu);
this->changeMenu(&genAPMacMenu, true);
wifi_scan_obj.RunSetMac(access_points->get(i).bssid, true);
});
}
this->changeMenu(&wifiAPMenu);
this->changeMenu(&wifiAPMenu, true);
});
this->addNodes(&setMacMenu, "Clone STA MAC", TFTMAGENTA, NULL, CLEAR_ICO, [this](){
// Add the back button
wifiAPMenu.list->clear();
this->addNodes(&wifiAPMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(wifiAPMenu.parentMenu);
this->changeMenu(wifiAPMenu.parentMenu, true);
});
// Populate the menu with buttons
for (int i = 0; i < stations->size(); i++) {
// This is the menu node
this->addNodes(&wifiAPMenu, macToString(stations->get(i).mac), TFTMAGENTA, NULL, 255, [this, i](){
this->changeMenu(&genAPMacMenu);
this->changeMenu(&genAPMacMenu, true);
wifi_scan_obj.RunSetMac(stations->get(i).mac, false);
});
}
this->changeMenu(&wifiAPMenu);
this->changeMenu(&wifiAPMenu, true);
});
//#endif
// Menu for generating and setting access point MAC (just goes bacK)
genAPMacMenu.parentMenu = &wifiGeneralMenu;
this->addNodes(&genAPMacMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(genAPMacMenu.parentMenu);
this->changeMenu(genAPMacMenu.parentMenu, true);
});
// Build generate ssids menu
generateSSIDsMenu.parentMenu = &wifiGeneralMenu;
this->addNodes(&generateSSIDsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(generateSSIDsMenu.parentMenu);
this->changeMenu(generateSSIDsMenu.parentMenu, true);
});
// Build clear ssids menu
this->addNodes(&clearSSIDsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(clearSSIDsMenu.parentMenu);
this->changeMenu(clearSSIDsMenu.parentMenu, true);
});
clearAPsMenu.parentMenu = &wifiGeneralMenu;
this->addNodes(&clearAPsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(clearAPsMenu.parentMenu);
this->changeMenu(clearAPsMenu.parentMenu, true);
});
// Build Bluetooth Menu
bluetoothMenu.parentMenu = &mainMenu; // Second Menu is third menu parent
this->addNodes(&bluetoothMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(bluetoothMenu.parentMenu);
this->changeMenu(bluetoothMenu.parentMenu, true);
});
this->addNodes(&bluetoothMenu, text_table1[31], TFTYELLOW, NULL, SNIFFERS, [this]() {
this->changeMenu(&bluetoothSnifferMenu);
this->changeMenu(&bluetoothSnifferMenu, true);
});
this->addNodes(&bluetoothMenu, "Bluetooth Attacks", TFTRED, NULL, ATTACKS, [this]() {
this->changeMenu(&bluetoothAttackMenu);
this->changeMenu(&bluetoothAttackMenu, true);
});
// Build bluetooth sniffer Menu
bluetoothSnifferMenu.parentMenu = &bluetoothMenu; // Second Menu is third menu parent
this->addNodes(&bluetoothSnifferMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(bluetoothSnifferMenu.parentMenu);
this->changeMenu(bluetoothSnifferMenu.parentMenu, true);
});
this->addNodes(&bluetoothSnifferMenu, text_table1[34], TFTGREEN, NULL, BLUETOOTH_SNIFF, [this]() {
display_obj.clearScreen();
@@ -3099,7 +3099,7 @@ void MenuFunctions::RunSetup()
// Bluetooth Attack menu
bluetoothAttackMenu.parentMenu = &bluetoothMenu; // Second Menu is third menu parent
this->addNodes(&bluetoothAttackMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(bluetoothAttackMenu.parentMenu);
this->changeMenu(bluetoothAttackMenu.parentMenu, true);
});
this->addNodes(&bluetoothAttackMenu, "Sour Apple", TFTGREEN, NULL, DEAUTH_SNIFF, [this]() {
display_obj.clearScreen();
@@ -3148,7 +3148,7 @@ void MenuFunctions::RunSetup()
// Clear nodes and add back button
airtagMenu.list->clear();
this->addNodes(&airtagMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
this->changeMenu(airtagMenu.parentMenu);
this->changeMenu(airtagMenu.parentMenu, true);
});
// Add buttons for all airtags
@@ -3183,12 +3183,12 @@ void MenuFunctions::RunSetup()
});
}
this->changeMenu(&airtagMenu);
this->changeMenu(&airtagMenu, true);
});
airtagMenu.parentMenu = &bluetoothAttackMenu;
this->addNodes(&airtagMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(airtagMenu.parentMenu);
this->changeMenu(airtagMenu.parentMenu, true);
});
#endif
@@ -3197,29 +3197,29 @@ void MenuFunctions::RunSetup()
// Device menu
deviceMenu.parentMenu = &mainMenu;
this->addNodes(&deviceMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(deviceMenu.parentMenu);
this->changeMenu(deviceMenu.parentMenu, true);
});
this->addNodes(&deviceMenu, text_table1[15], TFTORANGE, NULL, UPDATE, [this]() {
wifi_scan_obj.currentScanMode = OTA_UPDATE;
this->changeMenu(&whichUpdateMenu);
this->changeMenu(&whichUpdateMenu, true);
});
this->addNodes(&deviceMenu, "Save/Load Files", TFTCYAN, NULL, SD_UPDATE, [this]() {
this->changeMenu(&saveFileMenu);
this->changeMenu(&saveFileMenu, true);
});
this->addNodes(&deviceMenu, text_table1[16], TFTGREEN, NULL, LANGUAGE, [this]() {
wifi_scan_obj.currentScanMode = SHOW_INFO;
this->changeMenu(&languageMenu);
this->changeMenu(&languageMenu, true);
});
this->addNodes(&deviceMenu, text_table1[17], TFTWHITE, NULL, DEVICE_INFO, [this]() {
wifi_scan_obj.currentScanMode = SHOW_INFO;
this->changeMenu(&infoMenu);
this->changeMenu(&infoMenu, true);
wifi_scan_obj.RunInfo();
});
this->addNodes(&deviceMenu, text08, TFTNAVY, NULL, KEYBOARD_ICO, [this]() {
this->changeMenu(&settingsMenu);
this->changeMenu(&settingsMenu, true);
});
#ifdef HAS_SD
@@ -3406,7 +3406,7 @@ void MenuFunctions::RunSetup()
// Clear menu and lists
this->buildSDFileMenu();
this->changeMenu(&sdDeleteMenu);
this->changeMenu(&sdDeleteMenu, true);
});
}
#endif
@@ -3425,61 +3425,61 @@ void MenuFunctions::RunSetup()
// Save Files Menu
saveFileMenu.parentMenu = &deviceMenu;
this->addNodes(&saveFileMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(saveFileMenu.parentMenu);
this->changeMenu(saveFileMenu.parentMenu, true);
});
this->addNodes(&saveFileMenu, "Save SSIDs", TFTCYAN, NULL, SD_UPDATE, [this]() {
this->changeMenu(&saveSSIDsMenu);
this->changeMenu(&saveSSIDsMenu, true);
wifi_scan_obj.RunSaveSSIDList(true);
});
this->addNodes(&saveFileMenu, "Load SSIDs", TFTSKYBLUE, NULL, SD_UPDATE, [this]() {
this->changeMenu(&loadSSIDsMenu);
this->changeMenu(&loadSSIDsMenu, true);
wifi_scan_obj.RunLoadSSIDList();
});
this->addNodes(&saveFileMenu, "Save APs", TFTNAVY, NULL, SD_UPDATE, [this]() {
this->changeMenu(&saveAPsMenu);
this->changeMenu(&saveAPsMenu, true);
wifi_scan_obj.RunSaveAPList();
});
this->addNodes(&saveFileMenu, "Load APs", TFTBLUE, NULL, SD_UPDATE, [this]() {
this->changeMenu(&loadAPsMenu);
this->changeMenu(&loadAPsMenu, true);
wifi_scan_obj.RunLoadAPList();
});
this->addNodes(&saveFileMenu, "Save Airtags", TFTWHITE, NULL, SD_UPDATE, [this]() {
this->changeMenu(&saveAPsMenu);
this->changeMenu(&saveAPsMenu, true);
wifi_scan_obj.RunSaveATList();
});
this->addNodes(&saveFileMenu, "Load Airtags", TFTWHITE, NULL, SD_UPDATE, [this]() {
this->changeMenu(&loadAPsMenu);
this->changeMenu(&loadAPsMenu, true);
wifi_scan_obj.RunLoadATList();
});
saveSSIDsMenu.parentMenu = &saveFileMenu;
this->addNodes(&saveSSIDsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(saveSSIDsMenu.parentMenu);
this->changeMenu(saveSSIDsMenu.parentMenu, true);
});
loadSSIDsMenu.parentMenu = &saveFileMenu;
this->addNodes(&loadSSIDsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(loadSSIDsMenu.parentMenu);
this->changeMenu(loadSSIDsMenu.parentMenu, true);
});
saveAPsMenu.parentMenu = &saveFileMenu;
this->addNodes(&saveAPsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(saveAPsMenu.parentMenu);
this->changeMenu(saveAPsMenu.parentMenu, true);
});
loadAPsMenu.parentMenu = &saveFileMenu;
this->addNodes(&loadAPsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(loadAPsMenu.parentMenu);
this->changeMenu(loadAPsMenu.parentMenu, true);
});
saveATsMenu.parentMenu = &saveFileMenu;
this->addNodes(&saveATsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(saveATsMenu.parentMenu);
this->changeMenu(saveATsMenu.parentMenu, true);
});
loadATsMenu.parentMenu = &saveFileMenu;
this->addNodes(&loadATsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(loadATsMenu.parentMenu);
this->changeMenu(loadATsMenu.parentMenu, true);
});
// GPS Menu
@@ -3488,31 +3488,31 @@ void MenuFunctions::RunSetup()
gpsMenu.parentMenu = &mainMenu; // Main Menu is second menu parent
this->addNodes(&gpsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(gpsMenu.parentMenu);
this->changeMenu(gpsMenu.parentMenu, true);
});
this->addNodes(&gpsMenu, "GPS Data", TFTRED, NULL, GPS_MENU, [this]() {
wifi_scan_obj.currentScanMode = WIFI_SCAN_GPS_DATA;
this->changeMenu(&gpsInfoMenu);
this->changeMenu(&gpsInfoMenu, true);
wifi_scan_obj.StartScan(WIFI_SCAN_GPS_DATA, TFT_CYAN);
});
this->addNodes(&gpsMenu, "NMEA Stream", TFTORANGE, NULL, GPS_MENU, [this]() {
wifi_scan_obj.currentScanMode = WIFI_SCAN_GPS_NMEA;
this->changeMenu(&gpsInfoMenu);
this->changeMenu(&gpsInfoMenu, true);
wifi_scan_obj.StartScan(WIFI_SCAN_GPS_NMEA, TFT_ORANGE);
});
this->addNodes(&gpsMenu, "GPS Tracker", TFTGREEN, NULL, GPS_MENU, [this]() {
wifi_scan_obj.currentScanMode = GPS_TRACKER;
this->changeMenu(&gpsInfoMenu);
this->changeMenu(&gpsInfoMenu, true);
wifi_scan_obj.StartScan(GPS_TRACKER, TFT_CYAN);
});
this->addNodes(&gpsMenu, "GPS POI", TFTCYAN, NULL, GPS_MENU, [this]() {
wifi_scan_obj.StartScan(GPS_POI, TFT_CYAN);
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
this->changeMenu(&gpsPOIMenu);
this->changeMenu(&gpsPOIMenu, true);
});
// GPS POI Menu
@@ -3520,7 +3520,7 @@ void MenuFunctions::RunSetup()
this->addNodes(&gpsPOIMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
wifi_scan_obj.currentScanMode = GPS_POI;
wifi_scan_obj.StartScan(WIFI_SCAN_OFF);
this->changeMenu(gpsPOIMenu.parentMenu);
this->changeMenu(gpsPOIMenu.parentMenu, true);
});
this->addNodes(&gpsPOIMenu, "Mark POI", TFTCYAN, NULL, GPS_MENU, [this]() {
/*if (wifi_scan_obj.currentScanMode != GPS_POI) {
@@ -3537,7 +3537,7 @@ void MenuFunctions::RunSetup()
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
delay(2000);
//wifi_scan_obj.StartScan(WIFI_SCAN_OFF);
this->changeMenu(&gpsPOIMenu);
this->changeMenu(&gpsPOIMenu, true);
});
// GPS Info Menu
@@ -3546,7 +3546,7 @@ void MenuFunctions::RunSetup()
if(wifi_scan_obj.currentScanMode != GPS_TRACKER)
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
wifi_scan_obj.StartScan(WIFI_SCAN_OFF);
this->changeMenu(gpsInfoMenu.parentMenu);
this->changeMenu(gpsInfoMenu.parentMenu, true);
});
}
#endif
@@ -3555,13 +3555,13 @@ void MenuFunctions::RunSetup()
// Device menu
settingsMenu.parentMenu = &deviceMenu;
this->addNodes(&settingsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
changeMenu(settingsMenu.parentMenu);
changeMenu(settingsMenu.parentMenu, true);
});
for (int i = 0; i < settings_obj.getNumberSettings(); i++) {
if (this->callSetting(settings_obj.setting_index_to_name(i)) == "bool")
this->addNodes(&settingsMenu, settings_obj.setting_index_to_name(i), TFTLIGHTGREY, NULL, 0, [this, i]() {
settings_obj.toggleSetting(settings_obj.setting_index_to_name(i));
this->changeMenu(&specSettingMenu);
this->changeMenu(&specSettingMenu, true);
this->displaySetting(settings_obj.setting_index_to_name(i), &settingsMenu, i + 1);
wifi_scan_obj.force_pmkid = settings_obj.loadSetting<bool>(text_table4[5]);
wifi_scan_obj.force_probe = settings_obj.loadSetting<bool>(text_table4[6]);
@@ -3573,29 +3573,29 @@ void MenuFunctions::RunSetup()
// Specific setting menu
specSettingMenu.parentMenu = &settingsMenu;
addNodes(&specSettingMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(specSettingMenu.parentMenu);
this->changeMenu(specSettingMenu.parentMenu, true);
});
// Select update
whichUpdateMenu.parentMenu = &deviceMenu;
this->addNodes(&whichUpdateMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
this->changeMenu(whichUpdateMenu.parentMenu);
this->changeMenu(whichUpdateMenu.parentMenu, true);
});
#ifdef HAS_SD
if (sd_obj.supported) addNodes(&whichUpdateMenu, text_table1[40], TFTMAGENTA, NULL, SD_UPDATE, [this]() {
wifi_scan_obj.currentScanMode = OTA_UPDATE;
this->changeMenu(&confirmMenu);
this->changeMenu(&confirmMenu, true);
});
// Confirm SD update menu
confirmMenu.parentMenu = &whichUpdateMenu;
this->addNodes(&confirmMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(confirmMenu.parentMenu);
this->changeMenu(confirmMenu.parentMenu, true);
});
this->addNodes(&confirmMenu, text14, TFTORANGE, NULL, UPDATE, [this]() {
wifi_scan_obj.currentScanMode = OTA_UPDATE;
this->changeMenu(&failedUpdateMenu);
this->changeMenu(&failedUpdateMenu, true);
sd_obj.runUpdate();
});
#endif
@@ -3607,23 +3607,23 @@ void MenuFunctions::RunSetup()
failedUpdateMenu.parentMenu = &whichUpdateMenu;
this->addNodes(&failedUpdateMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
this->changeMenu(failedUpdateMenu.parentMenu);
this->changeMenu(failedUpdateMenu.parentMenu, true);
});
// Device info menu
infoMenu.parentMenu = &deviceMenu;
this->addNodes(&infoMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
this->changeMenu(infoMenu.parentMenu);
this->changeMenu(infoMenu.parentMenu, true);
});
//language info menu
languageMenu.parentMenu = &deviceMenu;
this->addNodes(&languageMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
this->changeMenu(infoMenu.parentMenu);
this->changeMenu(infoMenu.parentMenu, true);
});
// Set the current menu to the mainMenu
this->changeMenu(&mainMenu);
this->changeMenu(&mainMenu, true);
this->initTime = millis();
}
@@ -3827,7 +3827,7 @@ void MenuFunctions::RunSetup()
if (!do_pass) {
if (this->isKeyPressed('`')) {
this->changeMenu(targetMenu->parentMenu);
this->changeMenu(targetMenu->parentMenu, true);
return wifi_scan_obj.current_mini_kb_ssid;
}
@@ -3844,12 +3844,12 @@ void MenuFunctions::RunSetup()
}
else {
if (this->isKeyPressed('(')) {
this->changeMenu(targetMenu->parentMenu);
this->changeMenu(targetMenu->parentMenu, true);
return wifi_scan_obj.current_mini_kb_ssid;
}
if (this->isKeyPressed('`')) {
this->changeMenu(targetMenu->parentMenu);
this->changeMenu(targetMenu->parentMenu, true);
return "";
}
}
@@ -3973,7 +3973,7 @@ void MenuFunctions::RunSetup()
// Reset the touch keys so we don't activate the keys when we go back
display_obj.menuButton(&t_x, &t_y, display_obj.updateTouch(&t_x, &t_y));
this->changeMenu(targetMenu->parentMenu);
this->changeMenu(targetMenu->parentMenu, true);
return wifi_scan_obj.current_mini_kb_ssid;
}
@@ -4053,7 +4053,7 @@ void MenuFunctions::buildSDFileMenu() {
sdDeleteMenu.name = "SD Files";
this->addNodes(&sdDeleteMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(sdDeleteMenu.parentMenu);
this->changeMenu(sdDeleteMenu.parentMenu, true);
});
for (int x = 0; x < sd_obj.sd_files->size(); x++) {
@@ -4068,7 +4068,7 @@ void MenuFunctions::buildSDFileMenu() {
//sd_obj.sd_files->remove(x);
//sdDeleteMenu.list->remove(x + 1); // +1 for "Back"
this->buildSDFileMenu();
this->changeMenu(&sdDeleteMenu);
this->changeMenu(&sdDeleteMenu, true);
}
});
}
@@ -4216,11 +4216,12 @@ uint16_t MenuFunctions::getColor(uint16_t color) {
}
// Function to change menu
void MenuFunctions::changeMenu(Menu * menu)
{
display_obj.initScrollValues();
display_obj.setupScrollArea(TOP_FIXED_AREA, BOT_FIXED_AREA);
display_obj.tft.init();
void MenuFunctions::changeMenu(Menu* menu, bool simple_change) {
if (!simple_change) {
display_obj.initScrollValues();
display_obj.setupScrollArea(TOP_FIXED_AREA, BOT_FIXED_AREA);
display_obj.tft.init();
}
current_menu = menu;
current_menu->selected = 0;
+1 -1
View File
@@ -295,7 +295,7 @@ class MenuFunctions
void addAPGFX(String type = "AP");
void addStationGFX();
void buildButtons(Menu* menu, int starting_index = 0, String button_name = "");
void changeMenu(Menu* menu);
void changeMenu(Menu* menu, bool simple_change = false);
void drawStatusBar();
void displayCurrentMenu(int start_index = 0);
void main(uint32_t currentTime);