diff --git a/ferrochrome_app/AndroidManifest.xml b/ferrochrome_app/AndroidManifest.xml
index d783bbc..d0aa62c 100644
--- a/ferrochrome_app/AndroidManifest.xml
+++ b/ferrochrome_app/AndroidManifest.xml
@@ -8,7 +8,6 @@
         android:label="Ferrochrome">
         <activity android:name=".FerrochromeActivity"
                   android:configChanges="orientation|screenSize|keyboard|keyboardHidden|navigation|uiMode"
-                  android:theme="@style/MyTheme"
                   android:screenOrientation="landscape"
                   android:exported="true">
             <intent-filter>
diff --git a/ferrochrome_app/java/com/android/virtualization/ferrochrome/FerrochromeActivity.java b/ferrochrome_app/java/com/android/virtualization/ferrochrome/FerrochromeActivity.java
index 58005aa..40af3b6 100644
--- a/ferrochrome_app/java/com/android/virtualization/ferrochrome/FerrochromeActivity.java
+++ b/ferrochrome_app/java/com/android/virtualization/ferrochrome/FerrochromeActivity.java
@@ -74,9 +74,11 @@
 
         executorService.execute(
                 () -> {
-                    updateImageIfNeeded();
-                    updateStatus("Starting Ferrochrome...");
-                    runOnUiThread(() -> startActivityForResult(intent, REQUEST_CODE_VMLAUNCHER));
+                    if (updateImageIfNeeded()) {
+                        updateStatus("Starting Ferrochrome...");
+                        runOnUiThread(
+                                () -> startActivityForResult(intent, REQUEST_CODE_VMLAUNCHER));
+                    }
                 });
     }
 
@@ -87,18 +89,25 @@
         }
     }
 
-    private void updateImageIfNeeded() {
+    private boolean updateImageIfNeeded() {
         if (!isUpdateNeeded()) {
             Log.d(TAG, "No update needed.");
-            return;
+            return true;
         }
 
-        updateStatus("Copying images...");
         try {
             if (Files.notExists(DEST_DIR)) {
                 Files.createDirectory(DEST_DIR);
             }
-            for (String file : getAssets().list("ferrochrome")) {
+
+            String[] files = getAssets().list("ferrochrome");
+            if (files == null || files.length == 0) {
+                updateStatus("ChromeOS image not found. Please go/try-ferrochrome");
+                return false;
+            }
+
+            updateStatus("Copying images...");
+            for (String file : files) {
                 updateStatus(file);
                 Path dst = Path.of(DEST_DIR.toString(), file);
                 updateFile(getAssets().open("ferrochrome/" + file), dst);
@@ -106,7 +115,7 @@
         } catch (IOException e) {
             Log.e(TAG, "Error while updating image: " + e);
             updateStatus("Failed.");
-            return;
+            return false;
         }
         updateStatus("Done.");
 
@@ -118,10 +127,20 @@
             } catch (Exception e) {
                 Log.e(TAG, "Error while extracting image: " + e);
                 updateStatus("Failed.");
-                return;
+                return false;
             }
         }
+        // TODO(jiyong): remove this sleep.
+        try {
+            Thread.sleep(30 * 1000);
+        } catch (Exception e) {
+            Log.e(TAG, "Interrupted while waiting for the copy to finish");
+            updateStatus("Failed.");
+            return false;
+        }
+
         updateStatus("Done.");
+        return true;
     }
 
     private boolean isUpdateNeeded() {
diff --git a/ferrochrome_app/res/layout/activity_ferrochrome.xml b/ferrochrome_app/res/layout/activity_ferrochrome.xml
index 7d5e8aa..3967167 100644
--- a/ferrochrome_app/res/layout/activity_ferrochrome.xml
+++ b/ferrochrome_app/res/layout/activity_ferrochrome.xml
@@ -1,14 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    tools:context=".FerrochromeActivity">
+    android:fitsSystemWindows="true"
+    android:paddingLeft="16dp"
+    android:paddingRight="16dp">
   <TextView
       android:layout_width="match_parent"
-      android:layout_height="match_parent"
+      android:layout_height="wrap_content"
+      android:textSize="28sp"
       android:id="@+id/status_txt_view"/>
 
-</RelativeLayout>
\ No newline at end of file
+</RelativeLayout>
diff --git a/ferrochrome_app/res/values/themes.xml b/ferrochrome_app/res/values/themes.xml
deleted file mode 100644
index c9a9ed2..0000000
--- a/ferrochrome_app/res/values/themes.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<resources xmlns:tools="http://schemas.android.com/tools">
-    <style name="MyTheme" parent="@android:style/Theme.DeviceDefault.NoActionBar">
-    </style>
-</resources>
