diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.kt b/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.kt
index 5987859..7acc5f3 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.kt
@@ -20,7 +20,6 @@
 import android.system.ErrnoException
 import android.system.Os
 import android.util.Log
-import androidx.annotation.VisibleForTesting
 import com.android.virtualization.terminal.MainActivity.Companion.TAG
 import java.io.BufferedReader
 import java.io.FileReader
@@ -35,7 +34,6 @@
 import kotlin.math.ceil
 
 /** Collection of files that consist of a VM image. */
-@VisibleForTesting
 public class InstalledImage private constructor(val installDir: Path) {
     private val rootPartition: Path = installDir.resolve(ROOTFS_FILENAME)
     val backupFile: Path = installDir.resolve(BACKUP_FILENAME)
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.kt b/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.kt
index 2abe6c8..5e039d9 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.kt
@@ -99,7 +99,6 @@
         val toolbar = findViewById<MaterialToolbar>(R.id.toolbar)
         setSupportActionBar(toolbar)
         terminalView = findViewById<TerminalView>(R.id.webview)
-        terminalView.getSettings().setDatabaseEnabled(true)
         terminalView.getSettings().setDomStorageEnabled(true)
         terminalView.getSettings().setJavaScriptEnabled(true)
         terminalView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE)
@@ -389,10 +388,9 @@
         modifierKeys.visibility = if (showModifierKeys) View.VISIBLE else View.GONE
     }
 
-    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
-        super.onActivityResult(requestCode, resultCode, data)
-
-        if (requestCode == REQUEST_CODE_INSTALLER) {
+    private val installerLauncher =
+        registerForActivityResult(StartActivityForResult()) { result ->
+            val resultCode = result.resultCode
             if (resultCode != RESULT_OK) {
                 Log.e(TAG, "Failed to start VM. Installer returned error.")
                 finish()
@@ -403,14 +401,13 @@
                 startVm()
             }
         }
-    }
 
     private fun installIfNecessary(): Boolean {
         // If payload from external storage exists(only for debuggable build) or there is no
         // installed image, launch installer activity.
         if (!image.isInstalled()) {
             val intent = Intent(this, InstallerActivity::class.java)
-            startActivityForResult(intent, REQUEST_CODE_INSTALLER)
+            installerLauncher.launch(intent)
             return true
         }
         return false
diff --git a/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.kt b/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.kt
index 946d28f..88bdfab 100644
--- a/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.kt
+++ b/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.kt
@@ -20,8 +20,8 @@
 import android.content.Intent
 import android.os.Bundle
 import android.os.SystemProperties
-import androidx.test.InstrumentationRegistry
-import androidx.test.runner.AndroidJUnit4
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
 import com.android.microdroid.test.common.DeviceProperties
 import com.android.microdroid.test.common.MetricsProcessor
 import java.io.IOException
