mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-13 05:58:36 -07:00
Merge remote-tracking branch 'mntm/dev' into ofw-3822-nestednonces
This commit is contained in:
@@ -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"
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user