diff options
author | Rukun Mao <rmao@google.com> | 2017-02-07 20:48:47 -0800 |
---|---|---|
committer | Rukun Mao <rmao@google.com> | 2017-02-15 11:13:32 -0800 |
commit | eba4ecaa20dddd44022d42d4850ea6df809df075 (patch) | |
tree | 68f8a07974804b82bbf9c1b80b352b037f687276 /dumpstate/DumpstateDevice.cpp | |
parent | 7d683973b2d2443ec30c12cbe260ce38eaf50f21 (diff) | |
download | marlin-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-x | dumpstate/DumpstateDevice.cpp | 31 |
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); } } } |