diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/InstallerService.java b/android/TerminalApp/java/com/android/virtualization/terminal/InstallerService.java
index b3102db..6737d49 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/InstallerService.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/InstallerService.java
@@ -206,7 +206,7 @@
             notifyError(getString(R.string.installer_error_unknown));
             return false;
         }
-        return true;
+        return InstallUtils.createInstalledMarker(this);
     }
 
     private void notifyError(String displayText) {
diff --git a/libs/vm_launcher_lib/java/com/android/virtualization/vmlauncher/InstallUtils.java b/libs/vm_launcher_lib/java/com/android/virtualization/vmlauncher/InstallUtils.java
index 17dc8dd..a4e7809 100644
--- a/libs/vm_launcher_lib/java/com/android/virtualization/vmlauncher/InstallUtils.java
+++ b/libs/vm_launcher_lib/java/com/android/virtualization/vmlauncher/InstallUtils.java
@@ -49,6 +49,16 @@
         return Files.exists(getInstallationCompletedPath(context));
     }
 
+    public static boolean createInstalledMarker(Context context) {
+        try {
+            File file = new File(getInstallationCompletedPath(context).toString());
+            return file.createNewFile();
+        } catch (IOException e) {
+            Log.e(TAG, "Failed to mark install completed", e);
+            return false;
+        }
+    }
+
     private static Path getPayloadPath() {
         File payloadDir = Environment.getExternalStoragePublicDirectory(PAYLOAD_DIR);
         if (payloadDir == null) {
@@ -114,14 +124,7 @@
         }
 
         // Create marker for installation done.
-        try {
-            File file = new File(getInstallationCompletedPath(context).toString());
-            file.createNewFile();
-        } catch (IOException e) {
-            Log.e(TAG, "Failed to mark install completed", e);
-            return false;
-        }
-        return true;
+        return createInstalledMarker(context);
     }
 
     private static Function<String, String> getReplacer(Context context) {
