Merge remote-tracking branch 'mntm/dev' into ofw-3822-nestednonces

This commit is contained in:
Willy-JL
2024-09-10 20:34:12 +02:00
169 changed files with 5250 additions and 1171 deletions

View File

@@ -251,6 +251,7 @@ Header,+,lib/toolbox/stream/buffered_file_stream.h,,
Header,+,lib/toolbox/stream/file_stream.h,,
Header,+,lib/toolbox/stream/stream.h,,
Header,+,lib/toolbox/stream/string_stream.h,,
Header,+,lib/toolbox/strint.h,,
Header,+,lib/toolbox/tar/tar_archive.h,,
Header,+,lib/toolbox/value_index.h,,
Header,+,lib/toolbox/varint.h,,
@@ -976,6 +977,8 @@ Function,+,dolphin_deed_get_app_limit,uint8_t,DolphinApp
Function,+,dolphin_deed_get_weight,uint8_t,DolphinDeed
Function,+,dolphin_flush,void,Dolphin*
Function,+,dolphin_get_pubsub,FuriPubSub*,Dolphin*
Function,+,dolphin_get_settings,void,"Dolphin*, DolphinSettings*"
Function,+,dolphin_set_settings,void,"Dolphin*, DolphinSettings*"
Function,+,dolphin_reload_state,void,Dolphin*
Function,+,dolphin_stats,DolphinStats,Dolphin*
Function,+,dolphin_upgrade_level,void,Dolphin*
@@ -987,8 +990,10 @@ Function,+,elements_bold_rounded_frame,void,"Canvas*, int32_t, int32_t, size_t,
Function,+,elements_bubble,void,"Canvas*, int32_t, int32_t, size_t, size_t"
Function,+,elements_bubble_str,void,"Canvas*, int32_t, int32_t, const char*, Align, Align"
Function,+,elements_button_center,void,"Canvas*, const char*"
Function,+,elements_button_down,void,"Canvas*, const char*"
Function,+,elements_button_left,void,"Canvas*, const char*"
Function,+,elements_button_right,void,"Canvas*, const char*"
Function,+,elements_button_up,void,"Canvas*, const char*"
Function,+,elements_frame,void,"Canvas*, int32_t, int32_t, size_t, size_t"
Function,+,elements_multiline_text,void,"Canvas*, int32_t, int32_t, const char*"
Function,+,elements_multiline_text_aligned,void,"Canvas*, int32_t, int32_t, Align, Align, const char*"
@@ -1494,7 +1499,7 @@ Function,+,furi_hal_nfc_abort,FuriHalNfcError,
Function,+,furi_hal_nfc_acquire,FuriHalNfcError,
Function,+,furi_hal_nfc_event_start,FuriHalNfcError,
Function,+,furi_hal_nfc_event_stop,FuriHalNfcError,
Function,+,furi_hal_nfc_felica_listener_set_sensf_res_data,FuriHalNfcError,"const uint8_t*, const uint8_t, const uint8_t*, const uint8_t"
Function,+,furi_hal_nfc_felica_listener_set_sensf_res_data,FuriHalNfcError,"const uint8_t*, const uint8_t, const uint8_t*, const uint8_t, const uint16_t"
Function,+,furi_hal_nfc_field_detect_start,FuriHalNfcError,
Function,+,furi_hal_nfc_field_detect_stop,FuriHalNfcError,
Function,+,furi_hal_nfc_field_is_present,_Bool,
@@ -2853,7 +2858,7 @@ Function,+,nfc_device_save,_Bool,"NfcDevice*, const char*"
Function,+,nfc_device_set_data,void,"NfcDevice*, NfcProtocol, const NfcDeviceData*"
Function,+,nfc_device_set_loading_callback,void,"NfcDevice*, NfcLoadingCallback, void*"
Function,+,nfc_device_set_uid,_Bool,"NfcDevice*, const uint8_t*, size_t"
Function,+,nfc_felica_listener_set_sensf_res_data,NfcError,"Nfc*, const uint8_t*, const uint8_t, const uint8_t*, const uint8_t"
Function,+,nfc_felica_listener_set_sensf_res_data,NfcError,"Nfc*, const uint8_t*, const uint8_t, const uint8_t*, const uint8_t, const uint16_t"
Function,+,nfc_free,void,Nfc*
Function,+,nfc_iso14443a_listener_set_col_res_data,NfcError,"Nfc*, uint8_t*, uint8_t, uint8_t*, uint8_t"
Function,+,nfc_iso14443a_listener_tx_custom_parity,NfcError,"Nfc*, const BitBuffer*"
@@ -3373,7 +3378,13 @@ Function,-,strerror,char*,int
Function,-,strerror_l,char*,"int, locale_t"
Function,-,strerror_r,char*,"int, char*, size_t"
Function,+,string_stream_alloc,Stream*,
Function,-,strlcat,size_t,"char*, const char*, size_t"
Function,+,strint_to_int16,StrintParseError,"const char*, char**, int16_t*, uint8_t"
Function,+,strint_to_int32,StrintParseError,"const char*, char**, int32_t*, uint8_t"
Function,+,strint_to_int64,StrintParseError,"const char*, char**, int64_t*, uint8_t"
Function,+,strint_to_uint16,StrintParseError,"const char*, char**, uint16_t*, uint8_t"
Function,+,strint_to_uint32,StrintParseError,"const char*, char**, uint32_t*, uint8_t"
Function,+,strint_to_uint64,StrintParseError,"const char*, char**, uint64_t*, uint8_t"
Function,+,strlcat,size_t,"char*, const char*, size_t"
Function,+,strlcpy,size_t,"char*, const char*, size_t"
Function,+,strlen,size_t,const char*
Function,-,strlwr,char*,char*
@@ -3735,7 +3746,7 @@ Function,+,view_dispatcher_alloc,ViewDispatcher*,
Function,+,view_dispatcher_attach_to_gui,void,"ViewDispatcher*, Gui*, ViewDispatcherType"
Function,+,view_dispatcher_enable_queue,void,ViewDispatcher*
Function,+,view_dispatcher_free,void,ViewDispatcher*
Function,-,view_dispatcher_get_event_loop,FuriEventLoop*,ViewDispatcher*
Function,+,view_dispatcher_get_event_loop,FuriEventLoop*,ViewDispatcher*
Function,+,view_dispatcher_remove_view,void,"ViewDispatcher*, uint32_t"
Function,+,view_dispatcher_run,void,ViewDispatcher*
Function,+,view_dispatcher_send_custom_event,void,"ViewDispatcher*, uint32_t"
1 entry status name type params
251 Header + lib/toolbox/stream/file_stream.h
252 Header + lib/toolbox/stream/stream.h
253 Header + lib/toolbox/stream/string_stream.h
254 Header + lib/toolbox/strint.h
255 Header + lib/toolbox/tar/tar_archive.h
256 Header + lib/toolbox/value_index.h
257 Header + lib/toolbox/varint.h
977 Function + dolphin_deed_get_weight uint8_t DolphinDeed
978 Function + dolphin_flush void Dolphin*
979 Function + dolphin_get_pubsub FuriPubSub* Dolphin*
980 Function + dolphin_get_settings void Dolphin*, DolphinSettings*
981 Function + dolphin_set_settings void Dolphin*, DolphinSettings*
982 Function + dolphin_reload_state void Dolphin*
983 Function + dolphin_stats DolphinStats Dolphin*
984 Function + dolphin_upgrade_level void Dolphin*
990 Function + elements_bubble void Canvas*, int32_t, int32_t, size_t, size_t
991 Function + elements_bubble_str void Canvas*, int32_t, int32_t, const char*, Align, Align
992 Function + elements_button_center void Canvas*, const char*
993 Function + elements_button_down void Canvas*, const char*
994 Function + elements_button_left void Canvas*, const char*
995 Function + elements_button_right void Canvas*, const char*
996 Function + elements_button_up void Canvas*, const char*
997 Function + elements_frame void Canvas*, int32_t, int32_t, size_t, size_t
998 Function + elements_multiline_text void Canvas*, int32_t, int32_t, const char*
999 Function + elements_multiline_text_aligned void Canvas*, int32_t, int32_t, Align, Align, const char*
1499 Function + furi_hal_nfc_acquire FuriHalNfcError
1500 Function + furi_hal_nfc_event_start FuriHalNfcError
1501 Function + furi_hal_nfc_event_stop FuriHalNfcError
1502 Function + furi_hal_nfc_felica_listener_set_sensf_res_data FuriHalNfcError const uint8_t*, const uint8_t, const uint8_t*, const uint8_t const uint8_t*, const uint8_t, const uint8_t*, const uint8_t, const uint16_t
1503 Function + furi_hal_nfc_field_detect_start FuriHalNfcError
1504 Function + furi_hal_nfc_field_detect_stop FuriHalNfcError
1505 Function + furi_hal_nfc_field_is_present _Bool
2858 Function + nfc_device_set_data void NfcDevice*, NfcProtocol, const NfcDeviceData*
2859 Function + nfc_device_set_loading_callback void NfcDevice*, NfcLoadingCallback, void*
2860 Function + nfc_device_set_uid _Bool NfcDevice*, const uint8_t*, size_t
2861 Function + nfc_felica_listener_set_sensf_res_data NfcError Nfc*, const uint8_t*, const uint8_t, const uint8_t*, const uint8_t Nfc*, const uint8_t*, const uint8_t, const uint8_t*, const uint8_t, const uint16_t
2862 Function + nfc_free void Nfc*
2863 Function + nfc_iso14443a_listener_set_col_res_data NfcError Nfc*, uint8_t*, uint8_t, uint8_t*, uint8_t
2864 Function + nfc_iso14443a_listener_tx_custom_parity NfcError Nfc*, const BitBuffer*
3378 Function - strerror_l char* int, locale_t
3379 Function - strerror_r char* int, char*, size_t
3380 Function + string_stream_alloc Stream*
3381 Function - + strlcat strint_to_int16 size_t StrintParseError char*, const char*, size_t const char*, char**, int16_t*, uint8_t
3382 Function + strint_to_int32 StrintParseError const char*, char**, int32_t*, uint8_t
3383 Function + strint_to_int64 StrintParseError const char*, char**, int64_t*, uint8_t
3384 Function + strint_to_uint16 StrintParseError const char*, char**, uint16_t*, uint8_t
3385 Function + strint_to_uint32 StrintParseError const char*, char**, uint32_t*, uint8_t
3386 Function + strint_to_uint64 StrintParseError const char*, char**, uint64_t*, uint8_t
3387 Function + strlcat size_t char*, const char*, size_t
3388 Function + strlcpy size_t char*, const char*, size_t
3389 Function + strlen size_t const char*
3390 Function - strlwr char* char*
3746 Function + view_dispatcher_attach_to_gui void ViewDispatcher*, Gui*, ViewDispatcherType
3747 Function + view_dispatcher_enable_queue void ViewDispatcher*
3748 Function + view_dispatcher_free void ViewDispatcher*
3749 Function - + view_dispatcher_get_event_loop FuriEventLoop* ViewDispatcher*
3750 Function + view_dispatcher_remove_view void ViewDispatcher*, uint32_t
3751 Function + view_dispatcher_run void ViewDispatcher*
3752 Function + view_dispatcher_send_custom_event void ViewDispatcher*, uint32_t

View File

@@ -4,6 +4,20 @@
// Prevent FDT timer from starting
#define FURI_HAL_NFC_FELICA_LISTENER_FDT_COMP_FC (INT32_MAX)
#define FURI_HAL_FELICA_COMMUNICATION_PERFORMANCE (0x0083U)
#define FURI_HAL_FELICA_RESPONSE_CODE (0x01)
#define FURI_HAL_FELICA_IDM_PMM_LENGTH (8)
#pragma pack(push, 1)
typedef struct {
uint16_t system_code;
uint8_t response_code;
uint8_t Idm[FURI_HAL_FELICA_IDM_PMM_LENGTH];
uint8_t Pmm[FURI_HAL_FELICA_IDM_PMM_LENGTH];
uint16_t communication_performance;
} FuriHalFelicaPtMemory;
#pragma pack(pop)
static FuriHalNfcError furi_hal_nfc_felica_poller_init(FuriHalSpiBusHandle* handle) {
// Enable Felica mode, AM modulation
st25r3916_change_reg_bits(
@@ -161,17 +175,23 @@ FuriHalNfcError furi_hal_nfc_felica_listener_set_sensf_res_data(
const uint8_t* idm,
const uint8_t idm_len,
const uint8_t* pmm,
const uint8_t pmm_len) {
const uint8_t pmm_len,
const uint16_t sys_code) {
furi_check(idm);
furi_check(pmm);
furi_check(idm_len == FURI_HAL_FELICA_IDM_PMM_LENGTH);
furi_check(pmm_len == FURI_HAL_FELICA_IDM_PMM_LENGTH);
FuriHalSpiBusHandle* handle = &furi_hal_spi_bus_handle_nfc;
// Write PT Memory
uint8_t pt_memory[19] = {};
pt_memory[2] = 0x01;
memcpy(pt_memory + 3, idm, idm_len);
memcpy(pt_memory + 3 + idm_len, pmm, pmm_len);
st25r3916_write_ptf_mem(handle, pt_memory, sizeof(pt_memory));
FuriHalFelicaPtMemory pt;
pt.system_code = sys_code;
pt.response_code = FURI_HAL_FELICA_RESPONSE_CODE;
pt.communication_performance = __builtin_bswap16(FURI_HAL_FELICA_COMMUNICATION_PERFORMANCE);
memcpy(pt.Idm, idm, idm_len);
memcpy(pt.Pmm, pmm, pmm_len);
st25r3916_write_ptf_mem(handle, (uint8_t*)&pt, sizeof(FuriHalFelicaPtMemory));
return FuriHalNfcErrorNone;
}

View File

@@ -9,6 +9,7 @@
#include <stdbool.h>
#include <datetime/datetime.h>
#include <core/common_defines.h>
#ifdef __cplusplus
extern "C" {
@@ -44,7 +45,7 @@ typedef enum {
FuriHalRtcRegisterHeader, /**< RTC structure header */
FuriHalRtcRegisterSystem, /**< Various system bits */
FuriHalRtcRegisterVersion, /**< Pointer to Version */
FuriHalRtcRegisterLfsFingerprint, /**< LFS geometry fingerprint */
FuriHalRtcRegisterLfsFingerprint FURI_DEPRECATED, /**< LFS geometry fingerprint */
FuriHalRtcRegisterFaultData, /**< Pointer to last fault message */
FuriHalRtcRegisterPinFails, /**< Failed PINs count */
/* Index of FS directory entry corresponding to FW update to be applied */

View File

@@ -109,7 +109,7 @@ void furi_hal_version_set_name(const char* name) {
"x%s", // Someone tell me why that X is needed - it's for BLE adv name type (6 lines below)
furi_hal_version.name);
} else {
snprintf(furi_hal_version.device_name, FURI_HAL_VERSION_DEVICE_NAME_LENGTH, "xFlipper");
strlcpy(furi_hal_version.device_name, "xFlipper", FURI_HAL_VERSION_DEVICE_NAME_LENGTH);
}
furi_hal_version.device_name[0] = AD_TYPE_COMPLETE_LOCAL_NAME;