1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-12 20:49:49 +04:00

Merge remote-tracking branch 'RebornedBrain/reborned/ultralight_write' into dev

This commit is contained in:
MX
2024-06-06 00:48:46 +03:00
5 changed files with 22 additions and 2 deletions

View File

@@ -191,7 +191,8 @@ static void nfc_scene_read_and_saved_menu_on_enter_mf_ultralight(NfcApp* instanc
instance); instance);
} else if( } else if(
data->type == MfUltralightTypeNTAG213 || data->type == MfUltralightTypeNTAG215 || data->type == MfUltralightTypeNTAG213 || data->type == MfUltralightTypeNTAG215 ||
data->type == MfUltralightTypeNTAG216) { data->type == MfUltralightTypeNTAG216 || data->type == MfUltralightTypeUL11 ||
data->type == MfUltralightTypeUL21) {
submenu_add_item( submenu_add_item(
submenu, submenu,
"Write", "Write",

View File

@@ -570,6 +570,22 @@ uint16_t mf_ultralight_get_config_page_num(MfUltralightType type) {
return mf_ultralight_features[type].config_page; return mf_ultralight_features[type].config_page;
} }
uint8_t mf_ultralight_get_write_end_page(MfUltralightType type) {
furi_check(type < MfUltralightTypeNum);
furi_assert(
type == MfUltralightTypeUL11 || type == MfUltralightTypeUL21 ||
type == MfUltralightTypeNTAG213 || type == MfUltralightTypeNTAG215 ||
type == MfUltralightTypeNTAG216);
uint8_t end_page = mf_ultralight_get_config_page_num(type);
if(type == MfUltralightTypeNTAG213 || type == MfUltralightTypeNTAG215 ||
type == MfUltralightTypeNTAG216) {
end_page -= 1;
}
return end_page;
}
uint8_t mf_ultralight_get_pwd_page_num(MfUltralightType type) { uint8_t mf_ultralight_get_pwd_page_num(MfUltralightType type) {
furi_check(type < MfUltralightTypeNum); furi_check(type < MfUltralightTypeNum);

View File

@@ -210,6 +210,8 @@ uint32_t mf_ultralight_get_feature_support_set(MfUltralightType type);
uint16_t mf_ultralight_get_config_page_num(MfUltralightType type); uint16_t mf_ultralight_get_config_page_num(MfUltralightType type);
uint8_t mf_ultralight_get_write_end_page(MfUltralightType type);
uint8_t mf_ultralight_get_pwd_page_num(MfUltralightType type); uint8_t mf_ultralight_get_pwd_page_num(MfUltralightType type);
bool mf_ultralight_is_page_pwd_or_pack(MfUltralightType type, uint16_t page_num); bool mf_ultralight_is_page_pwd_or_pack(MfUltralightType type, uint16_t page_num);

View File

@@ -616,7 +616,7 @@ static NfcCommand mf_ultralight_poller_handler_write_pages(MfUltralightPoller* i
do { do {
const MfUltralightData* write_data = instance->mfu_event.data->write_data; const MfUltralightData* write_data = instance->mfu_event.data->write_data;
uint8_t end_page = mf_ultralight_get_config_page_num(write_data->type) - 1; uint8_t end_page = mf_ultralight_get_write_end_page(write_data->type);
if(instance->current_page == end_page) { if(instance->current_page == end_page) {
instance->state = MfUltralightPollerStateWriteSuccess; instance->state = MfUltralightPollerStateWriteSuccess;
break; break;

View File

@@ -2576,6 +2576,7 @@ Function,+,mf_ultralight_get_pages_total,uint16_t,MfUltralightType
Function,+,mf_ultralight_get_pwd_page_num,uint8_t,MfUltralightType Function,+,mf_ultralight_get_pwd_page_num,uint8_t,MfUltralightType
Function,+,mf_ultralight_get_type_by_version,MfUltralightType,MfUltralightVersion* Function,+,mf_ultralight_get_type_by_version,MfUltralightType,MfUltralightVersion*
Function,+,mf_ultralight_get_uid,const uint8_t*,"const MfUltralightData*, size_t*" Function,+,mf_ultralight_get_uid,const uint8_t*,"const MfUltralightData*, size_t*"
Function,+,mf_ultralight_get_write_end_page,uint8_t,MfUltralightType
Function,+,mf_ultralight_is_all_data_read,_Bool,const MfUltralightData* Function,+,mf_ultralight_is_all_data_read,_Bool,const MfUltralightData*
Function,+,mf_ultralight_is_counter_configured,_Bool,const MfUltralightData* Function,+,mf_ultralight_is_counter_configured,_Bool,const MfUltralightData*
Function,+,mf_ultralight_is_equal,_Bool,"const MfUltralightData*, const MfUltralightData*" Function,+,mf_ultralight_is_equal,_Bool,"const MfUltralightData*, const MfUltralightData*"
1 entry status name type params
2576 Function + mf_ultralight_get_pwd_page_num uint8_t MfUltralightType
2577 Function + mf_ultralight_get_type_by_version MfUltralightType MfUltralightVersion*
2578 Function + mf_ultralight_get_uid const uint8_t* const MfUltralightData*, size_t*
2579 Function + mf_ultralight_get_write_end_page uint8_t MfUltralightType
2580 Function + mf_ultralight_is_all_data_read _Bool const MfUltralightData*
2581 Function + mf_ultralight_is_counter_configured _Bool const MfUltralightData*
2582 Function + mf_ultralight_is_equal _Bool const MfUltralightData*, const MfUltralightData*