Skip to content

Commit

Permalink
Collect mdlog trace and status in Bugreport
Browse files Browse the repository at this point in the history
Bug: 72712518
Change-Id: Id6701ddc4fde18bade8acd6cbada1b116ee6455d
(cherry picked from commit 0878ca9)
(cherry picked from commit d9a4883)
  • Loading branch information
Jie Song authored and android-build-team Robot committed Mar 13, 2019
1 parent 09274be commit 3cbee39
Showing 1 changed file with 27 additions and 10 deletions.
37 changes: 27 additions & 10 deletions dumpstate/DumpstateDevice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#define MODEM_LOG_LOC_PROPERTY "ro.radio.log_loc"
#define MODEM_LOGGING_SWITCH "persist.radio.smlog_switch"

#define DIAG_MDLOG_PERSIST_PROPERTY "persist.sys.modem.diag.mdlog"
#define DIAG_MDLOG_PROPERTY "sys.modem.diag.mdlog"
#define DIAG_MDLOG_STATUS_PROPERTY "sys.modem.diag.mdlog_on"

Expand Down Expand Up @@ -106,12 +107,12 @@ void DumpstateDevice::dumpModem(int fd, int fdModem)
}

if (!PropertiesHelper::IsUserBuild()) {
bool smlogEnabled = android::base::GetBoolProperty(MODEM_LOGGING_SWITCH, false) &&
!access("/vendor/bin/smlog_dump", X_OK);

bool diagLogEnabled = android::base::GetBoolProperty(DIAG_MDLOG_PROPERTY, false);

CommandOptions options = CommandOptions::WithTimeout(120).Build();

RunCommandToFd(fd, "MODEM DIAG SYSTEM PROPERTIES",
{ "/vendor/bin/sh", "-c", "getprop", "|", "grep", "sys.modem.diag" }, options);

std::string modemLogAllDir = modemLogDir + "/modem_log";
std::string diagLogDir = "/data/vendor/radio/diag_logs/logs";
std::vector<std::string> rilAndNetmgrLogs
Expand All @@ -120,21 +121,34 @@ void DumpstateDevice::dumpModem(int fd, int fdModem)
"/data/vendor/radio/ril_log_old",
"/data/vendor/netmgr/netmgr_log",
"/data/vendor/netmgr/netmgr_log_old",
"/data/vendor/radio/power_anomaly_data.txt"
"/data/vendor/radio/power_anomaly_data.txt",
"/data/vendor/radio/diag_logs/diag_trace.txt",
"/data/vendor/radio/diag_logs/diag_trace_old.txt",
};

std::string modemLogMkDirCmd= "/vendor/bin/mkdir -p " + modemLogAllDir;
RunCommandToFd(fd, "MKDIR MODEM LOG", { "/vendor/bin/sh", "-c", modemLogMkDirCmd.c_str()}, options);

bool smlogEnabled = android::base::GetBoolProperty(MODEM_LOGGING_SWITCH, false) &&
!access("/vendor/bin/smlog_dump", X_OK);

bool diagLogEnabled = android::base::GetBoolProperty(DIAG_MDLOG_PERSIST_PROPERTY, false);

if (smlogEnabled) {
RunCommandToFd(fd, "SMLOG DUMP", { "smlog_dump", "-d", "-o", modemLogAllDir.c_str() }, options);
} else if (diagLogEnabled) {
android::base::SetProperty(DIAG_MDLOG_PROPERTY, "false");
bool diagLogStarted = android::base::GetBoolProperty(DIAG_MDLOG_STATUS_PROPERTY, false);

if (diagLogStarted) {
android::base::SetProperty(DIAG_MDLOG_PROPERTY, "false");
ALOGD("Stopping diag_mdlog...\n");
} else {
ALOGD("diag_mdlog is not running\n");
}

ALOGD("Waiting for diag log to exit\n");
for (int i = 0; i < 30; i++) {
if (!android::base::GetBoolProperty(DIAG_MDLOG_STATUS_PROPERTY, false)) {
ALOGD("diag log exited\n");
ALOGD("diag_mdlog exited\n");
sleep(1);
break;
}
Expand All @@ -144,13 +158,16 @@ void DumpstateDevice::dumpModem(int fd, int fdModem)

dumpDiagLogs(fd, diagLogDir, modemLogAllDir);

android::base::SetProperty(DIAG_MDLOG_PROPERTY, "true");
if (diagLogStarted) {
ALOGD("Restarting diag_mdlog...\n");
android::base::SetProperty(DIAG_MDLOG_PROPERTY, "true");
}
}

for (const auto& logFile : rilAndNetmgrLogs)
{
std::string copyCmd= "/vendor/bin/cp " + logFile + " " + modemLogAllDir;
RunCommandToFd(fd, "CP MODEM LOG", { "/vendor/bin/sh", "-c", copyCmd.c_str()}, options);
RunCommandToFd(fd, "CP MODEM LOG", { "/vendor/bin/sh", "-c", copyCmd.c_str() }, options);
}

std::string filePrefix = android::base::GetProperty(MODEM_LOG_PREFIX_PROPERTY, "");
Expand Down

0 comments on commit 3cbee39

Please sign in to comment.