diff --git a/dumpstate/dump_power.cpp b/dumpstate/dump_power.cpp index 24e5cf2..7316b27 100644 --- a/dumpstate/dump_power.cpp +++ b/dumpstate/dump_power.cpp @@ -356,7 +356,7 @@ void dumpBatteryHealth() { } void dumpBatteryDefend() { - const char* defendConfig [][4] { + const char* defendConfig [][3] { {"TRICKLE-DEFEND Config", "/sys/devices/platform/google,battery/power_supply/battery/", "bd_"}, {"DWELL-DEFEND Config", "/sys/devices/platform/google,charger/", "charge_s"}, @@ -401,6 +401,57 @@ void dumpBatteryDefend() { } } +void dumpBatteryCaretaker() { + const char* aacpConfig [][3] { + {"AACP Version", + "/sys/devices/platform/google,battery/power_supply/battery/", "aacp_"}, + {"AACR Config", + "/sys/devices/platform/google,battery/power_supply/battery/", "aacr_"}, + {"AAFV Config", + "/sys/devices/platform/google,battery/power_supply/battery/", "aafv_"}, + {"AACT Config", + "/sys/devices/platform/google,battery/power_supply/battery/", "aact_"}, + {"AACC", + "/sys/devices/platform/google,battery/power_supply/battery/", "aacc"}, + }; + + std::vector files; + struct dirent *entry; + std::string content; + std::string fileLocation; + + for (auto &config : aacpConfig) { + DIR *dir = opendir(config[1]); + if (dir == NULL) + continue; + + printTitle(config[0]); + while ((entry = readdir(dir)) != NULL) { + if (std::string(entry->d_name).find(config[2]) != std::string::npos && + strncmp(config[2], entry->d_name, strlen(config[2])) == 0) { + files.push_back(entry->d_name); + } + } + closedir(dir); + + sort(files.begin(), files.end()); + + for (auto &file : files) { + fileLocation = std::string(config[1]) + std::string(file); + if (!android::base::ReadFileToString(fileLocation, &content) || content.empty()) { + content = "\n"; + } + + printf("%s: %s", file.c_str(), content.c_str()); + + if (content.back() != '\n') + printf("\n"); + } + + files.clear(); + } +} + void printValuesOfDirectory(const char *directory, std::string debugfs, const char *strMatch) { std::vector files; auto info = directory; @@ -1072,6 +1123,7 @@ int main() { dumpPdEngine(); dumpBatteryHealth(); dumpBatteryDefend(); + dumpBatteryCaretaker(); dumpChg(); dumpChgUserDebug(); dumpScratchpad();