mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-06-02 18:13:33 -07:00
Revert NFC FeliCa WIP PR (breaks more than adds)
This commit is contained in:
@@ -83,9 +83,9 @@ static void nfc_generate_mf_ul_common(NfcDeviceData* data) {
|
||||
data->nfc_data.interface = FuriHalNfcInterfaceRf;
|
||||
data->nfc_data.uid_len = 7;
|
||||
nfc_generate_mf_ul_uid(data->nfc_data.uid);
|
||||
data->nfc_data.a_data.atqa[0] = 0x44;
|
||||
data->nfc_data.a_data.atqa[1] = 0x00;
|
||||
data->nfc_data.a_data.sak = 0x00;
|
||||
data->nfc_data.atqa[0] = 0x44;
|
||||
data->nfc_data.atqa[1] = 0x00;
|
||||
data->nfc_data.sak = 0x00;
|
||||
data->protocol = NfcDeviceProtocolMifareUl;
|
||||
}
|
||||
|
||||
@@ -94,15 +94,9 @@ static void
|
||||
data->nfc_data.type = FuriHalNfcTypeA;
|
||||
data->nfc_data.interface = FuriHalNfcInterfaceRf;
|
||||
data->nfc_data.uid_len = uid_len;
|
||||
data->nfc_data.a_data.atqa[0] = 0x44;
|
||||
data->nfc_data.a_data.atqa[1] = 0x00;
|
||||
data->nfc_data.a_data.sak = 0x08;
|
||||
nfc_generate_mf_classic_block_0(
|
||||
data->mf_classic_data.block[0].value,
|
||||
uid_len,
|
||||
data->nfc_data.a_data.sak,
|
||||
data->nfc_data.a_data.atqa[0],
|
||||
data->nfc_data.a_data.atqa[1]);
|
||||
data->nfc_data.atqa[0] = 0x44;
|
||||
data->nfc_data.atqa[1] = 0x00;
|
||||
data->nfc_data.sak = 0x08;
|
||||
data->protocol = NfcDeviceProtocolMifareClassic;
|
||||
data->mf_classic_data.type = type;
|
||||
}
|
||||
@@ -256,9 +250,9 @@ static void
|
||||
mful->data_size = num_pages * 4;
|
||||
mful->data_read = mful->data_size;
|
||||
memcpy(mful->data, data->nfc_data.uid, data->nfc_data.uid_len);
|
||||
mful->data[7] = data->nfc_data.a_data.sak;
|
||||
mful->data[8] = data->nfc_data.a_data.atqa[0];
|
||||
mful->data[9] = data->nfc_data.a_data.atqa[1];
|
||||
mful->data[7] = data->nfc_data.sak;
|
||||
mful->data[8] = data->nfc_data.atqa[0];
|
||||
mful->data[9] = data->nfc_data.atqa[1];
|
||||
|
||||
uint16_t config_register_page;
|
||||
uint16_t session_register_page;
|
||||
@@ -364,7 +358,7 @@ void nfc_generate_mf_classic(NfcDeviceData* data, uint8_t uid_len, MfClassicType
|
||||
mf_classic_set_block_read(mfc, i, &mfc->block[i]);
|
||||
}
|
||||
// Set SAK to 18
|
||||
data->nfc_data.a_data.sak = 0x18;
|
||||
data->nfc_data.sak = 0x18;
|
||||
} else if(type == MfClassicType1k) {
|
||||
// Set every block to 0xFF
|
||||
for(uint16_t i = 1; i < MF_CLASSIC_1K_TOTAL_SECTORS_NUM * 4; i += 1) {
|
||||
@@ -376,7 +370,7 @@ void nfc_generate_mf_classic(NfcDeviceData* data, uint8_t uid_len, MfClassicType
|
||||
mf_classic_set_block_read(mfc, i, &mfc->block[i]);
|
||||
}
|
||||
// Set SAK to 08
|
||||
data->nfc_data.a_data.sak = 0x08;
|
||||
data->nfc_data.sak = 0x08;
|
||||
} else if(type == MfClassicTypeMini) {
|
||||
// Set every block to 0xFF
|
||||
for(uint16_t i = 1; i < MF_MINI_TOTAL_SECTORS_NUM * 4; i += 1) {
|
||||
@@ -388,15 +382,15 @@ void nfc_generate_mf_classic(NfcDeviceData* data, uint8_t uid_len, MfClassicType
|
||||
mf_classic_set_block_read(mfc, i, &mfc->block[i]);
|
||||
}
|
||||
// Set SAK to 09
|
||||
data->nfc_data.a_data.sak = 0x09;
|
||||
data->nfc_data.sak = 0x09;
|
||||
}
|
||||
|
||||
nfc_generate_mf_classic_block_0(
|
||||
data->mf_classic_data.block[0].value,
|
||||
uid_len,
|
||||
data->nfc_data.a_data.sak,
|
||||
data->nfc_data.a_data.atqa[0],
|
||||
data->nfc_data.a_data.atqa[1]);
|
||||
data->nfc_data.sak,
|
||||
data->nfc_data.atqa[0],
|
||||
data->nfc_data.atqa[1]);
|
||||
|
||||
mfc->type = type;
|
||||
}
|
||||
|
||||
@@ -56,11 +56,13 @@ struct ReaderAnalyzer {
|
||||
|
||||
static FuriHalNfcDevData reader_analyzer_nfc_data[] = {
|
||||
[ReaderAnalyzerNfcDataMfClassic] =
|
||||
{.interface = FuriHalNfcInterfaceRf,
|
||||
{.sak = 0x08,
|
||||
.atqa = {0x44, 0x00},
|
||||
.interface = FuriHalNfcInterfaceRf,
|
||||
.type = FuriHalNfcTypeA,
|
||||
.uid_len = READER_ANALYZER_UID_SIZE,
|
||||
.uid = {0x04, 0x77, 0x70, 0x2A, 0x23, 0x4F, 0x80},
|
||||
.a_data = {.sak = 0x08, .atqa = {0x44, 0x00}, .cuid = 0x2A234F80}},
|
||||
.cuid = 0x2A234F80},
|
||||
};
|
||||
|
||||
void reader_analyzer_parse(ReaderAnalyzer* instance, uint8_t* buffer, size_t size) {
|
||||
@@ -122,7 +124,7 @@ ReaderAnalyzer* reader_analyzer_alloc() {
|
||||
reader_analyzer_nfc_data[ReaderAnalyzerNfcDataMfClassic].uid,
|
||||
Uid.full_uid,
|
||||
READER_ANALYZER_UID_SIZE);
|
||||
reader_analyzer_nfc_data[ReaderAnalyzerNfcDataMfClassic].a_data.cuid =
|
||||
reader_analyzer_nfc_data[ReaderAnalyzerNfcDataMfClassic].cuid =
|
||||
nfc_util_bytes2num(Uid.uid_converter.cuid, READER_ANALYZER_CUID_SIZE);
|
||||
|
||||
instance->nfc_data = reader_analyzer_nfc_data[ReaderAnalyzerNfcDataMfClassic];
|
||||
@@ -156,7 +158,7 @@ void reader_analyzer_start(ReaderAnalyzer* instance, ReaderAnalyzerMode mode) {
|
||||
instance->debug_log = nfc_debug_log_alloc();
|
||||
}
|
||||
if(mode & ReaderAnalyzerModeMfkey) {
|
||||
instance->mfkey32 = mfkey32_alloc(instance->nfc_data.a_data.cuid);
|
||||
instance->mfkey32 = mfkey32_alloc(instance->nfc_data.cuid);
|
||||
if(instance->mfkey32) {
|
||||
mfkey32_set_callback(instance->mfkey32, reader_analyzer_mfkey_callback, instance);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user