MX 1 год назад
Родитель
Сommit
a7ec92bb76
2 измененных файлов с 10 добавлено и 2 удалено
  1. 1 1
      application.fam
  2. 9 1
      scenes/nfc_magic_scene_mf_classic_dict_attack.c

+ 1 - 1
application.fam

@@ -10,7 +10,7 @@ App(
     ],
     stack_size=4 * 1024,
     fap_description="Application for writing to NFC tags with modifiable sector 0",
-    fap_version="1.9",
+    fap_version="1.10",
     fap_icon="assets/Nfc_10px.png",
     fap_category="NFC",
     fap_icon_assets="assets",

+ 9 - 1
scenes/nfc_magic_scene_mf_classic_dict_attack.c

@@ -32,7 +32,15 @@ NfcCommand nfc_dict_attack_worker_callback(NfcGenericEvent event, void* context)
             instance->view_dispatcher, NfcMagicAppCustomEventCardLost);
     } else if(mfc_event->type == MfClassicPollerEventTypeRequestMode) {
         const MfClassicData* mfc_data = nfc_poller_get_data(instance->poller);
-        nfc_device_set_data(instance->target_dev, NfcProtocolMfClassic, mfc_data);
+
+        if(nfc_device_get_protocol(instance->target_dev) == NfcProtocolInvalid) {
+            FURI_LOG_D(TAG, "Setting MFC data to target device");
+            nfc_device_set_data(instance->target_dev, NfcProtocolMfClassic, mfc_data);
+        } else {
+            FURI_LOG_D(TAG, "MFC data already set to target device");
+            mfc_data = nfc_device_get_data(instance->target_dev, NfcProtocolMfClassic);
+        }
+
         FURI_LOG_D(TAG, "MFC type: %d", mfc_data->type);
         mfc_event->data->poller_mode.mode = MfClassicPollerModeDictAttack;
         mfc_event->data->poller_mode.data = mfc_data;