diff --git a/lib/nfc/protocols/mf_desfire/mf_desfire_poller.c b/lib/nfc/protocols/mf_desfire/mf_desfire_poller.c index 8b94d8eaaa1..3b68b650768 100644 --- a/lib/nfc/protocols/mf_desfire/mf_desfire_poller.c +++ b/lib/nfc/protocols/mf_desfire/mf_desfire_poller.c @@ -64,13 +64,7 @@ static NfcCommand mf_desfire_poller_handler_read_version(MfDesfirePoller* instan instance->error = mf_desfire_poller_read_version(instance, &instance->data->version); if(instance->error == MfDesfireErrorNone) { FURI_LOG_D(TAG, "Read version success"); - FURI_LOG_D( - TAG, "%d.%d", instance->data->version.hw_major, instance->data->version.sw_major); - if(instance->data->version.hw_major == 0) { //pre-EV1 desfire cards - instance->state = MfDesfirePollerStateReadMasterKeySettings; - } else { - instance->state = MfDesfirePollerStateReadFreeMemory; - } + instance->state = MfDesfirePollerStateReadFreeMemory; } else { FURI_LOG_E(TAG, "Failed to read version"); iso14443_4a_poller_halt(instance->iso14443_4a_poller); @@ -83,6 +77,11 @@ static NfcCommand mf_desfire_poller_handler_read_version(MfDesfirePoller* instan static NfcCommand mf_desfire_poller_handler_read_free_memory(MfDesfirePoller* instance) { NfcCommand command = NfcCommandContinue; + if(instance->data->version.hw_major == 0x00 && instance->data->version.hw_minor == 0x02) { + instance->state = MfDesfirePollerStateReadMasterKeySettings; + return command; + } + instance->error = mf_desfire_poller_read_free_memory(instance, &instance->data->free_memory); if(instance->error == MfDesfireErrorNone) { FURI_LOG_D(TAG, "Read free memory success");