subghz fix and show prog mode bft

This commit is contained in:
MX
2026-01-29 06:18:41 +03:00
parent 523a3723cf
commit 2469206cc8
2 changed files with 39 additions and 17 deletions

View File

@@ -15,6 +15,7 @@
* SubGHz: Fixed button mapping for **FAAC RC/XT**
* SubGHz: KeeLoq **display decrypted hop** in `Hop` instead of showing encrypted as is (encrypted non byte reversed hop is still displayed in `Key` field)
* SubGHz: **BFT KeeLoq** try decoding with **zero seed** too
* SubGHz: KeeLoq **display BFT programming mode TX** (when arrow button is held)
* NFC: Handle PPS request in ISO14443-4 layer (by @WillyJL)
* NFC: Fixes to `READ_MULTI` and `GET_BLOCK_SECURITY` commands in ISO 15693-3 emulation (by @WillyJL & @aaronjamt)
* Archive: Allow folders to be pinned (by @WillyJL)

View File

@@ -1515,23 +1515,44 @@ void subghz_protocol_decoder_keeloq_get_string(void* context, FuriString* output
subghz_block_generic_global.cnt_is_available = true;
subghz_block_generic_global.cnt_length_bit = 16;
subghz_block_generic_global.current_cnt = instance->generic.cnt;
furi_string_cat_printf(
output,
"%s %dbit\r\n"
"Key:%08lX%08lX\r\n"
"Fix:0x%08lX Cnt:%04lX\r\n"
"Hop:0x%08lX Btn:%01X\r\n"
"MF:%s Sd:%08lX",
instance->generic.protocol_name,
instance->generic.data_count_bit,
code_found_hi,
code_found_lo,
code_found_reverse_hi,
instance->generic.cnt,
hopdecrypt,
instance->generic.btn,
instance->manufacture_name,
instance->generic.seed);
ProgMode prog_mode = subghz_custom_btn_get_prog_mode();
if(prog_mode == PROG_MODE_KEELOQ_BFT) {
furi_string_cat_printf(
output,
"%s %dbit\r\n"
"Key:%08lX%08lX\r\n"
"Fix:0x%08lX Cnt:%04lX\r\n"
"Hop:0x%08lX Btn:%01X\r\n"
"MF:%s PRG Sd:%08lX",
instance->generic.protocol_name,
instance->generic.data_count_bit,
code_found_hi,
code_found_lo,
code_found_reverse_hi,
instance->generic.cnt,
code_found_reverse_lo,
instance->generic.btn,
instance->manufacture_name,
instance->generic.seed);
} else {
furi_string_cat_printf(
output,
"%s %dbit\r\n"
"Key:%08lX%08lX\r\n"
"Fix:0x%08lX Cnt:%04lX\r\n"
"Hop:0x%08lX Btn:%01X\r\n"
"MF:%s Sd:%08lX",
instance->generic.protocol_name,
instance->generic.data_count_bit,
code_found_hi,
code_found_lo,
code_found_reverse_hi,
instance->generic.cnt,
hopdecrypt,
instance->generic.btn,
instance->manufacture_name,
instance->generic.seed);
}
} else if(strcmp(instance->manufacture_name, "Unknown") == 0) {
instance->generic.cnt = 0x0;
furi_string_cat_printf(