Skip to content

Commit

Permalink
upd nfcmaker
Browse files Browse the repository at this point in the history
  • Loading branch information
xMasterX committed Jan 11, 2024
1 parent cde30bb commit 9721102
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 16 deletions.
Binary file added base_pack/nfc_maker/assets/DolphinDone_80x58.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
37 changes: 21 additions & 16 deletions base_pack/nfc_maker/scenes/nfc_maker_scene_result.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ void nfc_maker_scene_result_on_enter(void* context) {
do {
if(!flipper_format_file_open_new(file, furi_string_get_cstr(path))) break;

if(!flipper_format_write_header_cstr(file, "Flipper NFC device", 3)) break;
if(!flipper_format_write_string_cstr(file, "Device type", "NTAG215")) break;
if(!flipper_format_write_header_cstr(file, "Flipper NFC device", 4)) break;
if(!flipper_format_write_string_cstr(file, "Device type", "NTAG/Ultralight")) break;

// Serial number
size_t i = 0;
Expand All @@ -41,6 +41,8 @@ void nfc_maker_scene_result_on_enter(void* context) {
if(!flipper_format_write_hex(file, "UID", uid, sizeof(uid))) break;
if(!flipper_format_write_string_cstr(file, "ATQA", "00 44")) break;
if(!flipper_format_write_string_cstr(file, "SAK", "00")) break;
if(!flipper_format_write_string_cstr(file, "Data format version", "2")) break;
if(!flipper_format_write_string_cstr(file, "NTAG/Ultralight type", "NTAG215")) break;
// TODO: Maybe randomize?
if(!flipper_format_write_string_cstr(
file,
Expand All @@ -57,6 +59,7 @@ void nfc_maker_scene_result_on_enter(void* context) {
if(!flipper_format_write_string_cstr(file, "Counter 2", "0")) break;
if(!flipper_format_write_string_cstr(file, "Tearing 2", "00")) break;
if(!flipper_format_write_uint32(file, "Pages total", &pages, 1)) break;
if(!flipper_format_write_uint32(file, "Pages read", &pages, 1)) break;

// Static data
buf[i++] = 0x48; // Internal
Expand All @@ -68,7 +71,7 @@ void nfc_maker_scene_result_on_enter(void* context) {
buf[i++] = 0x3E; // ...
buf[i++] = 0x00; // ...

buf[i++] = 0x03; // Container flags
buf[i++] = 0x03; // NDEF TLV block

// NDEF Docs: https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/protocols/nfc/index.html#nfc-data-exchange-format-ndef
uint8_t tnf = 0x00;
Expand Down Expand Up @@ -126,7 +129,7 @@ void nfc_maker_scene_result_on_enter(void* context) {
}
case NfcMakerSceneHttps: {
tnf = 0x01; // NFC Forum well-known type [NFC RTD]
type = "\x55";
type = "U";

data_len = newstrnlen(app->big_buf, BIG_INPUT_LEN);
payload_len = data_len + 1;
Expand All @@ -139,7 +142,7 @@ void nfc_maker_scene_result_on_enter(void* context) {
}
case NfcMakerSceneMail: {
tnf = 0x01; // NFC Forum well-known type [NFC RTD]
type = "\x55";
type = "U";

data_len = newstrnlen(app->mail_buf, MAIL_INPUT_LEN);
payload_len = data_len + 1;
Expand All @@ -152,7 +155,7 @@ void nfc_maker_scene_result_on_enter(void* context) {
}
case NfcMakerScenePhone: {
tnf = 0x01; // NFC Forum well-known type [NFC RTD]
type = "\x55";
type = "U";

data_len = newstrnlen(app->phone_buf, PHONE_INPUT_LEN);
payload_len = data_len + 1;
Expand All @@ -165,22 +168,22 @@ void nfc_maker_scene_result_on_enter(void* context) {
}
case NfcMakerSceneText: {
tnf = 0x01; // NFC Forum well-known type [NFC RTD]
type = "\x54";
type = "T";

data_len = newstrnlen(app->big_buf, BIG_INPUT_LEN);
payload_len = data_len + 3;
payload = malloc(payload_len);

payload[j++] = 0x02;
payload[j++] = 0x65; // e
payload[j++] = 0x6E; // n
payload[j++] = 'e';
payload[j++] = 'n';
memcpy(&payload[j], app->big_buf, data_len);
j += data_len;
break;
}
case NfcMakerSceneUrl: {
tnf = 0x01; // NFC Forum well-known type [NFC RTD]
type = "\x55";
type = "U";

data_len = newstrnlen(app->big_buf, BIG_INPUT_LEN);
payload_len = data_len + 1;
Expand Down Expand Up @@ -282,15 +285,15 @@ void nfc_maker_scene_result_on_enter(void* context) {

size_t record_len = header_len + payload_len;
if(record_len < 0xFF) {
buf[i++] = record_len; // Record length
buf[i++] = record_len; // TLV length
} else {
buf[i++] = 0xFF; // Record length
buf[i++] = 0xFF; // TLV length
buf[i++] = record_len >> 8; // ...
buf[i++] = record_len & 0xFF; // ...
}
buf[i++] = flags; // Flags and TNF
buf[i++] = type_len; // Type length
if(flags & 1 << 4) { // SR (Short Record)
if(flags & (1 << 4)) { // SR (Short Record)
buf[i++] = payload_len; // Payload length
} else {
buf[i++] = 0x00; // Payload length
Expand Down Expand Up @@ -352,6 +355,8 @@ void nfc_maker_scene_result_on_enter(void* context) {
}
if(!ok) break;

if(!flipper_format_write_string_cstr(file, "Failed authentication attempts", "0")) break;

success = true;

} while(false);
Expand All @@ -362,11 +367,11 @@ void nfc_maker_scene_result_on_enter(void* context) {
furi_record_close(RECORD_STORAGE);

if(success) {
popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59);
popup_set_icon(popup, 36, 5, &I_DolphinDone_80x58);
popup_set_header(popup, "Saved!", 13, 22, AlignLeft, AlignBottom);
} else {
popup_set_icon(popup, 32, 5, &I_DolphinNice_96x59);
popup_set_header(popup, "Saved!", 13, 22, AlignLeft, AlignBottom);
popup_set_icon(popup, 69, 15, &I_WarningDolphinFlip_45x42);
popup_set_header(popup, "Error!", 13, 22, AlignLeft, AlignBottom);
}
popup_set_timeout(popup, 1500);
popup_set_context(popup, app);
Expand Down

0 comments on commit 9721102

Please sign in to comment.