[feature] ded the uploading function of log AT command
Change-Id: Id6f161951d8e86e9c888871448b7e49be0f975eb
diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/lynq-ril-service/lynq-ril-service.bb b/meta/meta-mediatek-mt2735/recipes-lynq/lynq-ril-service/lynq-ril-service.bb
index c009b6d..92abde1 100755
--- a/meta/meta-mediatek-mt2735/recipes-lynq/lynq-ril-service/lynq-ril-service.bb
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/lynq-ril-service/lynq-ril-service.bb
@@ -3,7 +3,7 @@
DESCRIPTION = "lynq ril service"
LICENSE = "MediaTekProprietary"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e1696b147d49d491bcb4da1a57173fff"
-DEPENDS += "platform-libs audio-mixer-ctrl libvendor-ril libpal gstreamer1.0 glib-2.0 dtmf libapn dbus liblynq-log"
+DEPENDS += "platform-libs audio-mixer-ctrl libvendor-ril libpal gstreamer1.0 glib-2.0 dtmf libapn dbus liblynq-log liblynq-protcl liblynq-logdata-handle liblynq-fota nandapi"
inherit workonsrc
WORKONSRC = "${TOPDIR}/../src/lynq/framework/lynq-ril-service/src"
diff --git a/src/lynq/framework/lynq-ril-service/src/log/lynq_send_log_data.cpp b/src/lynq/framework/lynq-ril-service/src/log/lynq_send_log_data.cpp
new file mode 100755
index 0000000..7f3a8e8
--- /dev/null
+++ b/src/lynq/framework/lynq-ril-service/src/log/lynq_send_log_data.cpp
@@ -0,0 +1,337 @@
+/*=============================================================================
+** FileName: lynq_send_log_data
+** Desc: send log data
+** Author: victor
+** Version: V1.0
+** LastChange: 2021-12-23
+** History:
+=============================================================================*/
+
+#include "common.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <log/log.h>
+#include "lynq_send_log_data.h"
+#include "lynq_logdata_handle.h"
+#include "lynq_deal_logrotate.h"
+#include "ftp/lynq_ftp.h"
+#include "mtk_device_wrap.h"
+#include "include/iot_rock.h"
+
+//extern int ttyGS3_fd;
+static lynq_ftp_socker_info ftp_logrotate_info;
+static lynq_ftp_socker_info ftp_atfota_info;
+
+#define UPDATA_ADDR "/tmp/fota.delta"
+#define READ_BLOCK_SIZE 0x40000
+
+int lynq_fota_md5_flag = -1;
+
+#define FLASH_DEV_DELTA "/dev/disk/by-partlabel/delta"
+
+void lynq_response_ttyGS3(char *log_buf)
+{
+// sprintf(log_buf,"LYNQ_GOTO_LOGS_REQ\n");
+ write(ttyGS3_fd,log_buf,strlen(log_buf));
+}
+
+
+static int lynq_ftp_login_logmodule(char **lynq_logsend_buf) //lt add @2021.12.23 for ftp login
+{
+ sprintf(ftp_logrotate_info.sevname,lynq_logsend_buf[1]);
+ ftp_logrotate_info.portnum = atoi(lynq_logsend_buf[2]);
+ sprintf(ftp_logrotate_info.username,lynq_logsend_buf[3]);
+ sprintf(ftp_logrotate_info.pw,lynq_logsend_buf[4]);
+
+ sprintf(ftp_logrotate_info.is_pasv_mode,lynq_logsend_buf[5]);
+ sprintf(ftp_logrotate_info.file_type,lynq_logsend_buf[6]);
+ sprintf(ftp_logrotate_info.put_opt,lynq_logsend_buf[7]);
+
+ sprintf(ftp_logrotate_info.putfilename_path,lynq_logsend_buf[8]);
+
+ return lynq_ftp_login(&ftp_logrotate_info);
+// lynq_ftp_download(&ftp_logrotate_info);
+
+}
+
+
+static int lynq_ftp_upload_logdata(int log_moudle) //lt add @2021.12.23 for deal with upload log data
+{
+ int ret = -1;
+ char lynq_log_file_path[64] = {0};
+ char log_file_name[64] = {0};
+ char log_buf[1024];
+
+ chdir("/var/log/");/*Ìø×ªµ½/var/log/¹¤×÷Ŀ¼ÏÂ*/
+ switch(log_moudle)
+ {
+ case MD_LOG:
+ memset(lynq_log_file_path,0,sizeof(lynq_log_file_path));
+ memset(log_file_name,0,sizeof(log_file_name));
+ ret = lynq_get_current_mtklog_path(lynq_log_file_path);
+ if(ret >= 0)
+ {
+ /*bzero(log_buf, 1024);
+ sprintf(log_buf,"log_file_path:%s\n",lynq_log_file_path);
+ lynq_response_ttyGS3(log_buf);*/
+ sscanf(lynq_log_file_path,"/var/log/%s",log_file_name);
+ sprintf(ftp_logrotate_info.putfilename,log_file_name);
+ /*bzero(log_buf, 1024);
+ sprintf(log_buf,"log_file_name:%s\n",log_file_name);
+ lynq_response_ttyGS3(log_buf);*/
+ return lynq_ftp_up(&ftp_logrotate_info);
+ }
+ else
+ {
+ bzero(log_buf, 1024);
+ sprintf(log_buf,"+CME: ERROR %d\n",LYNQ_E_GET_LOG_FAIL);
+ lynq_response_ttyGS3(log_buf);
+ }
+ break;
+ case AP_LOG:
+ memset(lynq_log_file_path,0,sizeof(lynq_log_file_path));
+ memset(log_file_name,0,sizeof(log_file_name));
+ ret = lynq_get_current_syslog_path(lynq_log_file_path);
+ if(ret >= 0)
+ {
+ /*bzero(log_buf, 1024);
+ sprintf(log_buf,"log_file_path:%s\n",lynq_log_file_path);
+ lynq_response_ttyGS3(log_buf);*/
+ sscanf(lynq_log_file_path,"/var/log/%s",log_file_name);
+ sprintf(ftp_logrotate_info.putfilename,log_file_name);
+ /*bzero(log_buf, 1024);
+ sprintf(log_buf,"log_file_name:%s\n",log_file_name);
+ lynq_response_ttyGS3(log_buf);*/
+ return lynq_ftp_up(&ftp_logrotate_info);
+ }
+ else
+ {
+ bzero(log_buf, 1024);
+ sprintf(log_buf,"+CME: ERROR %d\n",LYNQ_E_GET_LOG_FAIL);
+ lynq_response_ttyGS3(log_buf);
+ }
+ break;
+ case MCU_LOG:
+ memset(lynq_log_file_path,0,sizeof(lynq_log_file_path));
+ memset(log_file_name,0,sizeof(log_file_name));
+ ret = lynq_get_current_mculog_path(lynq_log_file_path);
+ if(ret >= 0)
+ {
+ /*bzero(log_buf, 1024);
+ sprintf(log_buf,"log_file_path:%s\n",lynq_log_file_path);
+ lynq_response_ttyGS3(log_buf);*/
+ sscanf(lynq_log_file_path,"/var/log/%s",log_file_name);
+ sprintf(ftp_logrotate_info.putfilename,log_file_name);
+ /*bzero(log_buf, 1024);
+ sprintf(log_buf,"log_file_name:%s\n",log_file_name);
+ lynq_response_ttyGS3(log_buf);*/
+ return lynq_ftp_up(&ftp_logrotate_info);
+ }
+ else
+ {
+ bzero(log_buf, 1024);
+ sprintf(log_buf,"+CME: ERROR %d\n",LYNQ_E_GET_LOG_FAIL);
+ lynq_response_ttyGS3(log_buf);
+ }
+ break;
+ default:
+ bzero(log_buf, 1024);
+ sprintf(log_buf,"+CME: ERROR %d\n",LYNQ_E_GET_LOG_FAIL);
+ lynq_response_ttyGS3(log_buf);
+ return -1;
+ }
+ return -1;
+}
+
+int lynq_deal_with_log_at(char **lynq_argv)//lt add @2021.12.23 for deal with AT
+{
+
+/*
+ for(int i = 0;i < 10; i++)
+ {
+ lynq_response_ttyGS3(lynq_argv[i]);
+ lynq_response_ttyGS3("\n");
+ }
+*/
+ char lynq_log_buf[1024];
+ if(0 == strcmp(lynq_argv[0], "ftp"))
+ {
+ if(1 == lynq_ftp_login_logmodule(lynq_argv))
+ {
+
+ int lynq_logsend_test_moudle = atoi(lynq_argv[9]);
+ if(lynq_ftp_upload_logdata(lynq_logsend_test_moudle) == 0)
+ {
+ bzero(lynq_log_buf, 1024);
+ sprintf(lynq_log_buf,"+LOGS\nOK\n");
+ lynq_response_ttyGS3(lynq_log_buf);
+ }
+ else
+ {
+ bzero(lynq_log_buf, 1024);
+ sprintf(lynq_log_buf,"+CME: ERROR %d\n",LYNQ_E_FTP_SEND_FAIL);
+ lynq_response_ttyGS3(lynq_log_buf);
+ }
+ }
+ else
+ {
+ bzero(lynq_log_buf, 1024);
+ sprintf(lynq_log_buf,"+CME: ERROR %d\n",LYNQ_E_FTP_LOGIN_FAIL);
+ lynq_response_ttyGS3(lynq_log_buf);
+ }
+ }
+ else if(!strcmp(lynq_argv[0], "usb"))
+ {
+ //lynq_response_ttyGS3("!strcmp(lynq_argv[0], usb)\n");
+ bzero(lynq_log_buf, 1024);
+ sprintf(lynq_log_buf,"+CME: ERROR %d\n",LYNQ_E_LOG_CMD_ERROR);
+ lynq_response_ttyGS3(lynq_log_buf);
+ }
+ else
+ {
+ //lynq_response_ttyGS3("parase fail\n");
+ bzero(lynq_log_buf, 1024);
+ sprintf(lynq_log_buf,"+CME: ERROR %d\n",LYNQ_E_LOG_CMD_ERROR);
+ lynq_response_ttyGS3(lynq_log_buf);
+ }
+ return 1;
+}
+
+
+
+int lynq_ftp_download_atfota_package(char *string[])
+{
+ int ret = 0;
+ sprintf(ftp_atfota_info.sevname,"%s",string[0]);
+
+ ftp_atfota_info.portnum = atoi(string[1]);
+
+ sprintf(ftp_atfota_info.username,"%s",string[2]);
+ sprintf(ftp_atfota_info.pw,"%s",string[3]);
+
+
+ sprintf(ftp_atfota_info.is_pasv_mode,"%s",string[4]);
+ sprintf(ftp_atfota_info.file_type,"%s",string[5]);
+ sprintf(ftp_atfota_info.put_opt,"%s",string[6]);
+
+ sprintf(ftp_atfota_info.getfilename_path,"%s",string[7]);
+ sprintf(ftp_atfota_info.getfilename,"%s",string[8]);
+ chdir("/tmp/");
+ if(1 == lynq_ftp_login(&ftp_atfota_info))
+ {
+ if(0 == lynq_ftp_download(&ftp_atfota_info))
+ {
+ lynq_response_ttyGS3("+LYNQFOTA:\nGET FOTA FILE OK\n");
+ ret = 0;
+ }
+ else
+ {
+ lynq_response_ttyGS3("+CME: GET FOTA FILE FAIL\n");
+ ret = 1;
+ }
+ }
+ else
+ {
+ lynq_response_ttyGS3("+CME: FOTA LOGIN FAIL\n");
+ ret = 1;
+ }
+ return ret;
+}
+
+int lynq_md5_atfota_package(char *string[])
+{
+ int ret = 0;
+ int fd_down,size,fd_target;
+ char delta_data[READ_BLOCK_SIZE];
+ char input_md5_data[64] = {0};
+
+ sprintf(input_md5_data,"%s",string[0]);
+ lynq_fota_md5_flag = lynq_md5_file_verfy(UPDATA_ADDR, input_md5_data);
+ if(lynq_fota_md5_flag == 0)
+ {
+ lynq_response_ttyGS3("+LYNQFOTA:\nMD5 OK\n");
+ }
+ else
+ {
+ lynq_response_ttyGS3("MD5 FAIL\n");
+ return 1;
+ }
+
+ fd_down = open(UPDATA_ADDR,O_RDONLY);
+ if (fd_down < 0) {
+ lynq_response_ttyGS3("open source error\n");
+ return 1;
+ }
+
+ fd_target = mtk_device_wrap_open(FLASH_DEV_DELTA,O_RDWR);
+
+ if (fd_target < 0) {
+ close(fd_down);
+ lynq_response_ttyGS3("open target error\n");
+ return 1;
+ }
+
+ while(( size = read(fd_down,delta_data,READ_BLOCK_SIZE))>0) {
+ mtk_device_wrap_write(fd_target,delta_data,READ_BLOCK_SIZE);
+ memset(delta_data,0,READ_BLOCK_SIZE);
+ }
+
+// lynq_response_ttyGS3("Store upgrade data to delta success\n");
+
+ mtk_device_wrap_close(fd_target);
+ close(fd_down);
+
+ return 0;
+}
+
+int lynq_atfota_func_test(void)
+{
+ int first_run = 1;
+ if(lynq_fota_md5_flag == 0)
+ {
+ lynq_response_ttyGS3("Recive upgrade OK\n");
+ if(0 != lynq_rock_main(first_run))
+ {
+ lynq_response_ttyGS3("Upgrade Fail\n");
+ }
+ }
+ else
+ {
+ lynq_response_ttyGS3("MD5 verify fail\n");
+ return 1;
+ }
+ return 0;
+}
+
+int lynq_atfota_test(char *argv[])
+{
+ if(!strcmp(argv[3], "download"))
+ {
+ if(!(strcmp(argv[4], "ftp")))
+ {
+ lynq_ftp_download_atfota_package(&argv[5]);
+ }
+ }
+ else if(!(strcmp(argv[3], "md5")))
+ {
+ lynq_md5_atfota_package(&argv[4]);
+ }
+ else if(!(strcmp(argv[3], "upgrade")))
+ {
+ lynq_atfota_func_test();
+ }
+ else
+ {
+ lynq_response_ttyGS3("fota api error!!!\n");
+ }
+ return 0;
+}
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/src/lynq/framework/lynq-ril-service/src/log/lynq_send_log_data.h b/src/lynq/framework/lynq-ril-service/src/log/lynq_send_log_data.h
new file mode 100755
index 0000000..fa3bf6e
--- /dev/null
+++ b/src/lynq/framework/lynq-ril-service/src/log/lynq_send_log_data.h
@@ -0,0 +1,21 @@
+#ifndef __LYNQ_SEND_LOG_DATA_H__
+#define __LYNQ_SEND_LOG_DATA_H__
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MAX_LOG_LEN 101
+
+#define LYNQ_E_FTP_LOGIN_FAIL 9002 /*Ftp login fail*/
+#define LYNQ_E_FTP_SEND_FAIL 9003 /*Ftp send log fail*/
+#define LYNQ_E_GET_LOG_FAIL 9004 /*Get log fail*/
+#define LYNQ_E_LOG_CMD_ERROR 9005 /*cmd error*/
+
+int lynq_deal_with_log_at(char **lynq_argv);
+int lynq_atfota_test(char *argv[]);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //__LYNQ_LOGSEND_TEST_H__
diff --git a/src/lynq/framework/lynq-ril-service/src/makefile b/src/lynq/framework/lynq-ril-service/src/makefile
index 39ae608..f407000 100755
--- a/src/lynq/framework/lynq-ril-service/src/makefile
+++ b/src/lynq/framework/lynq-ril-service/src/makefile
@@ -66,7 +66,7 @@
-I$(LOCAL_PATH)/ecall/gost/sslp/teledata \
-I$(LOCAL_PATH)/rndis \
-I$(LOCAL_PATH)/factory \
- -I$(LOCAL_PATH)/fota \
+ -I$(LOCAL_PATH)/log \
-I$(ROOT)$(includedir)/logger \
-I$(ROOT)$(includedir)/liblog \
-I$(ROOT)$(includedir)/include \
@@ -108,6 +108,9 @@
-llynq-log \
-lsqlite3 \
-lnandapi \
+ -llynq-protcl \
+ -llynq-fota \
+ -llynq-logdata-handle \
ifeq ($(strip $(TARGET_PLATFORM)), mt2735)
LOCAL_LIBS += -luciwrapper
@@ -116,7 +119,7 @@
endif
-SOURCES = $(wildcard util/*.cpp *.cpp ecall/*.cpp ecall/gost/*.cpp ecall/gost/utils/*.cpp ecall/gost/sslp/*.cpp ecall/gost/sslp/auth/*.cpp ecall/gost/sslp/firmware/*.cpp ecall/gost/sslp/commands/*.cpp ecall/gost/sslp/ecall/*.cpp ecall/gost/sslp/teledata/*.cpp data/*.cpp em/rfdesense/*.cpp em/networkinfo/*.cpp em/*.cpp sms/*.cpp sms/gsm/*.cpp sms/cdma/*.cpp atci/*.cpp stateManager/*.cpp sms/lynqSmsManager/*.cpp rndis/*.cpp factory/*.cpp)
+SOURCES = $(wildcard util/*.cpp *.cpp ecall/*.cpp ecall/gost/*.cpp ecall/gost/utils/*.cpp ecall/gost/sslp/*.cpp ecall/gost/sslp/auth/*.cpp ecall/gost/sslp/firmware/*.cpp ecall/gost/sslp/commands/*.cpp ecall/gost/sslp/ecall/*.cpp ecall/gost/sslp/teledata/*.cpp data/*.cpp em/rfdesense/*.cpp em/networkinfo/*.cpp em/*.cpp sms/*.cpp sms/gsm/*.cpp sms/cdma/*.cpp atci/*.cpp stateManager/*.cpp sms/lynqSmsManager/*.cpp rndis/*.cpp factory/*.cpp log/*.cpp)
EXECUTABLE = lynq-ril-service
diff --git a/src/lynq/framework/lynq-ril-service/src/ril.cpp b/src/lynq/framework/lynq-ril-service/src/ril.cpp
index 74de6c2..54d2185 100755
--- a/src/lynq/framework/lynq-ril-service/src/ril.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/ril.cpp
@@ -81,6 +81,8 @@
#include "lynq_user.h"
#include "lynq_rndis.h"
#include "lynq_factory.h"
+/*victor add*/
+#include "lynq_send_log_data.h"
/*lei add*/
/*Warren add for t800 RIL service 2021_12_10 end*/
@@ -6401,11 +6403,11 @@
lynqInfo(argv);
break;
}
- // case LYNQ_GOTO_PLAT_REQ:
- // {
- // lynq_deal_with_log_at(&argv[3]);
- // break;
- // }
+ case LYNQ_GOTO_PLAT_REQ:
+ {
+ lynq_deal_with_log_at(&argv[3]);
+ break;
+ }
case LYNQ_GOTO_RNDIS_REQ:
{
lynq_get_rndis_data(buffer);