增加恢复出厂且关机指令 3409/1 3409/head 3412/target/1
author1624952103 <pl@DESKTOP-EN9LKR5.localdomain>
Mon, 11 May 2026 09:35:02 +0000 (17:35 +0800)
committer1624952103 <pl@DESKTOP-EN9LKR5.localdomain>
Mon, 11 May 2026 09:35:02 +0000 (17:35 +0800)
code/sdk/zhihui/services/factorytest_service/factorytest_protocol.c
code/sdk/zhihui/utils/custom_cmd_service.c
code/sdk/zhihui/utils/custom_utils.c
code/sdk/zhihui/utils/custom_utils.h

index 2c29cbe..53d30ab 100644 (file)
@@ -979,6 +979,18 @@ void factorytest_protocol_common_decode(uint8_t submode,uint8_t testitem,uint8_t
                         1);\r
 \r
                 do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING, NULL, 0);\r
+            } else if(testitem == 0x06)\r
+            {\r
+                //恢复出厂关机设置\r
+                uint8_t send_data = 0x00;\r
+\r
+                factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_COMMON,\r
+                        BLE_TEST_CMD_COMMON_SUB_MODE_POWER_ON_OFF_DEVICE,\r
+                        0x06,\r
+                        &send_data,\r
+                        1);\r
+\r
+                do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING_AND_SHUTDOWN, NULL, 0);\r
             }\r
             break;\r
 \r
index 5610cc5..e693b85 100644 (file)
@@ -564,6 +564,21 @@ case CUSTOM_CMD_MSG_START_AI_ASR:
         hx3508_open();
 #endif
         break;
+
+        case CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING_AND_SHUTDOWN:
+        #ifdef SUPPORT_BLE_SERVICE
+#ifdef BLE_INSTRUCT
+#ifdef SUPPORT_ALIPAY_SEC
+                ble_Alipayunbind();
+#endif
+                // UnbindSucessCmd(1);//1确认解绑
+                watch_clean_pairs();
+#endif
+#endif
+                uapi_restore_factory_setting_and_shutdown();
+            
+        break;
+        
         default:
             PRINT("Unknown CUSTOM_CMD_MSG cmd 0x%02X \r\n", mail.cmd);
             break;
index 26ed96c..98bb6ef 100644 (file)
@@ -2587,6 +2587,49 @@ void uapi_restore_factory_setting(void)
 }
 
 
+void uapi_restore_factory_setting_and_shutdown(void)
+{
+    uapi_dev_runtime_set_restore_factory_status(1);
+
+    //恢复存储
+    resume_report_log();
+    
+#ifdef  SINGLE_USER_PARTITION
+    char *filebuf[] = {
+                        "/user/system/ConfigModel.json",
+                        "/user/userdata",
+                        "/user/system/kvstore",
+                        "/user/music/user_music",
+                        "/user/music/recording",
+                        "/user/dial/custom_dial", //自定义表盘
+                        "/user/dial/offline_dial",//离线表盘
+                        // EXC_TAR_PATH,        //死机文件
+                        "/user/log/",//离线日志
+                        "/user/app_store",//应用市场安装包文件
+                        "/user/app",//应用文件解压文件
+                        "/user/alipay",//支付宝文件
+                        "/user/system/fac.bin", //产测标志
+                        "user/userdata/aging_test.bin",//产测结果
+                    };
+
+#else
+    char *filebuf[] = {"/system/ConfigModel.json",
+                    "/user/userdata",
+                    "/system/kvstore",
+                    // EXC_TAR_PATH,//死机文件
+                    "/user/log/",//离线日志
+                    };
+#endif
+    for(int i = 0; i < (sizeof(filebuf)/sizeof(filebuf[0])); i++)
+        uapi_delete_files(filebuf[i]);
+    
+    bluetooth_factory_reset();
+    
+    uapi_poweroff_device();
+}
+
+
+
 #include "driver/calendar.h"
 
 uint32_t uapi_calendar_store_date(void)
index 59c43d3..0d5449d 100644 (file)
@@ -269,6 +269,8 @@ uint32_t uapi_calendar_store_date(void);
 #define CUSTOM_CMD_MSG_TYPE_CAT1_RESTART 0x2D
 #define CUSTOM_CMD_MSG_TYPE_PRODUCTTEST_JUMP 0x2E
 
+#define CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING_AND_SHUTDOWN 0x2F
+
 typedef enum {
     BR_HFP_CONNECT=1,
     BR_HFP_DISCONNECT,
@@ -525,6 +527,7 @@ void custom_check_factory_test_flag(void);
 errcode_t custom_aging_test_init(void);
 void custom_get_aging_result(void);
 int removeFilesInFolder(const char *folderPath); 
+void uapi_restore_factory_setting_and_shutdown(void);
 
 #include "custom_utilscpp.h"