summaryrefslogtreecommitdiff
path: root/packages/Shell/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/Shell/src')
-rw-r--r--packages/Shell/src/com/android/shell/BugreportProgressService.java29
1 files changed, 21 insertions, 8 deletions
diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java
index d126ee0955ea..c76b50bd4e9c 100644
--- a/packages/Shell/src/com/android/shell/BugreportProgressService.java
+++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java
@@ -615,13 +615,16 @@ public class BugreportProgressService extends Service {
+ " bugreport parcel file descriptor is null.");
return;
}
- ParcelFileDescriptor screenshotFd = info.getDefaultScreenshotFd();
- if (screenshotFd == null) {
- Log.e(TAG, "Failed to start bugreport generation as"
- + " screenshot parcel file descriptor is null. Deleting bugreport file");
- FileUtils.closeQuietly(bugreportFd);
- info.bugreportFile.delete();
- return;
+ ParcelFileDescriptor screenshotFd = null;
+ if (isDefaultScreenshotRequired(bugreportType)) {
+ screenshotFd = info.getDefaultScreenshotFd();
+ if (screenshotFd == null) {
+ Log.e(TAG, "Failed to start bugreport generation as"
+ + " screenshot parcel file descriptor is null. Deleting bugreport file");
+ FileUtils.closeQuietly(bugreportFd);
+ info.bugreportFile.delete();
+ return;
+ }
}
mBugreportManager = (BugreportManager) mContext.getSystemService(
@@ -641,10 +644,20 @@ public class BugreportProgressService extends Service {
// The binder call didn't go through successfully, so need to close the fds.
// If the calls went through API takes ownership.
FileUtils.closeQuietly(bugreportFd);
- FileUtils.closeQuietly(screenshotFd);
+ if (screenshotFd != null) {
+ FileUtils.closeQuietly(screenshotFd);
+ }
}
}
+ private static boolean isDefaultScreenshotRequired(
+ @BugreportParams.BugreportMode int bugreportType) {
+ // Modify dumpstate#SetOptionsFromMode as well for default system screenshots.
+ // We override dumpstate for interactive bugreports.
+ return bugreportType == BugreportParams.BUGREPORT_MODE_FULL
+ || bugreportType == BugreportParams.BUGREPORT_MODE_WEAR;
+ }
+
private static ParcelFileDescriptor getFd(File file) {
try {
return ParcelFileDescriptor.open(file,