NFC: Fixed writing gen1a magic tags with invalid BCC (#2511)
Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		| @@ -6,8 +6,7 @@ | ||||
|  | ||||
| #define MAGIC_CMD_WUPA (0x40) | ||||
| #define MAGIC_CMD_WIPE (0x41) | ||||
| #define MAGIC_CMD_READ (0x43) | ||||
| #define MAGIC_CMD_WRITE (0x43) | ||||
| #define MAGIC_CMD_ACCESS (0x43) | ||||
|  | ||||
| #define MAGIC_MIFARE_READ_CMD (0x30) | ||||
| #define MAGIC_MIFARE_WRITE_CMD (0xA0) | ||||
| @@ -70,7 +69,7 @@ bool magic_data_access_cmd() { | ||||
|     FuriHalNfcReturn ret = 0; | ||||
|  | ||||
|     do { | ||||
|         tx_data[0] = MAGIC_CMD_WRITE; | ||||
|         tx_data[0] = MAGIC_CMD_ACCESS; | ||||
|         ret = furi_hal_nfc_ll_txrx_bits( | ||||
|             tx_data, | ||||
|             8, | ||||
|   | ||||
| @@ -85,15 +85,17 @@ void nfc_magic_worker_write(NfcMagicWorker* nfc_magic_worker) { | ||||
|                 card_found_notified = true; | ||||
|             } | ||||
|             furi_hal_nfc_sleep(); | ||||
|  | ||||
|             if(!magic_wupa()) { | ||||
|                 FURI_LOG_E(TAG, "Not Magic card"); | ||||
|                 FURI_LOG_E(TAG, "No card response to WUPA (not a magic card)"); | ||||
|                 nfc_magic_worker->callback( | ||||
|                     NfcMagicWorkerEventWrongCard, nfc_magic_worker->context); | ||||
|                 break; | ||||
|             } | ||||
|             furi_hal_nfc_sleep(); | ||||
|         } | ||||
|         if(magic_wupa()) { | ||||
|             if(!magic_data_access_cmd()) { | ||||
|                 FURI_LOG_E(TAG, "Not Magic card"); | ||||
|                 FURI_LOG_E(TAG, "No card response to data access command (not a magic card)"); | ||||
|                 nfc_magic_worker->callback( | ||||
|                     NfcMagicWorkerEventWrongCard, nfc_magic_worker->context); | ||||
|                 break; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user