0x5F25 tag renamed (issue date->effective date)

This commit is contained in:
Methodius 2024-02-11 01:32:17 +09:00
parent 56875ed9a7
commit 702e4f39ab
No known key found for this signature in database
GPG key ID: 122FA99A00B41679
8 changed files with 72 additions and 29 deletions

View file

@ -95,13 +95,13 @@ static bool emv_parse(const NfcDevice* device, FuriString* parsed_data) {
if(strlen(app.name)) furi_string_cat_printf(parsed_data, "Name: %s\n", app.name);
if(app.issue_month)
if(app.effective_month)
furi_string_cat_printf(
parsed_data,
"Issue: %02X.%02X.20%02X\n",
app.issue_day,
app.issue_month,
app.issue_year);
"Effective: %02X.%02X.20%02X\n",
app.effective_day,
app.effective_month,
app.effective_year);
if(app.exp_month)
furi_string_cat_printf(

View file

@ -103,9 +103,9 @@ bool emv_load(EmvData* data, FlipperFormat* ff, uint32_t version) {
if(!flipper_format_read_hex(ff, "Expiration month", &app->exp_month, 1)) break;
if(!flipper_format_read_hex(ff, "Expiration day", &app->exp_day, 1)) break;
if(!flipper_format_read_hex(ff, "Issue year", &app->issue_year, 1)) break;
if(!flipper_format_read_hex(ff, "Issue month", &app->issue_month, 1)) break;
if(!flipper_format_read_hex(ff, "Issue day", &app->issue_day, 1)) break;
if(!flipper_format_read_hex(ff, "Effective year", &app->effective_year, 1)) break;
if(!flipper_format_read_hex(ff, "Effective month", &app->effective_month, 1)) break;
if(!flipper_format_read_hex(ff, "Effective day", &app->effective_day, 1)) break;
uint32_t pin_try_counter;
if(!flipper_format_read_uint32(ff, "PIN counter", &pin_try_counter, 1)) break;
@ -153,9 +153,11 @@ bool emv_save(const EmvData* data, FlipperFormat* ff) {
if(!flipper_format_write_hex(ff, "Expiration month", (uint8_t*)&app.exp_month, 1)) break;
if(!flipper_format_write_hex(ff, "Expiration day", (uint8_t*)&app.exp_day, 1)) break;
if(!flipper_format_write_hex(ff, "Issue year", (uint8_t*)&app.issue_year, 1)) break;
if(!flipper_format_write_hex(ff, "Issue month", (uint8_t*)&app.issue_month, 1)) break;
if(!flipper_format_write_hex(ff, "Issue day", (uint8_t*)&app.issue_day, 1)) break;
if(!flipper_format_write_hex(ff, "Effective year", (uint8_t*)&app.effective_year, 1))
break;
if(!flipper_format_write_hex(ff, "Effective month", (uint8_t*)&app.effective_month, 1))
break;
if(!flipper_format_write_hex(ff, "Effective day", (uint8_t*)&app.effective_day, 1)) break;
if(!flipper_format_write_uint32(ff, "PIN counter", (uint32_t*)&app.pin_try_counter, 1))
break;

View file

@ -15,8 +15,8 @@ extern "C" {
#define EMV_TAG_PDOL 0x9F38
#define EMV_TAG_APPL_PAYMENT_SYS 0x50
#define EMV_TAG_APPL_NAME 0x9F12
#define EMV_TAG_APPL_ISSUE 0x5F25
#define EMV_TAG_PIN_TRY_COUNTER 0x9F17
#define EMV_TAG_APPL_EFFECTIVE 0x5F25
#define EMV_TAG_PIN_ATTEMPTS_COUNTER 0x9F17
#define EMV_TAG_LOG_ENTRY 0x9F4D
#define EMV_TAG_LOG_FMT 0x9F4F
@ -85,9 +85,9 @@ typedef struct {
uint8_t exp_day;
uint8_t exp_month;
uint8_t exp_year;
uint8_t issue_day;
uint8_t issue_month;
uint8_t issue_year;
uint8_t effective_day;
uint8_t effective_month;
uint8_t effective_year;
uint16_t country_code;
uint16_t currency_code;
uint8_t pin_try_counter;

View file

@ -108,7 +108,7 @@ static NfcCommand emv_poller_handler_read_files(EmvPoller* instance) {
static NfcCommand emv_poller_handler_read_extra_data(EmvPoller* instance) {
emv_poller_get_last_online_atc(instance);
emv_poller_get_pin_try_counter(instance);
emv_poller_get_pin_attempts_counter(instance);
instance->state = EmvPollerStateReadSuccess;
return NfcCommandContinue;

View file

@ -50,7 +50,7 @@ EmvError emv_poller_read_afl(EmvPoller* instance);
EmvError emv_poller_read_log_entry(EmvPoller* instance);
EmvError emv_poller_get_pin_try_counter(EmvPoller* instance);
EmvError emv_poller_get_pin_attempts_counter(EmvPoller* instance);
EmvError emv_poller_get_last_online_atc(EmvPoller* instance);

View file

@ -128,10 +128,10 @@ static bool
success = true;
FURI_LOG_T(TAG, "found EMV_TAG_APPL_NAME %x: %s", tag, app->name);
break;
case EMV_TAG_APPL_ISSUE:
app->issue_year = buff[i];
app->issue_month = buff[i + 1];
app->issue_day = buff[i + 2];
case EMV_TAG_APPL_EFFECTIVE:
app->effective_year = buff[i];
app->effective_month = buff[i + 1];
app->effective_day = buff[i + 2];
success = true;
FURI_LOG_T(TAG, "found EMV_TAG_APPL_ISSUE %x:", tag);
break;
@ -262,10 +262,10 @@ static bool
memcpy(&app->trans[app->active_tr].time, &buff[i], tlen);
success = true;
break;
case EMV_TAG_PIN_TRY_COUNTER:
case EMV_TAG_PIN_ATTEMPTS_COUNTER:
app->pin_try_counter = buff[i];
success = true;
FURI_LOG_T(TAG, "found EMV_TAG_PIN_TRY_COUNTER %x: %d", tag, app->pin_try_counter);
FURI_LOG_T(TAG, "found EMV_TAG_PIN_ATTEMPTS_COUNTER %x: %d", tag, app->pin_try_counter);
break;
}
return success;
@ -683,8 +683,8 @@ static EmvError emv_poller_req_get_data(EmvPoller* instance, uint16_t tag) {
return error;
}
EmvError emv_poller_get_pin_try_counter(EmvPoller* instance) {
return emv_poller_req_get_data(instance, EMV_TAG_PIN_TRY_COUNTER);
EmvError emv_poller_get_pin_attempts_counter(EmvPoller* instance) {
return emv_poller_req_get_data(instance, EMV_TAG_PIN_ATTEMPTS_COUNTER);
}
EmvError emv_poller_get_last_online_atc(EmvPoller* instance) {

View file

@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,54.1,,
Version,v,54.1,,
Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/cli/cli.h,,
Header,+,applications/services/cli/cli_vcp.h,,
@ -582,11 +582,20 @@ Function,+,ble_glue_start,_Bool,
Function,+,ble_glue_thread_stop,void,
Function,+,ble_glue_wait_for_c2_start,_Bool,int32_t
Function,-,bsearch,void*,"const void*, const void*, size_t, size_t, __compar_fn_t"
Function,?,bt_disable_peer_key_update,void,Bt*
Function,+,bt_disconnect,void,Bt*
Function,?,bt_enable_peer_key_update,void,Bt*
Function,+,bt_forget_bonded_devices,void,Bt*
Function,?,bt_get_profile_adv_name,const char*,Bt*
Function,?,bt_get_profile_mac_address,const uint8_t*,Bt*
Function,?,bt_get_profile_pairing_method,GapPairing,Bt*
Function,+,bt_keys_storage_set_default_path,void,Bt*
Function,+,bt_keys_storage_set_storage_path,void,"Bt*, const char*"
Function,?,bt_remote_rssi,_Bool,"Bt*, uint8_t*"
Function,+,bt_set_profile,_Bool,"Bt*, BtProfile"
Function,?,bt_set_profile_adv_name,void,"Bt*, const char*, ..."
Function,?,bt_set_profile_mac_address,void,"Bt*, const uint8_t[6]"
Function,?,bt_set_profile_pairing_method,void,"Bt*, GapPairing"
Function,+,bt_set_status_changed_callback,void,"Bt*, BtStatusChangedCallback, void*"
Function,+,buffered_file_stream_alloc,Stream*,Storage*
Function,+,buffered_file_stream_close,_Bool,Stream*
@ -608,6 +617,7 @@ Function,+,button_panel_free,void,ButtonPanel*
Function,+,button_panel_get_view,View*,ButtonPanel*
Function,+,button_panel_reserve,void,"ButtonPanel*, size_t, size_t"
Function,+,button_panel_reset,void,ButtonPanel*
Function,?,button_panel_reset_selection,void,ButtonPanel*
Function,+,byte_input_alloc,ByteInput*,
Function,+,byte_input_free,void,ByteInput*
Function,+,byte_input_get_view,View*,ByteInput*
@ -618,6 +628,7 @@ Function,+,calloc,void*,"size_t, size_t"
Function,+,canvas_clear,void,Canvas*
Function,+,canvas_commit,void,Canvas*
Function,+,canvas_current_font_height,uint8_t,const Canvas*
Function,?,canvas_current_font_width,uint8_t,const Canvas*
Function,+,canvas_draw_bitmap,void,"Canvas*, uint8_t, uint8_t, uint8_t, uint8_t, const uint8_t*"
Function,+,canvas_draw_box,void,"Canvas*, uint8_t, uint8_t, uint8_t, uint8_t"
Function,+,canvas_draw_circle,void,"Canvas*, uint8_t, uint8_t, uint8_t"
@ -627,6 +638,7 @@ Function,+,canvas_draw_frame,void,"Canvas*, uint8_t, uint8_t, uint8_t, uint8_t"
Function,+,canvas_draw_glyph,void,"Canvas*, uint8_t, uint8_t, uint16_t"
Function,+,canvas_draw_icon,void,"Canvas*, uint8_t, uint8_t, const Icon*"
Function,+,canvas_draw_icon_animation,void,"Canvas*, uint8_t, uint8_t, IconAnimation*"
Function,?,canvas_draw_icon_bitmap,void,"Canvas*, uint8_t, uint8_t, int16_t, int16_t, const Icon*"
Function,+,canvas_draw_icon_ex,void,"Canvas*, uint8_t, uint8_t, const Icon*, IconRotation"
Function,+,canvas_draw_line,void,"Canvas*, uint8_t, uint8_t, uint8_t, uint8_t"
Function,+,canvas_draw_rbox,void,"Canvas*, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t"
@ -764,6 +776,7 @@ Function,+,elements_multiline_text_framed,void,"Canvas*, uint8_t, uint8_t, const
Function,+,elements_progress_bar,void,"Canvas*, uint8_t, uint8_t, uint8_t, float"
Function,+,elements_progress_bar_with_text,void,"Canvas*, uint8_t, uint8_t, uint8_t, float, const char*"
Function,+,elements_scrollable_text_line,void,"Canvas*, uint8_t, uint8_t, uint8_t, FuriString*, size_t, _Bool"
Function,?,elements_scrollable_text_line_str,void,"Canvas*, uint8_t, uint8_t, uint8_t, const char*, size_t, _Bool, _Bool"
Function,+,elements_scrollbar,void,"Canvas*, uint16_t, uint16_t"
Function,+,elements_scrollbar_pos,void,"Canvas*, uint8_t, uint8_t, uint8_t, uint16_t, uint16_t"
Function,+,elements_slightly_rounded_box,void,"Canvas*, uint8_t, uint8_t, uint8_t, uint8_t"
@ -987,16 +1000,24 @@ Function,+,furi_event_flag_wait,uint32_t,"FuriEventFlag*, uint32_t, uint32_t, ui
Function,+,furi_get_tick,uint32_t,
Function,+,furi_hal_bt_change_app,_Bool,"FuriHalBtProfile, GapEventCallback, void*"
Function,+,furi_hal_bt_clear_white_list,_Bool,
Function,?,furi_hal_bt_custom_adv_set,_Bool,"const uint8_t*, size_t"
Function,?,furi_hal_bt_custom_adv_start,_Bool,"uint16_t, uint16_t, uint8_t, const uint8_t[( 6 )], uint8_t"
Function,?,furi_hal_bt_custom_adv_stop,_Bool,
Function,+,furi_hal_bt_dump_state,void,FuriString*
Function,+,furi_hal_bt_ensure_c2_mode,_Bool,BleGlueC2Mode
Function,?,furi_hal_bt_get_conn_rssi,uint32_t,uint8_t*
Function,-,furi_hal_bt_get_hardfault_info,const FuriHalBtHardfaultInfo*,
Function,+,furi_hal_bt_get_key_storage_buff,void,"uint8_t**, uint16_t*"
Function,?,furi_hal_bt_get_profile_adv_name,const char*,FuriHalBtProfile
Function,?,furi_hal_bt_get_profile_mac_addr,const uint8_t*,FuriHalBtProfile
Function,?,furi_hal_bt_get_profile_pairing_method,GapPairing,FuriHalBtProfile
Function,+,furi_hal_bt_get_radio_stack,FuriHalBtStack,
Function,+,furi_hal_bt_get_rssi,float,
Function,+,furi_hal_bt_get_transmitted_packets,uint32_t,
Function,+,furi_hal_bt_hid_consumer_key_press,_Bool,uint16_t
Function,+,furi_hal_bt_hid_consumer_key_release,_Bool,uint16_t
Function,+,furi_hal_bt_hid_consumer_key_release_all,_Bool,
Function,?,furi_hal_bt_hid_get_led_state,uint8_t,
Function,+,furi_hal_bt_hid_kb_press,_Bool,uint16_t
Function,+,furi_hal_bt_hid_kb_release,_Bool,uint16_t
Function,+,furi_hal_bt_hid_kb_release_all,_Bool,
@ -1011,11 +1032,13 @@ Function,-,furi_hal_bt_init,void,
Function,+,furi_hal_bt_is_active,_Bool,
Function,+,furi_hal_bt_is_alive,_Bool,
Function,+,furi_hal_bt_is_ble_gatt_gap_supported,_Bool,
Function,?,furi_hal_bt_is_connected,_Bool,
Function,+,furi_hal_bt_is_testing_supported,_Bool,
Function,+,furi_hal_bt_lock_core2,void,
Function,+,furi_hal_bt_nvm_sram_sem_acquire,void,
Function,+,furi_hal_bt_nvm_sram_sem_release,void,
Function,+,furi_hal_bt_reinit,void,
Function,?,furi_hal_bt_reverse_mac_addr,void,uint8_t[( 6 )]
Function,+,furi_hal_bt_serial_notify_buffer_is_empty,void,
Function,+,furi_hal_bt_serial_set_event_callback,void,"uint16_t, FuriHalBtSerialCallback, void*"
Function,+,furi_hal_bt_serial_set_rpc_status,void,FuriHalBtSerialRpcStatus
@ -1023,6 +1046,9 @@ Function,+,furi_hal_bt_serial_start,void,
Function,+,furi_hal_bt_serial_stop,void,
Function,+,furi_hal_bt_serial_tx,_Bool,"uint8_t*, uint16_t"
Function,+,furi_hal_bt_set_key_storage_change_callback,void,"BleGlueKeyStorageChangedCallback, void*"
Function,?,furi_hal_bt_set_profile_adv_name,void,"FuriHalBtProfile, const char[( ( 1 + 8 + ( 8 + 1 ) ) + 1 )]"
Function,?,furi_hal_bt_set_profile_mac_addr,void,"FuriHalBtProfile, const uint8_t[( 6 )]"
Function,?,furi_hal_bt_set_profile_pairing_method,void,"FuriHalBtProfile, GapPairing"
Function,+,furi_hal_bt_start_advertising,void,
Function,+,furi_hal_bt_start_app,_Bool,"FuriHalBtProfile, GapEventCallback, void*"
Function,+,furi_hal_bt_start_packet_rx,void,"uint8_t, uint8_t"
@ -1217,7 +1243,6 @@ Function,+,furi_hal_random_init,void,
Function,+,furi_hal_region_get,const FuriHalRegion*,
Function,+,furi_hal_region_get_band,const FuriHalRegionBand*,uint32_t
Function,+,furi_hal_region_get_name,const char*,
Function,-,furi_hal_region_init,void,
Function,+,furi_hal_region_is_frequency_allowed,_Bool,uint32_t
Function,+,furi_hal_region_is_provisioned,_Bool,
Function,+,furi_hal_region_set,void,FuriHalRegion*
@ -1344,6 +1369,8 @@ Function,+,furi_hal_version_get_hw_connect,uint8_t,
Function,+,furi_hal_version_get_hw_display,FuriHalVersionDisplay,
Function,+,furi_hal_version_get_hw_region,FuriHalVersionRegion,
Function,+,furi_hal_version_get_hw_region_name,const char*,
Function,?,furi_hal_version_get_hw_region_name_otp,const char*,
Function,?,furi_hal_version_get_hw_region_otp,FuriHalVersionRegion,
Function,+,furi_hal_version_get_hw_target,uint8_t,
Function,+,furi_hal_version_get_hw_timestamp,uint32_t,
Function,+,furi_hal_version_get_hw_version,uint8_t,
@ -1356,7 +1383,9 @@ Function,+,furi_hal_version_get_ncc_id,const char*,
Function,+,furi_hal_version_get_otp_version,FuriHalVersionOtpVersion,
Function,+,furi_hal_version_get_srrc_id,const char*,
Function,-,furi_hal_version_init,void,
Function,?,furi_hal_version_set_name,void,const char*
Function,+,furi_hal_version_uid,const uint8_t*,
Function,?,furi_hal_version_uid_default,const uint8_t*,
Function,+,furi_hal_version_uid_size,size_t,
Function,-,furi_hal_vibro_init,void,
Function,+,furi_hal_vibro_on,void,_Bool
@ -1529,6 +1558,7 @@ Function,-,gamma,double,double
Function,-,gamma_r,double,"double, int*"
Function,-,gammaf,float,float
Function,-,gammaf_r,float,"float, int*"
Function,?,gap_get_remote_conn_rssi,uint32_t,int8_t*
Function,-,gap_get_state,GapState,
Function,-,gap_init,_Bool,"GapConfig*, GapEventCallback, void*"
Function,-,gap_start_advertising,void,
@ -1921,8 +1951,11 @@ Function,-,music_worker_set_volume,void,"MusicWorker*, float"
Function,-,music_worker_start,void,MusicWorker*
Function,-,music_worker_stop,void,MusicWorker*
Function,+,name_generator_make_auto,void,"char*, size_t, const char*"
Function,?,name_generator_make_auto_datetime,void,"char*, size_t, const char*, FuriHalRtcDateTime*"
Function,+,name_generator_make_detailed,void,"char*, size_t, const char*"
Function,?,name_generator_make_detailed_datetime,void,"char*, size_t, const char*, FuriHalRtcDateTime*"
Function,+,name_generator_make_random,void,"char*, size_t"
Function,?,name_generator_make_random_prefixed,void,"char*, size_t, const char*"
Function,-,nan,double,const char*
Function,-,nanf,float,const char*
Function,-,nanl,long double,const char*
@ -2038,6 +2071,7 @@ Function,+,power_get_pubsub,FuriPubSub*,Power*
Function,+,power_is_battery_healthy,_Bool,Power*
Function,+,power_off,void,Power*
Function,+,power_reboot,void,PowerBootMode
Function,?,power_trigger_ui_update,void,Power*
Function,+,powf,float,"float, float"
Function,-,powl,long double,"long double, long double"
Function,+,pretty_format_bytes_hex_canonical,void,"FuriString*, size_t, const char*, const uint8_t*, size_t"
@ -2372,11 +2406,13 @@ Function,-,strverscmp,int,"const char*, const char*"
Function,-,strxfrm,size_t,"char*, const char*, size_t"
Function,-,strxfrm_l,size_t,"char*, const char*, size_t, locale_t"
Function,+,submenu_add_item,void,"Submenu*, const char*, uint32_t, SubmenuItemCallback, void*"
Function,?,submenu_add_lockable_item,void,"Submenu*, const char*, uint32_t, SubmenuItemCallback, void*, _Bool, const char*"
Function,+,submenu_alloc,Submenu*,
Function,+,submenu_free,void,Submenu*
Function,+,submenu_get_view,View*,Submenu*
Function,+,submenu_reset,void,Submenu*
Function,+,submenu_set_header,void,"Submenu*, const char*"
Function,?,submenu_set_orientation,void,"Submenu*, ViewOrientation"
Function,+,submenu_set_selected_item,void,"Submenu*, uint32_t"
Function,-,system,int,const char*
Function,-,tan,double,double
@ -2415,6 +2451,7 @@ Function,+,text_input_get_validator_callback_context,void*,TextInput*
Function,+,text_input_get_view,View*,TextInput*
Function,+,text_input_reset,void,TextInput*
Function,+,text_input_set_header_text,void,"TextInput*, const char*"
Function,?,text_input_set_minimum_length,void,"TextInput*, size_t"
Function,+,text_input_set_result_callback,void,"TextInput*, TextInputCallback, void*, char*, size_t, _Bool"
Function,+,text_input_set_validator,void,"TextInput*, TextInputValidatorCallback, void*"
Function,-,tgamma,double,double
@ -2450,6 +2487,7 @@ Function,+,variable_item_get_current_value_index,uint8_t,VariableItem*
Function,+,variable_item_list_add,VariableItem*,"VariableItemList*, const char*, uint8_t, VariableItemChangeCallback, void*"
Function,+,variable_item_list_alloc,VariableItemList*,
Function,+,variable_item_list_free,void,VariableItemList*
Function,?,variable_item_list_get,VariableItem*,"VariableItemList*, uint8_t"
Function,+,variable_item_list_get_selected_item_index,uint8_t,VariableItemList*
Function,+,variable_item_list_get_view,View*,VariableItemList*
Function,+,variable_item_list_reset,void,VariableItemList*
@ -2457,6 +2495,7 @@ Function,+,variable_item_list_set_enter_callback,void,"VariableItemList*, Variab
Function,+,variable_item_list_set_selected_item,void,"VariableItemList*, uint8_t"
Function,+,variable_item_set_current_value_index,void,"VariableItem*, uint8_t"
Function,+,variable_item_set_current_value_text,void,"VariableItem*, const char*"
Function,?,variable_item_set_locked,void,"VariableItem*, _Bool, const char*"
Function,+,variable_item_set_values_count,void,"VariableItem*, uint8_t"
Function,-,vasiprintf,int,"char**, const char*, __gnuc_va_list"
Function,-,vasniprintf,char*,"char*, size_t*, const char*, __gnuc_va_list"
@ -2466,6 +2505,7 @@ Function,-,vdiprintf,int,"int, const char*, __gnuc_va_list"
Function,-,vdprintf,int,"int, const char*, __gnuc_va_list"
Function,+,version_get,const Version*,
Function,+,version_get_builddate,const char*,const Version*
Function,?,version_get_custom_name,const char*,const Version*
Function,+,version_get_dirty_flag,_Bool,const Version*
Function,+,version_get_firmware_origin,const char*,const Version*
Function,+,version_get_git_origin,const char*,const Version*
@ -2474,6 +2514,7 @@ Function,+,version_get_gitbranchnum,const char*,const Version*
Function,+,version_get_githash,const char*,const Version*
Function,+,version_get_target,uint8_t,const Version*
Function,+,version_get_version,const char*,const Version*
Function,?,version_set_custom_name,void,"Version*, const char*"
Function,-,vfiprintf,int,"FILE*, const char*, __gnuc_va_list"
Function,-,vfiscanf,int,"FILE*, const char*, __gnuc_va_list"
Function,-,vfprintf,int,"FILE*, const char*, __gnuc_va_list"

1 entry status name type params
2 Version + v 54.1
3 Header + applications/services/bt/bt_service/bt.h
4 Header + applications/services/cli/cli.h
5 Header + applications/services/cli/cli_vcp.h
582 Function + ble_glue_thread_stop void
583 Function + ble_glue_wait_for_c2_start _Bool int32_t
584 Function - bsearch void* const void*, const void*, size_t, size_t, __compar_fn_t
585 Function ? bt_disable_peer_key_update void Bt*
586 Function + bt_disconnect void Bt*
587 Function ? bt_enable_peer_key_update void Bt*
588 Function + bt_forget_bonded_devices void Bt*
589 Function ? bt_get_profile_adv_name const char* Bt*
590 Function ? bt_get_profile_mac_address const uint8_t* Bt*
591 Function ? bt_get_profile_pairing_method GapPairing Bt*
592 Function + bt_keys_storage_set_default_path void Bt*
593 Function + bt_keys_storage_set_storage_path void Bt*, const char*
594 Function ? bt_remote_rssi _Bool Bt*, uint8_t*
595 Function + bt_set_profile _Bool Bt*, BtProfile
596 Function ? bt_set_profile_adv_name void Bt*, const char*, ...
597 Function ? bt_set_profile_mac_address void Bt*, const uint8_t[6]
598 Function ? bt_set_profile_pairing_method void Bt*, GapPairing
599 Function + bt_set_status_changed_callback void Bt*, BtStatusChangedCallback, void*
600 Function + buffered_file_stream_alloc Stream* Storage*
601 Function + buffered_file_stream_close _Bool Stream*
617 Function + button_panel_get_view View* ButtonPanel*
618 Function + button_panel_reserve void ButtonPanel*, size_t, size_t
619 Function + button_panel_reset void ButtonPanel*
620 Function ? button_panel_reset_selection void ButtonPanel*
621 Function + byte_input_alloc ByteInput*
622 Function + byte_input_free void ByteInput*
623 Function + byte_input_get_view View* ByteInput*
628 Function + canvas_clear void Canvas*
629 Function + canvas_commit void Canvas*
630 Function + canvas_current_font_height uint8_t const Canvas*
631 Function ? canvas_current_font_width uint8_t const Canvas*
632 Function + canvas_draw_bitmap void Canvas*, uint8_t, uint8_t, uint8_t, uint8_t, const uint8_t*
633 Function + canvas_draw_box void Canvas*, uint8_t, uint8_t, uint8_t, uint8_t
634 Function + canvas_draw_circle void Canvas*, uint8_t, uint8_t, uint8_t
638 Function + canvas_draw_glyph void Canvas*, uint8_t, uint8_t, uint16_t
639 Function + canvas_draw_icon void Canvas*, uint8_t, uint8_t, const Icon*
640 Function + canvas_draw_icon_animation void Canvas*, uint8_t, uint8_t, IconAnimation*
641 Function ? canvas_draw_icon_bitmap void Canvas*, uint8_t, uint8_t, int16_t, int16_t, const Icon*
642 Function + canvas_draw_icon_ex void Canvas*, uint8_t, uint8_t, const Icon*, IconRotation
643 Function + canvas_draw_line void Canvas*, uint8_t, uint8_t, uint8_t, uint8_t
644 Function + canvas_draw_rbox void Canvas*, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t
776 Function + elements_progress_bar void Canvas*, uint8_t, uint8_t, uint8_t, float
777 Function + elements_progress_bar_with_text void Canvas*, uint8_t, uint8_t, uint8_t, float, const char*
778 Function + elements_scrollable_text_line void Canvas*, uint8_t, uint8_t, uint8_t, FuriString*, size_t, _Bool
779 Function ? elements_scrollable_text_line_str void Canvas*, uint8_t, uint8_t, uint8_t, const char*, size_t, _Bool, _Bool
780 Function + elements_scrollbar void Canvas*, uint16_t, uint16_t
781 Function + elements_scrollbar_pos void Canvas*, uint8_t, uint8_t, uint8_t, uint16_t, uint16_t
782 Function + elements_slightly_rounded_box void Canvas*, uint8_t, uint8_t, uint8_t, uint8_t
1000 Function + furi_get_tick uint32_t
1001 Function + furi_hal_bt_change_app _Bool FuriHalBtProfile, GapEventCallback, void*
1002 Function + furi_hal_bt_clear_white_list _Bool
1003 Function ? furi_hal_bt_custom_adv_set _Bool const uint8_t*, size_t
1004 Function ? furi_hal_bt_custom_adv_start _Bool uint16_t, uint16_t, uint8_t, const uint8_t[( 6 )], uint8_t
1005 Function ? furi_hal_bt_custom_adv_stop _Bool
1006 Function + furi_hal_bt_dump_state void FuriString*
1007 Function + furi_hal_bt_ensure_c2_mode _Bool BleGlueC2Mode
1008 Function ? furi_hal_bt_get_conn_rssi uint32_t uint8_t*
1009 Function - furi_hal_bt_get_hardfault_info const FuriHalBtHardfaultInfo*
1010 Function + furi_hal_bt_get_key_storage_buff void uint8_t**, uint16_t*
1011 Function ? furi_hal_bt_get_profile_adv_name const char* FuriHalBtProfile
1012 Function ? furi_hal_bt_get_profile_mac_addr const uint8_t* FuriHalBtProfile
1013 Function ? furi_hal_bt_get_profile_pairing_method GapPairing FuriHalBtProfile
1014 Function + furi_hal_bt_get_radio_stack FuriHalBtStack
1015 Function + furi_hal_bt_get_rssi float
1016 Function + furi_hal_bt_get_transmitted_packets uint32_t
1017 Function + furi_hal_bt_hid_consumer_key_press _Bool uint16_t
1018 Function + furi_hal_bt_hid_consumer_key_release _Bool uint16_t
1019 Function + furi_hal_bt_hid_consumer_key_release_all _Bool
1020 Function ? furi_hal_bt_hid_get_led_state uint8_t
1021 Function + furi_hal_bt_hid_kb_press _Bool uint16_t
1022 Function + furi_hal_bt_hid_kb_release _Bool uint16_t
1023 Function + furi_hal_bt_hid_kb_release_all _Bool
1032 Function + furi_hal_bt_is_active _Bool
1033 Function + furi_hal_bt_is_alive _Bool
1034 Function + furi_hal_bt_is_ble_gatt_gap_supported _Bool
1035 Function ? furi_hal_bt_is_connected _Bool
1036 Function + furi_hal_bt_is_testing_supported _Bool
1037 Function + furi_hal_bt_lock_core2 void
1038 Function + furi_hal_bt_nvm_sram_sem_acquire void
1039 Function + furi_hal_bt_nvm_sram_sem_release void
1040 Function + furi_hal_bt_reinit void
1041 Function ? furi_hal_bt_reverse_mac_addr void uint8_t[( 6 )]
1042 Function + furi_hal_bt_serial_notify_buffer_is_empty void
1043 Function + furi_hal_bt_serial_set_event_callback void uint16_t, FuriHalBtSerialCallback, void*
1044 Function + furi_hal_bt_serial_set_rpc_status void FuriHalBtSerialRpcStatus
1046 Function + furi_hal_bt_serial_stop void
1047 Function + furi_hal_bt_serial_tx _Bool uint8_t*, uint16_t
1048 Function + furi_hal_bt_set_key_storage_change_callback void BleGlueKeyStorageChangedCallback, void*
1049 Function ? furi_hal_bt_set_profile_adv_name void FuriHalBtProfile, const char[( ( 1 + 8 + ( 8 + 1 ) ) + 1 )]
1050 Function ? furi_hal_bt_set_profile_mac_addr void FuriHalBtProfile, const uint8_t[( 6 )]
1051 Function ? furi_hal_bt_set_profile_pairing_method void FuriHalBtProfile, GapPairing
1052 Function + furi_hal_bt_start_advertising void
1053 Function + furi_hal_bt_start_app _Bool FuriHalBtProfile, GapEventCallback, void*
1054 Function + furi_hal_bt_start_packet_rx void uint8_t, uint8_t
1243 Function + furi_hal_region_get const FuriHalRegion*
1244 Function + furi_hal_region_get_band const FuriHalRegionBand* uint32_t
1245 Function + furi_hal_region_get_name const char*
Function - furi_hal_region_init void
1246 Function + furi_hal_region_is_frequency_allowed _Bool uint32_t
1247 Function + furi_hal_region_is_provisioned _Bool
1248 Function + furi_hal_region_set void FuriHalRegion*
1369 Function + furi_hal_version_get_hw_display FuriHalVersionDisplay
1370 Function + furi_hal_version_get_hw_region FuriHalVersionRegion
1371 Function + furi_hal_version_get_hw_region_name const char*
1372 Function ? furi_hal_version_get_hw_region_name_otp const char*
1373 Function ? furi_hal_version_get_hw_region_otp FuriHalVersionRegion
1374 Function + furi_hal_version_get_hw_target uint8_t
1375 Function + furi_hal_version_get_hw_timestamp uint32_t
1376 Function + furi_hal_version_get_hw_version uint8_t
1383 Function + furi_hal_version_get_otp_version FuriHalVersionOtpVersion
1384 Function + furi_hal_version_get_srrc_id const char*
1385 Function - furi_hal_version_init void
1386 Function ? furi_hal_version_set_name void const char*
1387 Function + furi_hal_version_uid const uint8_t*
1388 Function ? furi_hal_version_uid_default const uint8_t*
1389 Function + furi_hal_version_uid_size size_t
1390 Function - furi_hal_vibro_init void
1391 Function + furi_hal_vibro_on void _Bool
1558 Function - gamma_r double double, int*
1559 Function - gammaf float float
1560 Function - gammaf_r float float, int*
1561 Function ? gap_get_remote_conn_rssi uint32_t int8_t*
1562 Function - gap_get_state GapState
1563 Function - gap_init _Bool GapConfig*, GapEventCallback, void*
1564 Function - gap_start_advertising void
1951 Function - music_worker_start void MusicWorker*
1952 Function - music_worker_stop void MusicWorker*
1953 Function + name_generator_make_auto void char*, size_t, const char*
1954 Function ? name_generator_make_auto_datetime void char*, size_t, const char*, FuriHalRtcDateTime*
1955 Function + name_generator_make_detailed void char*, size_t, const char*
1956 Function ? name_generator_make_detailed_datetime void char*, size_t, const char*, FuriHalRtcDateTime*
1957 Function + name_generator_make_random void char*, size_t
1958 Function ? name_generator_make_random_prefixed void char*, size_t, const char*
1959 Function - nan double const char*
1960 Function - nanf float const char*
1961 Function - nanl long double const char*
2071 Function + power_is_battery_healthy _Bool Power*
2072 Function + power_off void Power*
2073 Function + power_reboot void PowerBootMode
2074 Function ? power_trigger_ui_update void Power*
2075 Function + powf float float, float
2076 Function - powl long double long double, long double
2077 Function + pretty_format_bytes_hex_canonical void FuriString*, size_t, const char*, const uint8_t*, size_t
2406 Function - strxfrm size_t char*, const char*, size_t
2407 Function - strxfrm_l size_t char*, const char*, size_t, locale_t
2408 Function + submenu_add_item void Submenu*, const char*, uint32_t, SubmenuItemCallback, void*
2409 Function ? submenu_add_lockable_item void Submenu*, const char*, uint32_t, SubmenuItemCallback, void*, _Bool, const char*
2410 Function + submenu_alloc Submenu*
2411 Function + submenu_free void Submenu*
2412 Function + submenu_get_view View* Submenu*
2413 Function + submenu_reset void Submenu*
2414 Function + submenu_set_header void Submenu*, const char*
2415 Function ? submenu_set_orientation void Submenu*, ViewOrientation
2416 Function + submenu_set_selected_item void Submenu*, uint32_t
2417 Function - system int const char*
2418 Function - tan double double
2451 Function + text_input_get_view View* TextInput*
2452 Function + text_input_reset void TextInput*
2453 Function + text_input_set_header_text void TextInput*, const char*
2454 Function ? text_input_set_minimum_length void TextInput*, size_t
2455 Function + text_input_set_result_callback void TextInput*, TextInputCallback, void*, char*, size_t, _Bool
2456 Function + text_input_set_validator void TextInput*, TextInputValidatorCallback, void*
2457 Function - tgamma double double
2487 Function + variable_item_list_add VariableItem* VariableItemList*, const char*, uint8_t, VariableItemChangeCallback, void*
2488 Function + variable_item_list_alloc VariableItemList*
2489 Function + variable_item_list_free void VariableItemList*
2490 Function ? variable_item_list_get VariableItem* VariableItemList*, uint8_t
2491 Function + variable_item_list_get_selected_item_index uint8_t VariableItemList*
2492 Function + variable_item_list_get_view View* VariableItemList*
2493 Function + variable_item_list_reset void VariableItemList*
2495 Function + variable_item_list_set_selected_item void VariableItemList*, uint8_t
2496 Function + variable_item_set_current_value_index void VariableItem*, uint8_t
2497 Function + variable_item_set_current_value_text void VariableItem*, const char*
2498 Function ? variable_item_set_locked void VariableItem*, _Bool, const char*
2499 Function + variable_item_set_values_count void VariableItem*, uint8_t
2500 Function - vasiprintf int char**, const char*, __gnuc_va_list
2501 Function - vasniprintf char* char*, size_t*, const char*, __gnuc_va_list
2505 Function - vdprintf int int, const char*, __gnuc_va_list
2506 Function + version_get const Version*
2507 Function + version_get_builddate const char* const Version*
2508 Function ? version_get_custom_name const char* const Version*
2509 Function + version_get_dirty_flag _Bool const Version*
2510 Function + version_get_firmware_origin const char* const Version*
2511 Function + version_get_git_origin const char* const Version*
2514 Function + version_get_githash const char* const Version*
2515 Function + version_get_target uint8_t const Version*
2516 Function + version_get_version const char* const Version*
2517 Function ? version_set_custom_name void Version*, const char*
2518 Function - vfiprintf int FILE*, const char*, __gnuc_va_list
2519 Function - vfiscanf int FILE*, const char*, __gnuc_va_list
2520 Function - vfprintf int FILE*, const char*, __gnuc_va_list

View file

@ -890,7 +890,7 @@ Function,+,emv_get_uid,const uint8_t*,"const EmvData*, size_t*"
Function,+,emv_is_equal,_Bool,"const EmvData*, const EmvData*"
Function,+,emv_load,_Bool,"EmvData*, FlipperFormat*, uint32_t"
Function,+,emv_poller_get_last_online_atc,EmvError,EmvPoller*
Function,+,emv_poller_get_pin_try_counter,EmvError,EmvPoller*
Function,+,emv_poller_get_pin_attempts_counter,EmvError,EmvPoller*
Function,+,emv_poller_get_processing_options,EmvError,EmvPoller*
Function,+,emv_poller_read_afl,EmvError,EmvPoller*
Function,+,emv_poller_read_log_entry,EmvError,EmvPoller*

1 entry status name type params
890 Function + emv_is_equal _Bool const EmvData*, const EmvData*
891 Function + emv_load _Bool EmvData*, FlipperFormat*, uint32_t
892 Function + emv_poller_get_last_online_atc EmvError EmvPoller*
893 Function + emv_poller_get_pin_try_counter emv_poller_get_pin_attempts_counter EmvError EmvPoller*
894 Function + emv_poller_get_processing_options EmvError EmvPoller*
895 Function + emv_poller_read_afl EmvError EmvPoller*
896 Function + emv_poller_read_log_entry EmvError EmvPoller*