Setting to factory reset and format on 10 bad pins

This commit is contained in:
Willy-JL
2023-04-30 22:57:55 +01:00
parent c7f0f3db77
commit c814da7403
4 changed files with 33 additions and 0 deletions

View File

@@ -10,6 +10,7 @@
#include "../desktop_i.h"
#include <cli/cli.h>
#include <cli/cli_vcp.h>
#include <xtreme/settings.h>
static const NotificationSequence sequence_pin_fail = {
&message_display_backlight_on,
@@ -98,6 +99,16 @@ bool desktop_pin_lock_verify(const PinCode* pin_set, const PinCode* pin_entered)
result = true;
} else {
uint32_t pin_fails = furi_hal_rtc_get_pin_fails();
if(pin_fails >= 9 && XTREME_SETTINGS()->bad_pins_format) {
furi_hal_rtc_set_pin_fails(0);
furi_hal_rtc_set_flag(FuriHalRtcFlagFactoryReset);
Storage* storage = furi_record_open(RECORD_STORAGE);
storage_simply_remove(storage, INT_PATH(".cnt.u2f"));
storage_simply_remove(storage, INT_PATH(".key.u2f"));
storage_sd_format(storage);
furi_record_close(RECORD_STORAGE);
power_reboot(PowerBootModeNormal);
}
furi_hal_rtc_set_pin_fails(pin_fails + 1);
result = false;
}

View File

@@ -25,6 +25,7 @@ void XTREME_SETTINGS_LOAD() {
xtreme_settings->unlock_anims = false; // OFF
xtreme_settings->fallback_anim = true; // ON
xtreme_settings->wii_menu = true; // ON
xtreme_settings->bad_pins_format = false; // OFF
xtreme_settings->lockscreen_time = true; // ON
xtreme_settings->lockscreen_seconds = false; // OFF
xtreme_settings->lockscreen_date = true; // ON
@@ -65,6 +66,8 @@ void XTREME_SETTINGS_LOAD() {
flipper_format_rewind(file);
flipper_format_read_bool(file, "wii_menu", &xtreme_settings->wii_menu, 1);
flipper_format_rewind(file);
flipper_format_read_bool(file, "bad_pins_format", &xtreme_settings->bad_pins_format, 1);
flipper_format_rewind(file);
flipper_format_read_bool(file, "lockscreen_time", &xtreme_settings->lockscreen_time, 1);
flipper_format_rewind(file);
flipper_format_read_bool(file, "lockscreen_seconds", &xtreme_settings->lockscreen_seconds, 1);
@@ -118,6 +121,7 @@ void XTREME_SETTINGS_SAVE() {
flipper_format_write_bool(file, "unlock_anims", &xtreme_settings->unlock_anims, 1);
flipper_format_write_bool(file, "fallback_anim", &xtreme_settings->fallback_anim, 1);
flipper_format_write_bool(file, "wii_menu", &xtreme_settings->wii_menu, 1);
flipper_format_write_bool(file, "bad_pins_format", &xtreme_settings->bad_pins_format, 1);
flipper_format_write_bool(file, "lockscreen_time", &xtreme_settings->lockscreen_time, 1);
flipper_format_write_bool(file, "lockscreen_seconds", &xtreme_settings->lockscreen_seconds, 1);
flipper_format_write_bool(file, "lockscreen_date", &xtreme_settings->lockscreen_date, 1);

View File

@@ -23,6 +23,7 @@ typedef struct {
bool unlock_anims;
bool fallback_anim;
bool wii_menu;
bool bad_pins_format;
bool lockscreen_time;
bool lockscreen_seconds;
bool lockscreen_date;