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
parent c4a7543d1f
commit 082bb51497

View file

@ -246,6 +246,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) {
@ -259,11 +260,13 @@ 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 {
::android::base::WriteStringToFd("Fail To Open Dir vendor/bin/dump/\n", fd);
return;
}
dirent *entry;
while ((entry = readdir(dir.get())) != nullptr) {
// Skip '.', '..'
@ -271,9 +274,14 @@ void Dumpstate::dumpTextSection(int fd, const std::string &sectionName) {
continue;
}
std::string bin(entry->d_name);
auto startTime = startSection(fd, "/vendor/bin/dump/"+bin);
dumpFiles = dumpFiles + " " + bin;
if (dumpAll || sectionName == bin) {
auto startTime = startSection(fd, bin);
RunCommandToFd(fd, "/vendor/bin/dump/"+bin, {"/vendor/bin/dump/"+bin});
endSection(fd, "/vendor/bin/dump/"+bin, startTime);
endSection(fd, bin, startTime);
if (!dumpAll) {
return;
}
}
}
@ -287,6 +295,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);
}