align user experience on Android bug tool

Bug: 255250616
Test:
adb shell dumpsys android.hardware.dumpstate.IDumpstateDevice/default wlan

Change-Id: Ibefd8f9fff91cf6ece1f09dd6b207b6f9c97df4d
This commit is contained in:
Adam Shih 2022-11-02 13:00:36 +08:00 committed by TreeHugger Robot
parent ec83dfc5a5
commit 3c94afad75

View file

@ -266,6 +266,7 @@ Dumpstate::Dumpstate()
// if the specified section is not supported.
void Dumpstate::dumpTextSection(int fd, const std::string &sectionName) {
bool dumpAll = (sectionName == kAllSections);
std::string dumpFiles;
for (const auto &section : mTextSections) {
if (dumpAll || sectionName == section.first) {
@ -279,22 +280,29 @@ void Dumpstate::dumpTextSection(int fd, const std::string &sectionName) {
}
}
// Execute all programs under vendor/bin/dump/
// Execute all or designated programs under vendor/bin/dump/
std::unique_ptr<DIR, decltype(&closedir)> dir(opendir("/vendor/bin/dump"), closedir);
if (!dir) {
ALOGE("Fail To Open Dir vendor/bin/dump/");
} else {
dirent *entry;
while ((entry = readdir(dir.get())) != nullptr) {
ALOGE("Fail To Open Dir vendor/bin/dump/");
::android::base::WriteStringToFd("Fail To Open Dir vendor/bin/dump/\n", fd);
return;
}
dirent *entry;
while ((entry = readdir(dir.get())) != nullptr) {
// Skip '.', '..'
if (entry->d_name[0] == '.') {
continue;
continue;
}
std::string bin(entry->d_name);
auto startTime = startSection(fd, "/vendor/bin/dump/"+bin);
RunCommandToFd(fd, "/vendor/bin/dump/"+bin, {"/vendor/bin/dump/"+bin});
endSection(fd, "/vendor/bin/dump/"+bin, startTime);
}
dumpFiles = dumpFiles + " " + bin;
if (dumpAll || sectionName == bin) {
auto startTime = startSection(fd, bin);
RunCommandToFd(fd, "/vendor/bin/dump/"+bin, {"/vendor/bin/dump/"+bin});
endSection(fd, bin, startTime);
if (!dumpAll) {
return;
}
}
}
if (dumpAll) {
@ -307,6 +315,7 @@ void Dumpstate::dumpTextSection(int fd, const std::string &sectionName) {
for (const auto &section : mTextSections) {
::android::base::WriteStringToFd(" " + section.first, fd);
}
::android::base::WriteStringToFd(dumpFiles, fd);
::android::base::WriteStringToFd("\nNote: sections with attachments (e.g. modem) are"
"not avalable from the command line.\n", fd);
}