From 576aecbb8a7ec98829c7d9a300a09993d28f6198 Mon Sep 17 00:00:00 2001 From: Willy-JL <49810075+Willy-JL@users.noreply.github.com> Date: Sun, 11 Jun 2023 23:27:15 +0100 Subject: [PATCH] BadKB only save prev config at startup --- applications/main/bad_kb/bad_kb_app.c | 10 ++++++++++ applications/main/bad_kb/helpers/ducky_script.c | 10 +--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/applications/main/bad_kb/bad_kb_app.c b/applications/main/bad_kb/bad_kb_app.c index 1c41618de..f4c771691 100644 --- a/applications/main/bad_kb/bad_kb_app.c +++ b/applications/main/bad_kb/bad_kb_app.c @@ -130,6 +130,16 @@ BadKbApp* bad_kb_app_alloc(char* arg) { app->bt->suppress_pin_screen = true; app->is_bt = XTREME_SETTINGS()->bad_bt; app->bt_remember = XTREME_SETTINGS()->bad_bt_remember; + + // Save prev config + BadKbConfig* prev = &app->prev_config; + prev->usb_mode = furi_hal_usb_get_config(); + FuriHalBtProfile kbd = FuriHalBtProfileHidKeyboard; + prev->bt_mode = furi_hal_bt_get_profile_pairing_method(kbd); + strcpy(prev->bt_name, furi_hal_bt_get_profile_adv_name(kbd)); + memcpy(prev->bt_mac, furi_hal_bt_get_profile_mac_addr(kbd), BAD_KB_MAC_LEN); + + // Adjust BT remember MAC to be serial MAC +2 memcpy(BAD_KB_BOUND_MAC, furi_hal_version_get_ble_mac(), BAD_KB_MAC_LEN); BAD_KB_BOUND_MAC[2] += 2; diff --git a/applications/main/bad_kb/helpers/ducky_script.c b/applications/main/bad_kb/helpers/ducky_script.c index c95d47fa6..16e7d04fd 100644 --- a/applications/main/bad_kb/helpers/ducky_script.c +++ b/applications/main/bad_kb/helpers/ducky_script.c @@ -511,15 +511,9 @@ static uint32_t bad_kb_flags_get(uint32_t flags_mask, uint32_t timeout) { int32_t bad_kb_conn_apply(BadKbApp* app) { if(app->is_bt) { // Shorthands so this bs is readable - BadKbConfig* prev = &app->prev_config; BadKbConfig* cfg = app->set_bt_id ? &app->id_config : &app->config; FuriHalBtProfile kbd = FuriHalBtProfileHidKeyboard; - // Save prev config - strcpy(prev->bt_name, furi_hal_bt_get_profile_adv_name(kbd)); - memcpy(prev->bt_mac, furi_hal_bt_get_profile_mac_addr(kbd), BAD_KB_MAC_LEN); - prev->bt_mode = furi_hal_bt_get_profile_pairing_method(kbd); - // Setup new config bt_timeout = bt_hid_delays[LevelRssi39_0]; bt_disconnect(app->bt); @@ -555,9 +549,6 @@ int32_t bad_kb_conn_apply(BadKbApp* app) { app->conn_mode = BadKbConnModeBt; } else { - // Save prev config (TODO: maybe also restore config context?) - app->prev_config.usb_mode = furi_hal_usb_get_config(); - // Unlock RPC connections furi_hal_usb_unlock(); @@ -590,6 +581,7 @@ void bad_kb_conn_reset(BadKbApp* app) { bt_enable_peer_key_update(app->bt); } else if(app->conn_mode == BadKbConnModeUsb) { + // TODO: maybe also restore USB config context? furi_check(furi_hal_usb_set_config(app->prev_config.usb_mode, NULL)); }