diff --git a/dumpstate/DumpstateDevice.cpp b/dumpstate/DumpstateDevice.cpp index 8a2b0ed3..1765b733 100644 --- a/dumpstate/DumpstateDevice.cpp +++ b/dumpstate/DumpstateDevice.cpp @@ -247,6 +247,7 @@ DumpstateDevice::DumpstateDevice() { "ramdump", [this](int fd) { dumpRamdumpSection(fd); } }, { "misc", [this](int fd) { dumpMiscSection(fd); } }, { "gsc", [this](int fd) { dumpGscSection(fd); } }, + { "camera", [this](int fd) { dumpCameraSection(fd); } }, } { } @@ -848,6 +849,14 @@ void DumpstateDevice::dumpGscSection(int fd) { RunCommandToFd(fd, "Citadel STATS", {"vendor/bin/hw/citadel_updater", "--stats"}); } +// Dump essential camera debugging logs +void DumpstateDevice::dumpCameraSection(int fd) { + RunCommandToFd(fd, "Camera HAL Graph State Dump", {"/vendor/bin/sh", "-c", + "for f in $(ls -t /data/vendor/camera/hal_graph_state*.txt |head -1); do " + "echo $f ; cat $f ; done"}, + CommandOptions::WithTimeout(4).Build()); +} + void DumpstateDevice::dumpModem(int fd, int fdModem) { std::string modemLogDir = MODEM_LOG_DIRECTORY; diff --git a/dumpstate/DumpstateDevice.h b/dumpstate/DumpstateDevice.h index 2c53087d..5c2b5ad0 100644 --- a/dumpstate/DumpstateDevice.h +++ b/dumpstate/DumpstateDevice.h @@ -82,6 +82,7 @@ struct DumpstateDevice : public IDumpstateDevice { void dumpRamdumpSection(int fd); void dumpMiscSection(int fd); void dumpGscSection(int fd); + void dumpCameraSection(int fd); // Hybrid and binary sections that require an additional file descriptor void dumpModem(int fd, int fdModem);