Revert the "traffic stats log convert tp pcap" mechanism
Since we already disable this mechanism in B5/R3. So we remove it. Bug: 179620905 Test: Build pass. Basic function work. Test with generate bugreport success. Change-Id: I59e0aaa3fcff5e32b2e9fb626bcd899148102a2b
This commit is contained in:
parent
bfdafe2056
commit
2a3fd510f9
|
@ -34,8 +34,7 @@ LOCAL_SHARED_LIBRARIES := \
|
|||
libdumpstateutil \
|
||||
libhidlbase \
|
||||
liblog \
|
||||
libutils \
|
||||
libpcap
|
||||
libutils
|
||||
|
||||
LOCAL_CFLAGS := -Werror -Wall
|
||||
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <pcap.h>
|
||||
|
||||
#define _SVID_SOURCE
|
||||
#include <dirent.h>
|
||||
|
||||
|
@ -53,10 +51,6 @@
|
|||
|
||||
#define VENDOR_VERBOSE_LOGGING_ENABLED_PROPERTY "persist.vendor.verbose_logging_enabled"
|
||||
|
||||
#define TIME_BUFFER 24
|
||||
#define STRING_BUFFER 550
|
||||
#define MAX_PACKET_LENGTH 150
|
||||
|
||||
using android::os::dumpstate::CommandOptions;
|
||||
using android::os::dumpstate::DumpFileToFd;
|
||||
using android::os::dumpstate::PropertiesHelper;
|
||||
|
@ -246,132 +240,6 @@ static void dumpLogs(int fd, std::string srcDir, std::string destDir,
|
|||
free(dirent_list);
|
||||
}
|
||||
|
||||
// Get timestamp and packet data
|
||||
static void GetTimeStampAndPkt(char *pktbuf, unsigned char *packet, char *strtime, int totalbyte){
|
||||
int idxLog = 0;
|
||||
int idxPkt = 0;
|
||||
int firstPktDataIdx = 2;
|
||||
int lastPktDataIdx = totalbyte - 2;
|
||||
char arrTmpTime[19];
|
||||
char arrStrTime[TIME_BUFFER];
|
||||
char* tmpPktByteStr;
|
||||
char* pktDataStr = pktbuf;
|
||||
unsigned char arrPktData[MAX_PACKET_LENGTH];
|
||||
|
||||
memset(arrTmpTime, 0, sizeof(arrTmpTime));
|
||||
while ((tmpPktByteStr = strtok_r(pktDataStr, " ", &pktDataStr))) {
|
||||
if(idxLog == 0) {
|
||||
snprintf(arrTmpTime, sizeof(arrTmpTime),"%s", tmpPktByteStr);
|
||||
}
|
||||
if(idxLog == 1) {
|
||||
snprintf(arrStrTime, sizeof(arrStrTime),"%s %s",arrTmpTime, tmpPktByteStr);
|
||||
}
|
||||
if(idxLog > firstPktDataIdx && idxLog <= lastPktDataIdx) {
|
||||
int data;
|
||||
unsigned char pktdata;
|
||||
sscanf(tmpPktByteStr,"%02x", &data);
|
||||
pktdata = (unsigned char)data;
|
||||
arrPktData[idxPkt] = pktdata;
|
||||
idxPkt++;
|
||||
}
|
||||
idxLog++;
|
||||
}
|
||||
memcpy(packet, arrPktData, MAX_PACKET_LENGTH);
|
||||
memcpy(strtime, arrStrTime, TIME_BUFFER);
|
||||
}
|
||||
|
||||
static void ProcessPcapDump(FILE *fp, pcap_dumper_t *dumper)
|
||||
{
|
||||
ALOGD("ProcessPcapDump(): enter");
|
||||
char strLogBuf[STRING_BUFFER];
|
||||
char arrPktBuf[STRING_BUFFER];
|
||||
char arrPktSplitBuf[STRING_BUFFER];
|
||||
char arrStrTime[TIME_BUFFER];
|
||||
unsigned char arrPktData[MAX_PACKET_LENGTH];
|
||||
|
||||
if(fp == NULL) {
|
||||
ALOGD("can not read extended_log_datastall file!");
|
||||
return;
|
||||
}
|
||||
if(dumper == NULL) {
|
||||
ALOGD("can not open pcap file.");
|
||||
return;
|
||||
}
|
||||
|
||||
while (!feof(fp)) {
|
||||
while (fgets(strLogBuf,STRING_BUFFER,fp)) {
|
||||
if(strLogBuf[0] == '\n') {
|
||||
continue;
|
||||
}
|
||||
memcpy(arrPktBuf, strLogBuf, sizeof(arrPktBuf));
|
||||
memcpy(arrPktSplitBuf, strLogBuf, sizeof(arrPktSplitBuf));
|
||||
|
||||
int countPktLen = 0;
|
||||
char* tmpPktByteStr;
|
||||
char* pktDataStr = arrPktSplitBuf;
|
||||
while ((tmpPktByteStr = strtok_r(pktDataStr, " ", &pktDataStr))) {
|
||||
countPktLen+=1;
|
||||
}
|
||||
|
||||
// Get timestamp and packet data
|
||||
GetTimeStampAndPkt(arrPktBuf ,arrPktData, arrStrTime, countPktLen);
|
||||
|
||||
// Build packet header
|
||||
int timeMSec;
|
||||
char* strTime;
|
||||
char* strTimeMsec;
|
||||
char* strTmpTime = arrStrTime;
|
||||
struct pcap_pkthdr pcap_hdr;
|
||||
while ((strTime = strtok_r(strTmpTime, ".", &strTmpTime))) {
|
||||
if(strTmpTime == NULL) {
|
||||
break;
|
||||
}
|
||||
time_t time;
|
||||
struct tm timeStruct;
|
||||
memset(&timeStruct, 0, sizeof(struct tm));
|
||||
if(strlen(strTime) == 19) {
|
||||
strptime(strTime, "%Y-%m-%d %H:%M:%S", &timeStruct);
|
||||
time = mktime(&timeStruct);
|
||||
pcap_hdr.ts.tv_sec = time;
|
||||
}
|
||||
strTimeMsec = strtok_r(strTmpTime, ".", &strTmpTime);
|
||||
if(strTimeMsec == NULL) {
|
||||
break;
|
||||
}
|
||||
timeMSec = atoi(strTimeMsec);
|
||||
pcap_hdr.ts.tv_usec = timeMSec;
|
||||
}
|
||||
pcap_hdr.caplen = sizeof(arrPktData);
|
||||
pcap_hdr.len = pcap_hdr.caplen;
|
||||
pcap_dump((u_char *)dumper, &pcap_hdr, arrPktData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void MergeAndConvertToPcap(char* logFile, char* oldlogFile, char* pcapFile) {
|
||||
|
||||
ALOGD("DumpPcap(): enter");
|
||||
pcap_t *handle = pcap_open_dead(DLT_EN10MB, 1 << 16);
|
||||
pcap_dumper_t *dumper = pcap_dump_open(handle, pcapFile);
|
||||
|
||||
if(dumper == NULL) {
|
||||
ALOGD("can not open pcap file.");
|
||||
return;
|
||||
}
|
||||
|
||||
FILE *fp = fopen(oldlogFile, "r");
|
||||
if(fp != NULL) {
|
||||
ProcessPcapDump(fp, dumper);
|
||||
fclose(fp);
|
||||
}
|
||||
fp = fopen(logFile, "r");
|
||||
if(fp != NULL) {
|
||||
ProcessPcapDump(fp, dumper);
|
||||
fclose(fp);
|
||||
}
|
||||
pcap_dump_close(dumper);
|
||||
}
|
||||
|
||||
static void *dumpModemThread(void *data)
|
||||
{
|
||||
long fdModem = (long)data;
|
||||
|
@ -429,12 +297,6 @@ static void *dumpModemThread(void *data)
|
|||
}
|
||||
copyFile(diagPoweronLogPath, modemLogAllDir + "/" + basename(diagPoweronLogPath.c_str()));
|
||||
|
||||
// dump to pcap
|
||||
char fpcapname[]="/data/vendor/radio/extended_logs/extended_log_datastall.pcap";
|
||||
char flogname[]="/data/vendor/radio/extended_logs/extended_log_datastall.txt";
|
||||
char flogoldname[]="/data/vendor/radio/extended_logs/extended_log_datastall.txt.old";
|
||||
MergeAndConvertToPcap(flogname, flogoldname, fpcapname);
|
||||
|
||||
if (!PropertiesHelper::IsUserBuild()) {
|
||||
char cmd[256] = { 0 };
|
||||
|
||||
|
|
Loading…
Reference in New Issue