[Feature][T8TSK-247][SDK-READY]add uci check
Only Configure: No
Affected branch: GSW3.0-No-Connman
Affected module: fota
Is it addected on both ZXIC and MTK: only MTK
Self-test: Yes
Doc Update: No
Change-Id: I0f40d2e964067bf218f5cb3ad4dedc26291e6bbd
diff --git a/framework/lynq-sdk-ready/src/main.cpp b/framework/lynq-sdk-ready/src/main.cpp
index 9c8ee18..029c669 100755
--- a/framework/lynq-sdk-ready/src/main.cpp
+++ b/framework/lynq-sdk-ready/src/main.cpp
@@ -10,8 +10,6 @@
extern "C" {
#endif
-#undef LOG_TAG
-#define LOG_TAG "LYNQ_SDK_READY"
int main(void){
RLOGD("lynq-sdk-ready begin");
diff --git a/framework/lynq-sdk-ready/src/makefile b/framework/lynq-sdk-ready/src/makefile
index 9b37640..c1638ae 100755
--- a/framework/lynq-sdk-ready/src/makefile
+++ b/framework/lynq-sdk-ready/src/makefile
@@ -17,6 +17,7 @@
$(warning ################# LEI ROOT: $(ROOT),includedir:$(includedir),LOCAL_PATH:$(LOCAL_PATH))
LOCAL_C_INCLUDES = \
-I. \
+ -I./include \
-I$(LOCAL_PATH)/timer \
-I$(LOCAL_PATH) \
-I$(ROOT)$(includedir)/ \
@@ -33,6 +34,7 @@
-lutils \
-lbinder \
-lpthread \
+ -llynq-uci \
LOCAL_SRC_FILES_CPP = $(wildcard *.cpp timer/*.cpp)
LOCAL_SRC_FILES_C = $(wildcard *.c)
diff --git a/framework/lynq-sdk-ready/src/timer/lynq_timer.cpp b/framework/lynq-sdk-ready/src/timer/lynq_timer.cpp
index f8e2a6a..f4fd96a 100755
--- a/framework/lynq-sdk-ready/src/timer/lynq_timer.cpp
+++ b/framework/lynq-sdk-ready/src/timer/lynq_timer.cpp
@@ -13,6 +13,8 @@
#include <arpa/inet.h>
#include <errno.h>
#include "lynq_timer.h"
+#include <include/lynq_uci.h>
+
#define DEST_PORT 8088
#define DSET_IP_ADDRESS "127.0.0.1"
@@ -307,7 +309,7 @@
if(num > 60)
{
system("cp /media/check_file/cpu_moniter.txt /media/check_file/cpu_moniter_1.txt");
- system("cp /media/check_file/inter_moniter.txt check_file/inter_moniter_1.txt");
+ system("cp /media/check_file/inter_moniter.txt /media/check_file/inter_moniter_1.txt");
system("cp /media/check_file/pid_moniter.txt /media/check_file/pid_moniter_1.txt");
system("cp /media/check_file/fd_moniter.txt /media/check_file/fd_moniter_1.txt");
system("rm -rf /media/check_file/cpu_moniter.txt");
@@ -324,9 +326,122 @@
}
+void *check_uci(void * arg)
+{
+ int ret[6];
+ int result = 0;
+ int flag = 0;
+ int num = 0;
+ char uci_0[]="/etc/config/lynq_uci";
+ char uci_1[]="/etc/config/lynq_uci_ro";
+ char uci_2[]="/etc/config/mdlog";
+ char uci_3[]="/etc/config/radio_property";
+ char uci_4[]="/etc/config/service";
+ char uci_5[]="/etc/config/usb";
+ RLOGD("start check uci\n");
+ while(num < 3)
+ {
+ RLOGD("@@@@@@@num=%d\n", num);
+ flag = 0;
+ ret[0] = system("uci show | grep \"^lynq_uci\.\"");
+ if(ret[0] != 0)
+ {
+ RLOGD("lynq_uci unload\n");
+ flag = 1;
+ }
+
+ ret[1] = system("uci show | grep \"^lynq_uci_ro\.\"");
+ if(ret[1] != 0)
+ {
+ RLOGD("lynq_uci_ro unload\n");
+ flag = 1;
+ }
+
+ ret[2] = system("uci show | grep \"^mdlog\.\"");
+ if(ret[2] != 0)
+ {
+ RLOGD("mdlog unload\n");
+ flag = 1;
+ }
+
+ ret[3] = system("uci show | grep \"^radio_property\.\"");
+ if(ret[3] != 0)
+ {
+ RLOGD("radio_property unload\n");
+ flag = 1;
+ }
+
+ ret[4] = system("uci show | grep \"^service\.\"");
+ if(ret[4] != 0)
+ {
+ RLOGD("service unload\n");
+ flag = 1;
+ }
+
+ ret[5] = system("uci show | grep \"^usb\.\"");
+ if(ret[5] != 0)
+ {
+ RLOGD("usb unload\n");
+ flag = 1;
+ }
+
+ RLOGD("flag=%d\n",flag);
+ if(flag != 0)
+ {
+ RLOGD("config reload\n");
+ result = chdir("/data_backup/");
+ result =system("tar -zxvf userdata.tar.gz -C /STATE/");
+ if(result!= 0)
+ {
+ RLOGD("cp config fail\n");
+ }
+ if(ret[0] != 0)
+ {
+ lynq_load_config(uci_0);
+ RLOGD("reload lynq_uci\n");
+ system("systemctl start autosuspend");
+ }
+ if(ret[1] != 0)
+ {
+ lynq_load_config(uci_1);
+ RLOGD("reload lynq_uci_ro\n");
+ }
+ if(ret[2] != 0)
+ {
+ lynq_load_config(uci_2);
+ RLOGD("reload mdlog\n");
+ }
+ if(ret[3] != 0)
+ {
+ lynq_load_config(uci_3);
+ RLOGD("reload radio_property\n");
+ system("systemctl restart mtkfusionrild");
+ }
+ if(ret[4] != 0)
+ {
+ lynq_load_config(uci_4);
+ RLOGD("reload service\n");
+ }
+ if(ret[5] != 0)
+ {
+ lynq_load_config(uci_5);
+ RLOGD("reload usb\n");
+ }
+ }
+ else
+ {
+ RLOGD("uci check success, exit check!\n");
+ break;
+ }
+ num++;
+ }
+
+}
+
+
void start_timer_request(void)
{
- pthread_t thid,thid_1;
+ pthread_t thid,thid_1,thid_2;
pthread_attr_t a;
pthread_attr_init(&a);
pthread_attr_setdetachstate(&a, PTHREAD_CREATE_DETACHED);
@@ -336,12 +451,18 @@
RLOGD("pthread_create error!!!");
return;
}
- sleep(20);
+ sleep(10);
ret = pthread_create(&thid_1, NULL, check, NULL);
if(ret != 0){
RLOGD("pthread_create error!!!");
return;
}
+
+ ret = pthread_create(&thid_2, NULL, check_uci, NULL);
+ if(ret != 0){
+ RLOGD("pthread_create error!!!");
+ return;
+ }
return;
}
diff --git a/framework/lynq-sdk-ready/src/timer/lynq_timer.h b/framework/lynq-sdk-ready/src/timer/lynq_timer.h
index c699874..5356461 100755
--- a/framework/lynq-sdk-ready/src/timer/lynq_timer.h
+++ b/framework/lynq-sdk-ready/src/timer/lynq_timer.h
@@ -6,9 +6,10 @@
#endif
void start_timer_request(void);
+#define LOG_TAG "LYNQ_SDK_READY"
#ifdef __cplusplus
}
#endif
-#endif
\ No newline at end of file
+#endif
diff --git a/lib/liblynq-uci/include/lynq_uci.h b/lib/liblynq-uci/include/lynq_uci.h
old mode 100644
new mode 100755
index 5ce7a63..904ff2b
--- a/lib/liblynq-uci/include/lynq_uci.h
+++ b/lib/liblynq-uci/include/lynq_uci.h
@@ -29,6 +29,8 @@
int lynq_get_value(char *file, char *section, char *key, char *tmp);
+int lynq_load_config(char *filename);
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/liblynq-uci/makefile b/lib/liblynq-uci/makefile
old mode 100644
new mode 100755
index 87122ee..aecca27
--- a/lib/liblynq-uci/makefile
+++ b/lib/liblynq-uci/makefile
@@ -42,13 +42,15 @@
LOCAL_C_INCLUDES = \
-I. \
-I$(LOCAL_PATH)/include \
-
+ -I$(ROOT)$(includedir)/logger \
LOCAL_LIBS := \
-L. \
-ldl \
-lpthread \
-luci \
+ -llog \
+
SOURCES = $(wildcard *.c wildcard *.h src/*.c)
diff --git a/lib/liblynq-uci/src/lynq_uci.c b/lib/liblynq-uci/src/lynq_uci.c
old mode 100644
new mode 100755
index 04b8f97..4f5f69a
--- a/lib/liblynq-uci/src/lynq_uci.c
+++ b/lib/liblynq-uci/src/lynq_uci.c
@@ -2,6 +2,7 @@
#include <stdlib.h>
#include <string.h>
#include <lynq_uci.h>
+#include <log/log.h>
int lynq_del(char *option)
@@ -194,3 +195,25 @@
ret = lynq_uci_get(buf, tmp);
return ret;
}
+
+int lynq_load_config(char *filename)
+{
+ struct uci_context * ctx = NULL;
+ struct uci_element *e;
+ struct uci_package * pkg = NULL;
+ ctx = uci_alloc_context();
+ RLOGD("uci load start \n");
+ if (UCI_OK != uci_load(ctx, filename, &pkg))
+ {
+ RLOGD("uci config fail !!!\n");
+ uci_free_context(ctx);
+ ctx = NULL;
+ return -1;
+ }
+ uci_unload(ctx, pkg);
+ uci_free_context(ctx);
+ RLOGD("uci config success !!!\n");
+ ctx = NULL;
+ return 0;
+}
+