From d51306eb3469010fef799297e95c9b0863fd81a5 Mon Sep 17 00:00:00 2001 From: 1624952103 Date: Mon, 11 May 2026 17:35:02 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0=E6=81=A2=E5=A4=8D=E5=87=BA?= =?utf8?q?=E5=8E=82=E4=B8=94=E5=85=B3=E6=9C=BA=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../factorytest_protocol.c | 12 ++++++ code/sdk/zhihui/utils/custom_cmd_service.c | 15 +++++++ code/sdk/zhihui/utils/custom_utils.c | 43 +++++++++++++++++++ code/sdk/zhihui/utils/custom_utils.h | 3 ++ 4 files changed, 73 insertions(+) diff --git a/code/sdk/zhihui/services/factorytest_service/factorytest_protocol.c b/code/sdk/zhihui/services/factorytest_service/factorytest_protocol.c index 2c29cbe57..53d30ab7c 100644 --- a/code/sdk/zhihui/services/factorytest_service/factorytest_protocol.c +++ b/code/sdk/zhihui/services/factorytest_service/factorytest_protocol.c @@ -979,6 +979,18 @@ void factorytest_protocol_common_decode(uint8_t submode,uint8_t testitem,uint8_t 1); do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING, NULL, 0); + } else if(testitem == 0x06) + { + //恢复出厂关机设置 + uint8_t send_data = 0x00; + + factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_COMMON, + BLE_TEST_CMD_COMMON_SUB_MODE_POWER_ON_OFF_DEVICE, + 0x06, + &send_data, + 1); + + do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING_AND_SHUTDOWN, NULL, 0); } break; diff --git a/code/sdk/zhihui/utils/custom_cmd_service.c b/code/sdk/zhihui/utils/custom_cmd_service.c index 5610cc54e..e693b850e 100644 --- a/code/sdk/zhihui/utils/custom_cmd_service.c +++ b/code/sdk/zhihui/utils/custom_cmd_service.c @@ -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; diff --git a/code/sdk/zhihui/utils/custom_utils.c b/code/sdk/zhihui/utils/custom_utils.c index 26ed96cec..98bb6ef54 100644 --- a/code/sdk/zhihui/utils/custom_utils.c +++ b/code/sdk/zhihui/utils/custom_utils.c @@ -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) diff --git a/code/sdk/zhihui/utils/custom_utils.h b/code/sdk/zhihui/utils/custom_utils.h index 59c43d379..0d5449ddc 100644 --- a/code/sdk/zhihui/utils/custom_utils.h +++ b/code/sdk/zhihui/utils/custom_utils.h @@ -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" -- 2.17.1