diff --git a/cmds/dumpstate/utils.cpp b/cmds/dumpstate/utils.cpp
index fc1f721..83fcf21 100644
--- a/cmds/dumpstate/utils.cpp
+++ b/cmds/dumpstate/utils.cpp
@@ -163,7 +163,7 @@
 }
 
 Dumpstate::Dumpstate(bool dryRun, const std::string& buildType)
-    : dryRun_(dryRun), buildType_(buildType) {
+    : now_(time(nullptr)), dryRun_(dryRun), buildType_(buildType) {
 }
 
 Dumpstate& Dumpstate::GetInstance() {
@@ -208,6 +208,10 @@
     return "user" == buildType_;
 }
 
+std::string Dumpstate::GetPath(const std::string& suffix) {
+    return bugreportDir_ + "/" + baseName_ + "-" + suffix_ + suffix;
+}
+
 void for_each_userid(void (*func)(int), const char *header) {
     if (IsDryRun()) return;
 
@@ -1342,9 +1346,16 @@
     }
 }
 
-void take_screenshot(const std::string& path) {
-    RunCommand("", {"/system/bin/screencap", "-p", path},
-               CommandOptions::WithTimeout(10).Always().RedirectStderr().Build());
+void Dumpstate::TakeScreenshot(const std::string& path) {
+    const std::string& realPath = path.empty() ? screenshotPath_ : path;
+    int status =
+        RunCommand("", {"/system/bin/screencap", "-p", realPath},
+                   CommandOptions::WithTimeout(10).Always().DropRoot().RedirectStderr().Build());
+    if (status == 0) {
+        MYLOGD("Screenshot saved on %s\n", realPath.c_str());
+    } else {
+        MYLOGE("Failed to take screenshot on %s\n", realPath.c_str());
+    }
 }
 
 void vibrate(FILE* vibrator, int ms) {
