Jelajahi Sumber

Update ble spam and esp flasher from fw repo

Willy-JL 2 tahun lalu
induk
melakukan
5fa5c7c610
23 mengubah file dengan 78 tambahan dan 54 penghapusan
  1. 2 2
      ble_spam/protocols/continuity.c
  2. 27 0
      ble_spam/protocols/fastpair.c
  3. 0 6
      esp_flasher/esp_flasher_uart.c
  4. 7 0
      esp_flasher/esp_flasher_uart.h
  5. 13 9
      esp_flasher/esp_flasher_worker.c
  6. 2 2
      esp_flasher/lib/esp-serial-flasher/port/esp32_port.c
  7. 4 1
      esp_flasher/lib/esp-serial-flasher/src/esp_loader.c
  8. 0 0
      esp_flasher/resources/apps_data/esp_flasher/assets/blackmagic/blackmagic.bin
  9. 0 0
      esp_flasher/resources/apps_data/esp_flasher/assets/blackmagic/bootloader.bin
  10. 0 0
      esp_flasher/resources/apps_data/esp_flasher/assets/blackmagic/partition-table.bin
  11. TEMPAT SAMPAH
      esp_flasher/resources/apps_data/esp_flasher/assets/devpro-wroom/evilportal/EvilPortal.ino.bin
  12. TEMPAT SAMPAH
      esp_flasher/resources/apps_data/esp_flasher/assets/devpro-wroom/evilportal/EvilPortal.ino.bootloader.bin
  13. TEMPAT SAMPAH
      esp_flasher/resources/apps_data/esp_flasher/assets/devpro-wroom/evilportal/EvilPortal.ino.partitions.bin
  14. TEMPAT SAMPAH
      esp_flasher/resources/apps_data/esp_flasher/assets/devpro-wroom/marauder/marauder_dev_board_pro.bin
  15. 0 0
      esp_flasher/resources/apps_data/esp_flasher/assets/marauder/DevproWroom/esp32_marauder.ino.bootloader.bin
  16. TEMPAT SAMPAH
      esp_flasher/resources/apps_data/esp_flasher/assets/marauder/DevproWroom/esp32_marauder_dev_board_pro.bin
  17. TEMPAT SAMPAH
      esp_flasher/resources/apps_data/esp_flasher/assets/marauder/WifidevS2/esp32_marauder.ino.bootloader.bin
  18. TEMPAT SAMPAH
      esp_flasher/resources/apps_data/esp_flasher/assets/marauder/WifidevS2/esp32_marauder_flipper_sd_serial.bin
  19. 0 0
      esp_flasher/resources/apps_data/esp_flasher/assets/marauder/boot_app0.bin
  20. 0 0
      esp_flasher/resources/apps_data/esp_flasher/assets/marauder/esp32_marauder.ino.partitions.bin
  21. TEMPAT SAMPAH
      esp_flasher/resources/apps_data/esp_flasher/assets/wifidev-s2/dualboot.bin
  22. 17 28
      esp_flasher/scenes/esp_flasher_scene_quick.c
  23. 6 6
      esp_flasher/scenes/esp_flasher_scene_start.c

+ 2 - 2
ble_spam/protocols/continuity.c

@@ -36,8 +36,8 @@ const struct {
     uint8_t value;
     uint8_t value;
     const char* name;
     const char* name;
 } pp_prefixes[] = {
 } pp_prefixes[] = {
-    {0x01, "New Device"},
-    {0x07, "Not Your Device"},
+    {0x07, "New Device"},
+    {0x01, "Not Your Device"},
     {0x05, "New Airtag"},
     {0x05, "New Airtag"},
 };
 };
 const uint8_t pp_prefixes_count = COUNT_OF(pp_prefixes);
 const uint8_t pp_prefixes_count = COUNT_OF(pp_prefixes);

+ 27 - 0
ble_spam/protocols/fastpair.c

@@ -502,6 +502,33 @@ const struct {
     {0xE6E8B8, "POCO Pods"},
     {0xE6E8B8, "POCO Pods"},
     {0xE750CE, "Jabra Evolve2 75"},
     {0xE750CE, "Jabra Evolve2 75"},
     {0xF52494, "JBL LIVE PRO+ TWS"},
     {0xF52494, "JBL LIVE PRO+ TWS"},
+    {0x000006, "Google Pixel Buds"},
+    {0x00000A, "Test 00000a - Anti-Spoofing"},
+    {0x00000C, "Google Gphones"},
+    {0x000049, "Fast Pair Headphones"},
+    {0x003001, "Libratone Q Adapt On-Ear"},
+    {0x003D8A, "Cleer FLOW Ⅱ"},
+    {0x0052DA, "blackbox TRIP II"},
+    {0x109201, "Beoplay H9 3rd Generation"},
+    {0x124366, "BLE-Phone"},
+    {0x126644, "WH-1000XM4"},
+    {0x284500, "Plantronics PLT_K2"},
+    {0x532011, "Big Bang e Gen 3"},
+    {0x549547, "JBL WAVE BUDS"},
+    {0x567679, "Pixel Buds Pro"},
+    {0x575836, "Sony WI-1000X"},
+    {0x596007, "MOTIF II A.N.C."},
+    {0x612907, "Redmi Buds 4 Lite"},
+    {0x614199, "Oraimo FreePods Pro"},
+    {0x625740, "LG-TONE-NP3"},
+    {0x641372, "Sony WI-1000X"},
+    {0x641630, "boAt Airdopes 452"},
+    {0x664454, "JBL TUNE 520BT"},
+    {0x706908, "Sony WH-1000XM3"},
+    {0x837980, "Sony WH-1000XM3"},
+    {0x855347, "NIRVANA NEBULA"},
+    {0x861698, "LinkBuds"},
+    {0xCB2FE7, "soundcore Motion X500"},
 
 
     // Custom debug popups
     // Custom debug popups
     {0xD99CA1, "Flipper Zero"},
     {0xD99CA1, "Flipper Zero"},

+ 0 - 6
esp_flasher/esp_flasher_uart.c

@@ -1,12 +1,6 @@
 #include "esp_flasher_app_i.h"
 #include "esp_flasher_app_i.h"
 #include "esp_flasher_uart.h"
 #include "esp_flasher_uart.h"
 
 
-#include <xtreme.h>
-
-#define UART_CH \
-    (xtreme_settings.uart_esp_channel == UARTDefault ? FuriHalUartIdUSART1 : FuriHalUartIdLPUART1)
-#define BAUDRATE (115200)
-
 struct EspFlasherUart {
 struct EspFlasherUart {
     EspFlasherApp* app;
     EspFlasherApp* app;
     FuriHalUartId channel;
     FuriHalUartId channel;

+ 7 - 0
esp_flasher/esp_flasher_uart.h

@@ -2,6 +2,13 @@
 
 
 #include "furi_hal.h"
 #include "furi_hal.h"
 
 
+#include <xtreme.h>
+
+#define UART_CH \
+    (xtreme_settings.uart_esp_channel == UARTDefault ? FuriHalUartIdUSART1 : FuriHalUartIdLPUART1)
+#define BAUDRATE (115200)
+#define FAST_BAUDRATE (921600)
+
 #define RX_BUF_SIZE (2048)
 #define RX_BUF_SIZE (2048)
 
 
 typedef struct EspFlasherUart EspFlasherUart;
 typedef struct EspFlasherUart EspFlasherUart;

+ 13 - 9
esp_flasher/esp_flasher_worker.c

@@ -230,29 +230,33 @@ static int32_t esp_flasher_flash_bin(void* context) {
     // higher BR
     // higher BR
     if(!err && app->turbospeed) {
     if(!err && app->turbospeed) {
         loader_port_debug_print("Increasing speed for faster flash\n");
         loader_port_debug_print("Increasing speed for faster flash\n");
-        err = esp_loader_change_transmission_rate(921600);
-        if (err != ESP_LOADER_SUCCESS) {
+        err = esp_loader_change_transmission_rate(FAST_BAUDRATE);
+        if(err != ESP_LOADER_SUCCESS) {
             char err_msg[256];
             char err_msg[256];
             snprintf(
             snprintf(
-                err_msg,
-                sizeof(err_msg),
-                "Cannot change transmission rate. Error: %u\n",
-                err);
+                err_msg, sizeof(err_msg), "Cannot change transmission rate. Error: %u\n", err);
             loader_port_debug_print(err_msg);
             loader_port_debug_print(err_msg);
         }
         }
-        furi_hal_uart_set_br(FuriHalUartIdUSART1, 921600);
+        furi_hal_uart_set_br(UART_CH, FAST_BAUDRATE);
     }
     }
 
 
     if(!err) {
     if(!err) {
         loader_port_debug_print("Connected\n");
         loader_port_debug_print("Connected\n");
+        uint32_t start_time = furi_get_tick();
+
         if(!_switch_fw(app)) {
         if(!_switch_fw(app)) {
             _flash_all_files(app);
             _flash_all_files(app);
         }
         }
         app->switch_fw = SwitchNotSet;
         app->switch_fw = SwitchNotSet;
 
 
-        if (app->turbospeed) {
+        FuriString* flash_time =
+            furi_string_alloc_printf("Flash took: %lds\n", (furi_get_tick() - start_time) / 1000);
+        loader_port_debug_print(furi_string_get_cstr(flash_time));
+        furi_string_free(flash_time);
+
+        if(app->turbospeed) {
             loader_port_debug_print("Restoring transmission rate\n");
             loader_port_debug_print("Restoring transmission rate\n");
-            furi_hal_uart_set_br(FuriHalUartIdUSART1, 115200);
+            furi_hal_uart_set_br(UART_CH, BAUDRATE);
         }
         }
 
 
         loader_port_debug_print(
         loader_port_debug_print(

+ 2 - 2
esp_flasher/lib/esp-serial-flasher/port/esp32_port.c

@@ -96,7 +96,7 @@ void loader_port_esp32_deinit(void)
 esp_loader_error_t loader_port_write(const uint8_t *data, uint16_t size, uint32_t timeout)
 esp_loader_error_t loader_port_write(const uint8_t *data, uint16_t size, uint32_t timeout)
 {
 {
     uart_write_bytes(s_uart_port, (const char *)data, size);
     uart_write_bytes(s_uart_port, (const char *)data, size);
-    esp_err_t err = uart_wait_tx_done(s_uart_port, pdMS_TO_TICKS(timeout));
+    esp_err_t err = uart_wait_tx_done(s_uart_port, timeout);
 
 
     if (err == ESP_OK) {
     if (err == ESP_OK) {
 #ifdef SERIAL_FLASHER_DEBUG_TRACE
 #ifdef SERIAL_FLASHER_DEBUG_TRACE
@@ -113,7 +113,7 @@ esp_loader_error_t loader_port_write(const uint8_t *data, uint16_t size, uint32_
 
 
 esp_loader_error_t loader_port_read(uint8_t *data, uint16_t size, uint32_t timeout)
 esp_loader_error_t loader_port_read(uint8_t *data, uint16_t size, uint32_t timeout)
 {
 {
-    int read = uart_read_bytes(s_uart_port, data, size, pdMS_TO_TICKS(timeout));
+    int read = uart_read_bytes(s_uart_port, data, size, timeout);
 
 
     if (read < 0) {
     if (read < 0) {
         return ESP_LOADER_ERROR_FAIL;
         return ESP_LOADER_ERROR_FAIL;

+ 4 - 1
esp_flasher/lib/esp-serial-flasher/src/esp_loader.c

@@ -85,7 +85,10 @@ static uint32_t timeout_per_mb(uint32_t size_bytes, uint32_t time_per_mb)
 
 
 esp_loader_error_t esp_loader_connect(esp_loader_connect_args_t *connect_args)
 esp_loader_error_t esp_loader_connect(esp_loader_connect_args_t *connect_args)
 {
 {
-    loader_port_enter_bootloader();
+    // if bootloader mode ever give issues, uncomment this function
+    // it shouldnt be needed because we enter bootloader mode before this function is called
+    // this function breaks bootloader mode for the Multi-fucc and Xeon
+    //loader_port_enter_bootloader();
 
 
     RETURN_ON_ERROR(loader_initialize_conn(connect_args));
     RETURN_ON_ERROR(loader_initialize_conn(connect_args));
 
 

+ 0 - 0
esp_flasher/resources/apps_data/esp_flasher/assets/wifidev-s2/blackmagic/blackmagic.bin → esp_flasher/resources/apps_data/esp_flasher/assets/blackmagic/blackmagic.bin


+ 0 - 0
esp_flasher/resources/apps_data/esp_flasher/assets/wifidev-s2/blackmagic/bootloader.bin → esp_flasher/resources/apps_data/esp_flasher/assets/blackmagic/bootloader.bin


+ 0 - 0
esp_flasher/resources/apps_data/esp_flasher/assets/wifidev-s2/blackmagic/partition-table.bin → esp_flasher/resources/apps_data/esp_flasher/assets/blackmagic/partition-table.bin


TEMPAT SAMPAH
esp_flasher/resources/apps_data/esp_flasher/assets/devpro-wroom/evilportal/EvilPortal.ino.bin


TEMPAT SAMPAH
esp_flasher/resources/apps_data/esp_flasher/assets/devpro-wroom/evilportal/EvilPortal.ino.bootloader.bin


TEMPAT SAMPAH
esp_flasher/resources/apps_data/esp_flasher/assets/devpro-wroom/evilportal/EvilPortal.ino.partitions.bin


TEMPAT SAMPAH
esp_flasher/resources/apps_data/esp_flasher/assets/devpro-wroom/marauder/marauder_dev_board_pro.bin


+ 0 - 0
esp_flasher/resources/apps_data/esp_flasher/assets/devpro-wroom/marauder/bootloader.bin → esp_flasher/resources/apps_data/esp_flasher/assets/marauder/DevproWroom/esp32_marauder.ino.bootloader.bin


TEMPAT SAMPAH
esp_flasher/resources/apps_data/esp_flasher/assets/marauder/DevproWroom/esp32_marauder_dev_board_pro.bin


TEMPAT SAMPAH
esp_flasher/resources/apps_data/esp_flasher/assets/marauder/WifidevS2/esp32_marauder.ino.bootloader.bin


TEMPAT SAMPAH
esp_flasher/resources/apps_data/esp_flasher/assets/marauder/WifidevS2/esp32_marauder_flipper_sd_serial.bin


+ 0 - 0
esp_flasher/resources/apps_data/esp_flasher/assets/devpro-wroom/boot_app0.bin → esp_flasher/resources/apps_data/esp_flasher/assets/marauder/boot_app0.bin


+ 0 - 0
esp_flasher/resources/apps_data/esp_flasher/assets/devpro-wroom/marauder/partitions.bin → esp_flasher/resources/apps_data/esp_flasher/assets/marauder/esp32_marauder.ino.partitions.bin


TEMPAT SAMPAH
esp_flasher/resources/apps_data/esp_flasher/assets/wifidev-s2/dualboot.bin


+ 17 - 28
esp_flasher/scenes/esp_flasher_scene_quick.c

@@ -4,9 +4,8 @@ enum QuickState {
     QuickStart,
     QuickStart,
     QuickWifidevS2,
     QuickWifidevS2,
     QuickWifidevS2Blackmagic,
     QuickWifidevS2Blackmagic,
-    QuickWifidevS2Dualboot,
+    QuickWifidevS2Marauder,
     QuickDevproWroom,
     QuickDevproWroom,
-    QuickDevproWroomEvilportal,
     QuickDevproWroomMarauder,
     QuickDevproWroomMarauder,
 };
 };
 
 
@@ -42,7 +41,7 @@ void esp_flasher_scene_quick_on_enter(void* context) {
             app);
             app);
         break;
         break;
     case QuickWifidevS2Blackmagic:
     case QuickWifidevS2Blackmagic:
-    case QuickWifidevS2Dualboot:
+    case QuickWifidevS2Marauder:
         submenu_set_header(submenu, "Choose Firmware:");
         submenu_set_header(submenu, "Choose Firmware:");
         submenu_add_item(
         submenu_add_item(
             submenu,
             submenu,
@@ -52,23 +51,16 @@ void esp_flasher_scene_quick_on_enter(void* context) {
             app);
             app);
         submenu_add_item(
         submenu_add_item(
             submenu,
             submenu,
-            "Evil Portal + Marauder",
-            QuickWifidevS2Dualboot,
+            "Marauder (has Evil Portal)",
+            QuickWifidevS2Marauder,
             esp_flasher_scene_quick_submenu_callback,
             esp_flasher_scene_quick_submenu_callback,
             app);
             app);
         break;
         break;
-    case QuickDevproWroomEvilportal:
     case QuickDevproWroomMarauder:
     case QuickDevproWroomMarauder:
         submenu_set_header(submenu, "Choose Firmware:");
         submenu_set_header(submenu, "Choose Firmware:");
         submenu_add_item(
         submenu_add_item(
             submenu,
             submenu,
-            "Evil Portal",
-            QuickDevproWroomEvilportal,
-            esp_flasher_scene_quick_submenu_callback,
-            app);
-        submenu_add_item(
-            submenu,
-            "Marauder",
+            "Marauder (has Evil Portal)",
             QuickDevproWroomMarauder,
             QuickDevproWroomMarauder,
             esp_flasher_scene_quick_submenu_callback,
             esp_flasher_scene_quick_submenu_callback,
             app);
             app);
@@ -106,26 +98,23 @@ bool esp_flasher_scene_quick_on_event(void* context, SceneManagerEvent event) {
             flash = false;
             flash = false;
             break;
             break;
         case QuickWifidevS2Blackmagic:
         case QuickWifidevS2Blackmagic:
-            boot = APP_DATA_PATH("assets/wifidev-s2/blackmagic/bootloader.bin");
-            part = APP_DATA_PATH("assets/wifidev-s2/blackmagic/partition-table.bin");
-            firm = APP_DATA_PATH("assets/wifidev-s2/blackmagic/blackmagic.bin");
+            boot = APP_DATA_PATH("assets/blackmagic/bootloader.bin");
+            part = APP_DATA_PATH("assets/blackmagic/partition-table.bin");
+            firm = APP_DATA_PATH("assets/blackmagic/blackmagic.bin");
             enter_bootloader = true;
             enter_bootloader = true;
             break;
             break;
-        case QuickWifidevS2Dualboot:
-            boot = APP_DATA_PATH("assets/wifidev-s2/dualboot.bin");
+        case QuickWifidevS2Marauder:
+            boot = APP_DATA_PATH("assets/marauder/WifidevS2/esp32_marauder.ino.bootloader.bin");
+            part = APP_DATA_PATH("assets/marauder/esp32_marauder.ino.partitions.bin");
+            app0 = APP_DATA_PATH("assets/marauder/boot_app0.bin");
+            firm = APP_DATA_PATH("assets/marauder/WifidevS2/esp32_marauder_flipper_sd_serial.bin");
             enter_bootloader = true;
             enter_bootloader = true;
             break;
             break;
-        case QuickDevproWroomEvilportal:
-            boot = APP_DATA_PATH("assets/devpro-wroom/evilportal/EvilPortal.ino.bootloader.bin");
-            part = APP_DATA_PATH("assets/devpro-wroom/evilportal/EvilPortal.ino.partitions.bin");
-            app0 = APP_DATA_PATH("assets/devpro-wroom/boot_app0.bin");
-            firm = APP_DATA_PATH("assets/devpro-wroom/evilportal/EvilPortal.ino.bin");
-            break;
         case QuickDevproWroomMarauder:
         case QuickDevproWroomMarauder:
-            boot = APP_DATA_PATH("assets/devpro-wroom/marauder/bootloader.bin");
-            part = APP_DATA_PATH("assets/devpro-wroom/marauder/partitions.bin");
-            app0 = APP_DATA_PATH("assets/devpro-wroom/boot_app0.bin");
-            firm = APP_DATA_PATH("assets/devpro-wroom/marauder/marauder_dev_board_pro.bin");
+            boot = APP_DATA_PATH("assets/marauder/DevproWroom/esp32_marauder.ino.bootloader.bin");
+            part = APP_DATA_PATH("assets/marauder/esp32_marauder.ino.partitions.bin");
+            app0 = APP_DATA_PATH("assets/marauder/boot_app0.bin");
+            firm = APP_DATA_PATH("assets/marauder/DevproWroom/esp32_marauder_dev_board_pro.bin");
             break;
             break;
         default:
         default:
             flash = false;
             flash = false;

+ 6 - 6
esp_flasher/scenes/esp_flasher_scene_start.c

@@ -31,20 +31,20 @@ void esp_flasher_scene_start_on_enter(void* context) {
         app);
         app);
     submenu_add_item(
     submenu_add_item(
         submenu,
         submenu,
-        "Select Evil Portal (Fw A)",
-        SubmenuIndexEspFlasherSwitchA,
+        "Manual Flash",
+        SubmenuIndexEspFlasherManualFlash,
         esp_flasher_scene_start_submenu_callback,
         esp_flasher_scene_start_submenu_callback,
         app);
         app);
     submenu_add_item(
     submenu_add_item(
         submenu,
         submenu,
-        "Select Marauder (Fw B)",
-        SubmenuIndexEspFlasherSwitchB,
+        "Switch to Firmware A",
+        SubmenuIndexEspFlasherSwitchA,
         esp_flasher_scene_start_submenu_callback,
         esp_flasher_scene_start_submenu_callback,
         app);
         app);
     submenu_add_item(
     submenu_add_item(
         submenu,
         submenu,
-        "Manual Flash",
-        SubmenuIndexEspFlasherManualFlash,
+        "Switch to Firmware B",
+        SubmenuIndexEspFlasherSwitchB,
         esp_flasher_scene_start_submenu_callback,
         esp_flasher_scene_start_submenu_callback,
         app);
         app);
     submenu_add_item(
     submenu_add_item(