Eric Betts 2 лет назад
Родитель
Сommit
744c8e6318

+ 1 - 1
.catalog/README.md

@@ -19,7 +19,7 @@ NOTE: If the screen says “Got std key” AND stays on 0/18, then loclass isn't
 
 
 1. Download the loclass log (_sdcard/apps_data/picopass/.loclass.log_) from your Flipper Zero.
 1. Download the loclass log (_sdcard/apps_data/picopass/.loclass.log_) from your Flipper Zero.
 2. Use [loclass.ericbetts.dev](https://loclass.ericbetts.dev/) or a tool of your choice to calculate the key
 2. Use [loclass.ericbetts.dev](https://loclass.ericbetts.dev/) or a tool of your choice to calculate the key
-3. Copy the key to _iclass_elite_dict_user.txt_ and place in _sdcard/apps_data/picopass/_
+3. Copy the key to _iclass_elite_dict_user.txt_ and place in _sdcard/apps_data/picopass/assets/_
 4. Run _Elite Dict. Attack_ from the picopass main menu
 4. Run _Elite Dict. Attack_ from the picopass main menu
 5. Present card to the back of the Flipper Zero.
 5. Present card to the back of the Flipper Zero.
 
 

+ 3 - 0
.catalog/changelog.md

@@ -1,3 +1,6 @@
+## 1.10
+ - Fix missing folder in readme
+ - Allow partial save for any read failure
 ## 1.9
 ## 1.9
  - Fix bug (#77) with loclass
  - Fix bug (#77) with loclass
  - Better loclass notes
  - Better loclass notes

+ 1 - 1
application.fam

@@ -10,7 +10,7 @@ App(
     ],
     ],
     stack_size=4 * 1024,
     stack_size=4 * 1024,
     fap_description="App to communicate with NFC tags using the PicoPass(iClass) format",
     fap_description="App to communicate with NFC tags using the PicoPass(iClass) format",
-    fap_version="1.9",
+    fap_version="1.10",
     fap_icon="125_10px.png",
     fap_icon="125_10px.png",
     fap_category="NFC",
     fap_category="NFC",
     fap_libs=["mbedtls"],
     fap_libs=["mbedtls"],

+ 2 - 1
scenes/picopass_scene_card_menu.c

@@ -23,8 +23,9 @@ void picopass_scene_card_menu_on_enter(void* context) {
     PicopassBlock* AA1 = picopass->dev->dev_data.AA1;
     PicopassBlock* AA1 = picopass->dev->dev_data.AA1;
 
 
     bool sio = 0x30 == AA1[PICOPASS_ICLASS_PACS_CFG_BLOCK_INDEX].data[0];
     bool sio = 0x30 == AA1[PICOPASS_ICLASS_PACS_CFG_BLOCK_INDEX].data[0];
+    bool no_key = picopass_is_memset(pacs->key, 0x00, PICOPASS_BLOCK_LEN);
 
 
-    if(pacs->se_enabled) {
+    if(no_key) {
         if(sio) {
         if(sio) {
             submenu_add_item(
             submenu_add_item(
                 submenu,
                 submenu,

+ 7 - 6
scenes/picopass_scene_read_card_success.c

@@ -52,12 +52,6 @@ void picopass_scene_read_card_success_on_enter(void* context) {
         if(pacs->se_enabled) {
         if(pacs->se_enabled) {
             furi_string_cat_printf(credential_str, "SE enabled");
             furi_string_cat_printf(credential_str, "SE enabled");
 
 
-            widget_add_button_element(
-                widget,
-                GuiButtonTypeRight,
-                "More",
-                picopass_scene_read_card_success_widget_callback,
-                picopass);
         } else if(!hid_csn) {
         } else if(!hid_csn) {
             furi_string_cat_printf(credential_str, "Non-HID CSN");
             furi_string_cat_printf(credential_str, "Non-HID CSN");
         }
         }
@@ -68,6 +62,13 @@ void picopass_scene_read_card_success_on_enter(void* context) {
             "Menu",
             "Menu",
             picopass_scene_read_card_success_widget_callback,
             picopass_scene_read_card_success_widget_callback,
             picopass);
             picopass);
+        widget_add_button_element(
+            widget,
+            GuiButtonTypeRight,
+            "More",
+            picopass_scene_read_card_success_widget_callback,
+            picopass);
+
     } else if(empty) {
     } else if(empty) {
         furi_string_cat_printf(wiegand_str, "Empty");
         furi_string_cat_printf(wiegand_str, "Empty");
         widget_add_button_element(
         widget_add_button_element(