@@ -193,7 +193,8 @@ static bool picopass_device_save_file(
193193 furi_string_printf (temp_str , "%s/%s%s" , folder , dev_name , extension );
194194 }
195195
196- if (dev -> format == PicopassDeviceSaveFormatHF ||
196+ if (dev -> format == PicopassDeviceSaveFormatOriginal ||
197+ dev -> format == PicopassDeviceSaveFormatLegacy ||
197198 dev -> format == PicopassDeviceSaveFormatPartial ) {
198199 // Open file
199200 if (!flipper_format_file_open_always (file , furi_string_get_cstr (temp_str ))) break ;
@@ -215,6 +216,12 @@ static bool picopass_device_save_file(
215216 for (size_t i = 0 ; i < app_limit ; i ++ ) {
216217 furi_string_printf (temp_str , "Block %d" , i );
217218 if (card_data [i ].valid ) {
219+ if (dev -> format == PicopassDeviceSaveFormatLegacy ) {
220+ if (i == PICOPASS_ICLASS_PACS_CFG_BLOCK_INDEX ) {
221+ card_data [i ].data [0 ] = 0x03 ;
222+ }
223+ }
224+
218225 if (!flipper_format_write_hex (
219226 file ,
220227 furi_string_get_cstr (temp_str ),
@@ -249,7 +256,7 @@ static bool picopass_device_save_file(
249256}
250257
251258bool picopass_device_save (PicopassDevice * dev , const char * dev_name ) {
252- if (dev -> format == PicopassDeviceSaveFormatHF ) {
259+ if (dev -> format == PicopassDeviceSaveFormatOriginal ) {
253260 return picopass_device_save_file (
254261 dev , dev_name , STORAGE_APP_DATA_PATH_PREFIX , PICOPASS_APP_EXTENSION , true);
255262 } else if (dev -> format == PicopassDeviceSaveFormatLF ) {
@@ -260,6 +267,11 @@ bool picopass_device_save(PicopassDevice* dev, const char* dev_name) {
260267 } else if (dev -> format == PicopassDeviceSaveFormatPartial ) {
261268 return picopass_device_save_file (
262269 dev , dev_name , STORAGE_APP_DATA_PATH_PREFIX , PICOPASS_APP_EXTENSION , true);
270+ } else if (dev -> format == PicopassDeviceSaveFormatLegacy ) {
271+ return picopass_device_save_file (
272+ dev , dev_name , STORAGE_APP_DATA_PATH_PREFIX , PICOPASS_APP_EXTENSION , true);
273+ } else {
274+ FURI_LOG_E (TAG , "Unknown format" );
263275 }
264276
265277 return false;
@@ -382,7 +394,7 @@ void picopass_device_clear(PicopassDevice* dev) {
382394
383395 picopass_device_data_clear (& dev -> dev_data );
384396 memset (& dev -> dev_data , 0 , sizeof (dev -> dev_data ));
385- dev -> format = PicopassDeviceSaveFormatHF ;
397+ dev -> format = PicopassDeviceSaveFormatOriginal ;
386398 furi_string_reset (dev -> load_path );
387399}
388400
@@ -441,7 +453,7 @@ void picopass_device_data_clear(PicopassDeviceData* dev_data) {
441453
442454bool picopass_device_delete (PicopassDevice * dev , bool use_load_path ) {
443455 furi_assert (dev );
444- if (dev -> format != PicopassDeviceSaveFormatHF ) {
456+ if (dev -> format != PicopassDeviceSaveFormatOriginal ) {
445457 // Never delete other formats (LF, Seader, etc)
446458 return false;
447459 }
0 commit comments