summaryrefslogtreecommitdiff
path: root/dumpstate/DumpstateDevice.cpp
diff options
context:
space:
mode:
authorRukun Mao <rmao@google.com>2017-02-07 20:48:47 -0800
committerRukun Mao <rmao@google.com>2017-02-15 11:13:32 -0800
commiteba4ecaa20dddd44022d42d4850ea6df809df075 (patch)
tree68f8a07974804b82bbf9c1b80b352b037f687276 /dumpstate/DumpstateDevice.cpp
parent7d683973b2d2443ec30c12cbe260ce38eaf50f21 (diff)
downloadmarlin-eba4ecaa20dddd44022d42d4850ea6df809df075.tar.gz
Integrate RIL, Netmgr, and smlog into bugreport.
Changes in "hal_dumpstate_impl.te" handle the following error messages: 1) W cp : type=1400 audit(0.0:1453): avc: denied { search } for name="radio" dev="sda35" ino=3850249 scontext= u:r:hal_dumpstate_impl:s0 tcontext=u:object_r:radio_data_file:s0 tclass= dir permissive=0 2) W cp : type=1400 audit(0.0:1455): avc: denied { search } for name="netmgr" dev="sda35" ino=3850296 scontext= u:r:hal_dumpstate_impl:s0 tcontext=u:object_r:netmgr_data_file:s0 tclass= dir permissive=0 Test: RIL, netmgr, and smlog become part of bugreport. BUG=34460768 Change-Id: I8ce4aa3129275425926ac3df769994c2308e8478
Diffstat (limited to 'dumpstate/DumpstateDevice.cpp')
-rwxr-xr-xdumpstate/DumpstateDevice.cpp31
1 files changed, 23 insertions, 8 deletions
diff --git a/dumpstate/DumpstateDevice.cpp b/dumpstate/DumpstateDevice.cpp
index 18be72cd..1542095d 100755
--- a/dumpstate/DumpstateDevice.cpp
+++ b/dumpstate/DumpstateDevice.cpp
@@ -59,16 +59,31 @@ static void getModemLogs(int fd)
/* Execute SMLOG DUMP if SMLOG is enabled */
if (modemLogsEnabled) {
CommandOptions options = CommandOptions::WithTimeout(120).Build();
- RunCommandToFd(fd, "SMLOG DUMP", { "smlog_dump", "-d", "-o", modemLogDir.c_str() }, options);
- // Remove smlog folders older than 10 days.
+ std::string modemLogAllDir = modemLogDir + "/modem_log";
+ std::vector<std::string> rilAndNetmgrLogs
+ {
+ "/data/misc/radio/ril_log",
+ "/data/misc/radio/ril_log_old",
+ "/data/misc/netmgr/netmgr_log",
+ "/data/misc/netmgr/netmgr_log_old"
+ };
+ std::string modemLogMkDirCmd= "/system/bin/mkdir " + modemLogAllDir;
+ RunCommandToFd(fd, "MKDIR MODEM LOG", { "/system/bin/sh", "-c", modemLogMkDirCmd.c_str()}, options);
+ RunCommandToFd(fd, "SMLOG DUMP", { "smlog_dump", "-d", "-o", modemLogAllDir.c_str() }, options);
+ for (std::string logFile : rilAndNetmgrLogs)
+ {
+ std::string copyCmd= "/system/bin/cp " + logFile + " " + modemLogAllDir;
+ RunCommandToFd(fd, "MV MODEM LOG", { "/system/bin/sh", "-c", copyCmd.c_str()}, options);
+ }
std::string filePrefix = android::base::GetProperty(MODEM_LOG_PREFIX_PROPERTY, "");
if (!filePrefix.empty()) {
-
- std::string removeCommand = "/system/bin/find " +
- modemLogDir + "/" + filePrefix + "* -mtime +10 -delete";
-
- RunCommandToFd(fd, "RM OLD SMLOG",
- { "/system/bin/sh", "-c", removeCommand.c_str() });
+ std::string modemLogCombined = modemLogDir + "/" + filePrefix + "all.tar";
+ std::string modemLogTarCmd= "/system/bin/tar cvf " + modemLogCombined + " -C " + modemLogAllDir + " .";
+ RunCommandToFd(fd, "TAR LOG", { "/system/bin/sh", "-c", modemLogTarCmd.c_str()}, options);
+ std::string modemLogPermCmd= "/system/bin/chmod a+rw " + modemLogCombined;
+ RunCommandToFd(fd, "CHG PERM", { "/system/bin/sh", "-c", modemLogPermCmd.c_str()}, options);
+ std::string modemLogClearCmd= "/system/bin/rm -r " + modemLogAllDir;
+ RunCommandToFd(fd, "RM MODEM DIR", { "/system/bin/sh", "-c", modemLogClearCmd.c_str()}, options);
}
}
}