فهرست منبع

Merge sentry_safe from https://github.com/xMasterX/all-the-plugins

Willy-JL 1 سال پیش
والد
کامیت
79fba80a94
2فایلهای تغییر یافته به همراه13 افزوده شده و 1 حذف شده
  1. 1 1
      sentry_safe/application.fam
  2. 12 0
      sentry_safe/sentry_safe.c

+ 1 - 1
sentry_safe/application.fam

@@ -9,6 +9,6 @@ App(
     fap_icon="safe_10px.png",
     fap_category="GPIO",
     fap_author="@H4ckd4ddy & @xMasterX (ported to latest firmware)",
-    fap_version="1.1",
+    fap_version="1.2",
     fap_description="App exploiting vulnerability to open any Sentry Safe and Master Lock electronic safe without any pin code via UART pins.",
 )

+ 12 - 0
sentry_safe/sentry_safe.c

@@ -4,6 +4,7 @@
 #include <stdlib.h>
 
 #include <furi_hal.h>
+#include <expansion/expansion.h>
 
 typedef struct {
     uint8_t status;
@@ -83,6 +84,10 @@ void try_code(int a, int b, int c, int d, int e) {
 int32_t sentry_safe_app(void* p) {
     UNUSED(p);
 
+    // Disable expansion protocol to avoid interference with UART Handle
+    Expansion* expansion = furi_record_open(RECORD_EXPANSION);
+    expansion_disable(expansion);
+
     FuriMessageQueue* event_queue = furi_message_queue_alloc(8, sizeof(Event));
 
     SentryState* sentry_state = malloc(sizeof(SentryState));
@@ -94,6 +99,9 @@ int32_t sentry_safe_app(void* p) {
         FURI_LOG_E("SentrySafe", "cannot create mutex\r\n");
         furi_message_queue_free(event_queue);
         free(sentry_state);
+        // Return previous state of expansion
+        expansion_enable(expansion);
+        furi_record_close(RECORD_EXPANSION);
         return 255;
     }
 
@@ -165,5 +173,9 @@ int32_t sentry_safe_app(void* p) {
     furi_mutex_free(sentry_state->mutex);
     free(sentry_state);
 
+    // Return previous state of expansion
+    expansion_enable(expansion);
+    furi_record_close(RECORD_EXPANSION);
+
     return 0;
 }