Merge "vm --enable-earlycon arg: also enable keep_bootcon" into main
diff --git a/android/TerminalApp/Android.bp b/android/TerminalApp/Android.bp
index 2711af0..733a72b 100644
--- a/android/TerminalApp/Android.bp
+++ b/android/TerminalApp/Android.bp
@@ -9,7 +9,6 @@
         "java/**/*.kt",
     ],
     resource_dirs: ["res"],
-    asset_dirs: ["assets"],
     static_libs: [
         "androidx-constraintlayout_constraintlayout",
         "androidx.window_window",
diff --git a/android/TerminalApp/assets/.gitkeep b/android/TerminalApp/assets/.gitkeep
deleted file mode 100644
index e69de29..0000000
--- a/android/TerminalApp/assets/.gitkeep
+++ /dev/null
diff --git a/android/TerminalApp/assets/client.p12 b/android/TerminalApp/assets/client.p12
deleted file mode 100644
index f1f5820..0000000
--- a/android/TerminalApp/assets/client.p12
+++ /dev/null
Binary files differ
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/ConfigJson.java b/android/TerminalApp/java/com/android/virtualization/terminal/ConfigJson.java
index e1342e9..ab03049 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/ConfigJson.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/ConfigJson.java
@@ -35,9 +35,16 @@
 import com.google.gson.Gson;
 import com.google.gson.annotations.SerializedName;
 
+import java.io.BufferedReader;
 import java.io.FileReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.nio.file.Path;
 import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /** This class and its inner classes model vm_config.json. */
 class ConfigJson {
@@ -69,14 +76,40 @@
     private GpuJson gpu;
 
     /** Parses JSON file at jsonPath */
-    static ConfigJson from(String jsonPath) {
-        try (FileReader r = new FileReader(jsonPath)) {
-            return new Gson().fromJson(r, ConfigJson.class);
+    static ConfigJson from(Context context, Path jsonPath) {
+        try (FileReader fileReader = new FileReader(jsonPath.toFile())) {
+            String content = replaceKeywords(fileReader, context);
+            return new Gson().fromJson(content, ConfigJson.class);
         } catch (Exception e) {
             throw new RuntimeException("Failed to parse " + jsonPath, e);
         }
     }
 
+    private static String replaceKeywords(Reader r, Context context) throws IOException {
+        Map<String, String> rules = new HashMap<>();
+        rules.put("\\$PAYLOAD_DIR", InstalledImage.getDefault(context).getInstallDir().toString());
+        rules.put("\\$USER_ID", String.valueOf(context.getUserId()));
+        rules.put("\\$PACKAGE_NAME", context.getPackageName());
+        String appDataDir = context.getDataDir().toString();
+        // TODO: remove this hack
+        if (context.getUserId() == 0) {
+            appDataDir = "/data/data/" + context.getPackageName();
+        }
+        rules.put("\\$APP_DATA_DIR", appDataDir);
+
+        try (BufferedReader br = new BufferedReader(r)) {
+            return br.lines()
+                    .map(
+                            line -> {
+                                for (Map.Entry<String, String> rule : rules.entrySet()) {
+                                    line = line.replaceAll(rule.getKey(), rule.getValue());
+                                }
+                                return line;
+                            })
+                    .collect(Collectors.joining("\n"));
+        }
+    }
+
     private int getCpuTopology() {
         switch (cpu_topology) {
             case "one_cpu":
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/ErrorActivity.java b/android/TerminalApp/java/com/android/virtualization/terminal/ErrorActivity.java
index ee1f1ad..44dcce5 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/ErrorActivity.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/ErrorActivity.java
@@ -16,6 +16,7 @@
 
 package com.android.virtualization.terminal;
 
+import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.View;
@@ -25,7 +26,14 @@
 import androidx.annotation.Nullable;
 
 public class ErrorActivity extends BaseActivity {
-    public static final String EXTRA_CAUSE = "cause";
+    private static final String EXTRA_CAUSE = "cause";
+
+    public static void start(Context context, Exception e) {
+        Intent intent = new Intent(context, ErrorActivity.class);
+        intent.putExtra(EXTRA_CAUSE, e);
+        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
+        context.startActivity(intent);
+    }
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/ImageArchive.java b/android/TerminalApp/java/com/android/virtualization/terminal/ImageArchive.java
new file mode 100644
index 0000000..b2a2085
--- /dev/null
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/ImageArchive.java
@@ -0,0 +1,169 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.virtualization.terminal;
+
+import android.os.Build;
+import android.os.Environment;
+
+import org.apache.commons.compress.archivers.ArchiveEntry;
+import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
+import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
+
+import java.io.BufferedInputStream;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
+import java.util.Arrays;
+import java.util.function.Function;
+
+/**
+ * ImageArchive models the archive file (images.tar.gz) where VM payload files are in. This class
+ * provides methods for handling the archive file, most importantly installing it.
+ */
+class ImageArchive {
+    private static final String DIR_IN_SDCARD = "linux";
+    private static final String ARCHIVE_NAME = "images.tar.gz";
+    private static final String HOST_URL = "https://dl.google.com/android/ferrochrome/latest";
+
+    // Only one can be non-null
+    private final URL mUrl;
+    private final Path mPath;
+
+    private ImageArchive(URL url) {
+        mUrl = url;
+        mPath = null;
+    }
+
+    private ImageArchive(Path path) {
+        mUrl = null;
+        mPath = path;
+    }
+
+    public static Path getSdcardPathForTesting() {
+        return Environment.getExternalStoragePublicDirectory(DIR_IN_SDCARD).toPath();
+    }
+
+    /** Creates ImageArchive which is located in the sdcard. This archive is for testing only. */
+    public static ImageArchive fromSdCard() {
+        Path file = getSdcardPathForTesting().resolve(ARCHIVE_NAME);
+        return new ImageArchive(file);
+    }
+
+    /** Creates ImageArchive which is hosted in the Google server. This is the official archive. */
+    public static ImageArchive fromInternet() {
+        String arch = Arrays.asList(Build.SUPPORTED_ABIS).contains("x86_64") ? "x86_64" : "aarch64";
+        try {
+            URL url = new URL(HOST_URL + "/" + arch + "/" + ARCHIVE_NAME);
+            return new ImageArchive(url);
+        } catch (MalformedURLException e) {
+            // cannot happen
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * Creates ImageArchive from either SdCard or Internet. SdCard is used only when the build is
+     * debuggable and the file actually exists.
+     */
+    public static ImageArchive getDefault() {
+        ImageArchive archive = fromSdCard();
+        if (Build.isDebuggable() && archive.exists()) {
+            return archive;
+        } else {
+            return fromInternet();
+        }
+    }
+
+    /** Tests if ImageArchive exists on the medium. */
+    public boolean exists() {
+        if (mPath != null) {
+            return Files.exists(mPath);
+        } else {
+            // TODO
+            return true;
+        }
+    }
+
+    /** Returns size of the archive in bytes */
+    public long getSize() throws IOException {
+        if (!exists()) {
+            throw new IllegalStateException("Cannot get size of non existing archive");
+        }
+        if (mPath != null) {
+            return Files.size(mPath);
+        } else {
+            HttpURLConnection conn = null;
+            try {
+                conn = (HttpURLConnection) mUrl.openConnection();
+                conn.setRequestMethod("HEAD");
+                conn.getInputStream();
+                return conn.getContentLength();
+            } finally {
+                if (conn != null) {
+                    conn.disconnect();
+                }
+            }
+        }
+    }
+
+    private InputStream getInputStream(Function<InputStream, InputStream> filter)
+            throws IOException {
+        InputStream is = mPath != null ? new FileInputStream(mPath.toFile()) : mUrl.openStream();
+        BufferedInputStream bufStream = new BufferedInputStream(is);
+        return filter == null ? bufStream : filter.apply(bufStream);
+    }
+
+    /**
+     * Installs this ImageArchive to a directory pointed by path. filter can be supplied to provide
+     * an additional input stream which will be used during the installation.
+     */
+    public void installTo(Path dir, Function<InputStream, InputStream> filter) throws IOException {
+        try (InputStream stream = getInputStream(filter);
+                GzipCompressorInputStream gzStream = new GzipCompressorInputStream(stream);
+                TarArchiveInputStream tarStream = new TarArchiveInputStream(gzStream)) {
+
+            Files.createDirectories(dir);
+            ArchiveEntry entry;
+            while ((entry = tarStream.getNextEntry()) != null) {
+                Path to = dir.resolve(entry.getName());
+                if (Files.isDirectory(to)) {
+                    Files.createDirectories(to);
+                } else {
+                    Files.copy(tarStream, to, StandardCopyOption.REPLACE_EXISTING);
+                }
+            }
+        }
+        commitInstallationAt(dir);
+    }
+
+    private void commitInstallationAt(Path dir) throws IOException {
+        // To save storage, delete the source archive on the disk.
+        if (mPath != null) {
+            Files.deleteIfExists(mPath);
+        }
+
+        // Mark the completion
+        Path marker = dir.resolve(InstalledImage.MARKER_FILENAME);
+        Files.createFile(marker);
+    }
+}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/InstallUtils.java b/android/TerminalApp/java/com/android/virtualization/terminal/InstallUtils.java
deleted file mode 100644
index 71f2a2d..0000000
--- a/android/TerminalApp/java/com/android/virtualization/terminal/InstallUtils.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.virtualization.terminal;
-
-import static com.android.virtualization.terminal.MainActivity.TAG;
-
-import android.content.Context;
-import android.os.Environment;
-import android.os.FileUtils;
-import android.util.Log;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-import org.apache.commons.compress.archivers.ArchiveEntry;
-import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
-import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.StandardCopyOption;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Function;
-
-public class InstallUtils {
-    private static final String VM_CONFIG_FILENAME = "vm_config.json";
-    private static final String COMPRESSED_PAYLOAD_FILENAME = "images.tar.gz";
-    private static final String ROOTFS_FILENAME = "root_part";
-    private static final String BACKUP_FILENAME = "root_part_backup";
-    private static final String INSTALLATION_COMPLETED_FILENAME = "completed";
-    private static final String PAYLOAD_DIR = "linux";
-
-    public static String getVmConfigPath(Context context) {
-        return getInternalStorageDir(context).toPath().resolve(VM_CONFIG_FILENAME).toString();
-    }
-
-    public static boolean isImageInstalled(Context context) {
-        return Files.exists(getInstallationCompletedPath(context));
-    }
-
-    public static void backupRootFs(Context context) throws IOException {
-        Files.move(
-                getRootfsFile(context).toPath(),
-                getBackupFile(context).toPath(),
-                StandardCopyOption.REPLACE_EXISTING);
-    }
-
-    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;
-        }
-    }
-
-    @VisibleForTesting
-    public static void deleteInstallation(Context context) {
-        FileUtils.deleteContentsAndDir(getInternalStorageDir(context));
-    }
-
-    private static Path getPayloadPath() {
-        File payloadDir = Environment.getExternalStoragePublicDirectory(PAYLOAD_DIR);
-        if (payloadDir == null) {
-            Log.d(TAG, "no payload dir: " + payloadDir);
-            return null;
-        }
-        Path payloadPath = payloadDir.toPath().resolve(COMPRESSED_PAYLOAD_FILENAME);
-        return payloadPath;
-    }
-
-    public static boolean payloadFromExternalStorageExists() {
-        return Files.exists(getPayloadPath());
-    }
-
-    public static File getInternalStorageDir(Context context) {
-        return new File(context.getFilesDir(), PAYLOAD_DIR);
-    }
-
-    public static File getBackupFile(Context context) {
-        return new File(context.getFilesDir(), BACKUP_FILENAME);
-    }
-
-    private static Path getInstallationCompletedPath(Context context) {
-        return getInternalStorageDir(context).toPath().resolve(INSTALLATION_COMPLETED_FILENAME);
-    }
-
-    public static boolean installImageFromExternalStorage(Context context) {
-        if (!payloadFromExternalStorageExists()) {
-            Log.d(TAG, "no artifact file from external storage");
-            return false;
-        }
-        Path payloadPath = getPayloadPath();
-        try (BufferedInputStream inputStream =
-                        new BufferedInputStream(Files.newInputStream(payloadPath));
-                TarArchiveInputStream tar =
-                        new TarArchiveInputStream(new GzipCompressorInputStream(inputStream))) {
-            ArchiveEntry entry;
-            Path baseDir = new File(context.getFilesDir(), PAYLOAD_DIR).toPath();
-            Files.createDirectories(baseDir);
-            while ((entry = tar.getNextEntry()) != null) {
-                Path extractTo = baseDir.resolve(entry.getName());
-                if (entry.isDirectory()) {
-                    Files.createDirectories(extractTo);
-                } else {
-                    Files.copy(tar, extractTo, StandardCopyOption.REPLACE_EXISTING);
-                }
-            }
-        } catch (IOException e) {
-            Log.e(TAG, "installation failed", e);
-            return false;
-        }
-        if (!resolvePathInVmConfig(context)) {
-            Log.d(TAG, "resolving path failed");
-            try {
-                Files.deleteIfExists(Path.of(getVmConfigPath(context)));
-            } catch (IOException e) {
-                return false;
-            }
-            return false;
-        }
-
-        // remove payload if installation is done.
-        try {
-            Files.deleteIfExists(payloadPath);
-        } catch (IOException e) {
-            Log.d(TAG, "failed to remove installed payload", e);
-        }
-
-        // Create marker for installation done.
-        return createInstalledMarker(context);
-    }
-
-    private static Function<String, String> getReplacer(Context context) {
-        Map<String, String> rules = new HashMap<>();
-        rules.put("\\$PAYLOAD_DIR", new File(context.getFilesDir(), PAYLOAD_DIR).toString());
-        rules.put("\\$USER_ID", String.valueOf(context.getUserId()));
-        rules.put("\\$PACKAGE_NAME", context.getPackageName());
-        String appDataDir = context.getDataDir().toString();
-        // TODO: remove this hack
-        if (context.getUserId() == 0) {
-            appDataDir = "/data/data/" + context.getPackageName();
-        }
-        rules.put("\\$APP_DATA_DIR", appDataDir);
-        return (s) -> {
-            for (Map.Entry<String, String> rule : rules.entrySet()) {
-                s = s.replaceAll(rule.getKey(), rule.getValue());
-            }
-            return s;
-        };
-    }
-
-    public static boolean resolvePathInVmConfig(Context context) {
-        try {
-            String replacedVmConfig =
-                    String.join(
-                            "\n",
-                            Files.readAllLines(Path.of(getVmConfigPath(context))).stream()
-                                    .map(getReplacer(context))
-                                    .toList());
-            Files.write(Path.of(getVmConfigPath(context)), replacedVmConfig.getBytes());
-            return true;
-        } catch (IOException e) {
-            return false;
-        }
-    }
-
-    public static File getRootfsFile(Context context) throws FileNotFoundException {
-        File file = new File(getInternalStorageDir(context), ROOTFS_FILENAME);
-        if (!file.exists()) {
-            Log.d(TAG, file.getAbsolutePath() + " - file not found");
-            throw new FileNotFoundException("File not found: " + ROOTFS_FILENAME);
-        }
-        return file;
-    }
-}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.java b/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.java
new file mode 100644
index 0000000..f616b87
--- /dev/null
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.java
@@ -0,0 +1,182 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.virtualization.terminal;
+
+import static com.android.virtualization.terminal.MainActivity.TAG;
+
+import android.content.Context;
+import android.os.FileUtils;
+import android.system.ErrnoException;
+import android.system.Os;
+import android.util.Log;
+
+import java.io.FileDescriptor;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
+
+/** Collection of files that consist of a VM image. */
+class InstalledImage {
+    private static final String INSTALL_DIRNAME = "linux";
+    private static final String ROOTFS_FILENAME = "root_part";
+    private static final String BACKUP_FILENAME = "root_part_backup";
+    private static final String CONFIG_FILENAME = "vm_config.json";
+    static final String MARKER_FILENAME = "completed";
+
+    public static final long RESIZE_STEP_BYTES = 4 << 20; // 4 MiB
+
+    private final Path mDir;
+    private final Path mRootPartition;
+    private final Path mBackup;
+    private final Path mConfig;
+    private final Path mMarker;
+
+    /** Returns InstalledImage for a given app context */
+    public static InstalledImage getDefault(Context context) {
+        Path installDir = context.getFilesDir().toPath().resolve(INSTALL_DIRNAME);
+        return new InstalledImage(installDir);
+    }
+
+    private InstalledImage(Path dir) {
+        mDir = dir;
+        mRootPartition = dir.resolve(ROOTFS_FILENAME);
+        mBackup = dir.resolve(BACKUP_FILENAME);
+        mConfig = dir.resolve(CONFIG_FILENAME);
+        mMarker = dir.resolve(MARKER_FILENAME);
+    }
+
+    public Path getInstallDir() {
+        return mDir;
+    }
+
+    /** Tests if this InstalledImage is actually installed. */
+    public boolean isInstalled() {
+        return Files.exists(mMarker);
+    }
+
+    /** Fully understalls this InstalledImage by deleting everything. */
+    public void uninstallFully() throws IOException {
+        FileUtils.deleteContentsAndDir(mDir.toFile());
+    }
+
+    /** Returns the path to the VM config file. */
+    public Path getConfigPath() {
+        return mConfig;
+    }
+
+    public Path uninstallAndBackup() throws IOException {
+        Files.delete(mMarker);
+        Files.move(mRootPartition, mBackup, StandardCopyOption.REPLACE_EXISTING);
+        return mBackup;
+    }
+
+    public Path getBackupFile() {
+        return mBackup;
+    }
+
+    public boolean hasBackup() {
+        return Files.exists(mBackup);
+    }
+
+    public void deleteBackup() throws IOException {
+        Files.deleteIfExists(mBackup);
+    }
+
+    public long getSize() throws IOException {
+        return Files.size(mRootPartition);
+    }
+
+    public long getSmallestSizePossible() throws IOException {
+        runE2fsck(mRootPartition);
+        String p = mRootPartition.toAbsolutePath().toString();
+        String result = runCommand("/system/bin/resize2fs", "-P", p);
+        // The return value is the number of 4k block
+        try {
+            long minSize =
+                    Long.parseLong(result.lines().toArray(String[]::new)[1].substring(42))
+                            * 4
+                            * 1024;
+            return roundUp(minSize);
+        } catch (NumberFormatException e) {
+            throw new IOException(e);
+        }
+    }
+
+    public long resize(long desiredSize) throws IOException {
+        desiredSize = roundUp(desiredSize);
+        final long curSize = getSize();
+
+        if (desiredSize == curSize) {
+            return desiredSize;
+        }
+
+        runE2fsck(mRootPartition);
+        if (desiredSize > curSize) {
+            allocateSpace(mRootPartition, desiredSize);
+        }
+        resizeFilesystem(mRootPartition, desiredSize);
+        return getSize();
+    }
+
+    private static void allocateSpace(Path path, long sizeInBytes) throws IOException {
+        try {
+            RandomAccessFile raf = new RandomAccessFile(path.toFile(), "rw");
+            FileDescriptor fd = raf.getFD();
+            Os.posix_fallocate(fd, 0, sizeInBytes);
+            raf.close();
+            Log.d(TAG, "Allocated space to: " + sizeInBytes + " bytes");
+        } catch (ErrnoException e) {
+            Log.e(TAG, "Failed to allocate space", e);
+            throw new IOException("Failed to allocate space", e);
+        }
+    }
+
+    private static void runE2fsck(Path path) throws IOException {
+        String p = path.toAbsolutePath().toString();
+        runCommand("/system/bin/e2fsck", "-y", "-f", p);
+        Log.d(TAG, "e2fsck completed: " + path);
+    }
+
+    private static void resizeFilesystem(Path path, long sizeInBytes) throws IOException {
+        long sizeInMB = sizeInBytes / (1024 * 1024);
+        if (sizeInMB == 0) {
+            Log.e(TAG, "Invalid size: " + sizeInBytes + " bytes");
+            throw new IllegalArgumentException("Size cannot be zero MB");
+        }
+        String sizeArg = sizeInMB + "M";
+        String p = path.toAbsolutePath().toString();
+        runCommand("/system/bin/resize2fs", p, sizeArg);
+        Log.d(TAG, "resize2fs completed: " + path + ", size: " + sizeArg);
+    }
+
+    private static String runCommand(String... command) throws IOException {
+        try {
+            Process process = new ProcessBuilder(command).redirectErrorStream(true).start();
+            process.waitFor();
+            return new String(process.getInputStream().readAllBytes());
+        } catch (InterruptedException e) {
+            Thread.currentThread().interrupt();
+            throw new IOException("Command interrupted", e);
+        }
+    }
+
+    private static long roundUp(long bytes) {
+        // Round up every diskSizeStep MB
+        return (long) Math.ceil(((double) bytes) / RESIZE_STEP_BYTES) * RESIZE_STEP_BYTES;
+    }
+}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/InstallerActivity.java b/android/TerminalApp/java/com/android/virtualization/terminal/InstallerActivity.java
index 52ef3d4..1c62572 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/InstallerActivity.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/InstallerActivity.java
@@ -41,6 +41,7 @@
 import com.google.android.material.progressindicator.LinearProgressIndicator;
 import com.google.android.material.snackbar.Snackbar;
 
+import java.io.IOException;
 import java.lang.ref.WeakReference;
 
 public class InstallerActivity extends BaseActivity {
@@ -63,12 +64,8 @@
         mInstallProgressListener = new InstallProgressListener(this);
 
         setContentView(R.layout.activity_installer);
-
-        TextView desc = (TextView) findViewById(R.id.installer_desc);
-        desc.setText(
-                getString(
-                        R.string.installer_desc_text_format,
-                        Formatter.formatShortFileSize(this, ESTIMATED_IMG_SIZE_BYTES)));
+        updateSizeEstimation(ESTIMATED_IMG_SIZE_BYTES);
+        measureImageSizeAndUpdateDescription();
 
         mWaitForWifiCheckbox = (CheckBox) findViewById(R.id.installer_wait_for_wifi_checkbox);
         mInstallButton = (TextView) findViewById(R.id.installer_install_button);
@@ -85,11 +82,38 @@
         }
     }
 
+    private void updateSizeEstimation(long est) {
+        String desc =
+                getString(
+                        R.string.installer_desc_text_format,
+                        Formatter.formatShortFileSize(this, est));
+        runOnUiThread(
+                () -> {
+                    TextView view = (TextView) findViewById(R.id.installer_desc);
+                    view.setText(desc);
+                });
+    }
+
+    private void measureImageSizeAndUpdateDescription() {
+        new Thread(
+                        () -> {
+                            long est;
+                            try {
+                                est = ImageArchive.getDefault().getSize();
+                            } catch (IOException e) {
+                                Log.w(TAG, "Failed to measure image size.", e);
+                                return;
+                            }
+                            updateSizeEstimation(est);
+                        })
+                .start();
+    }
+
     @Override
     public void onResume() {
         super.onResume();
 
-        if (Build.isDebuggable() && InstallUtils.payloadFromExternalStorageExists()) {
+        if (Build.isDebuggable() && ImageArchive.fromSdCard().exists()) {
             showSnackbar("Auto installing", Snackbar.LENGTH_LONG);
             requestInstall();
         }
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/InstallerService.java b/android/TerminalApp/java/com/android/virtualization/terminal/InstallerService.java
index 6fd3b5c..c2b3fd4 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/InstallerService.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/InstallerService.java
@@ -28,7 +28,6 @@
 import android.net.NetworkCapabilities;
 import android.os.Build;
 import android.os.IBinder;
-import android.os.SELinux;
 import android.util.Log;
 
 import androidx.annotation.NonNull;
@@ -36,23 +35,13 @@
 
 import com.android.internal.annotations.GuardedBy;
 
-import org.apache.commons.compress.archivers.ArchiveEntry;
-import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
-import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
-
-import java.io.BufferedInputStream;
-import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.ref.WeakReference;
 import java.net.SocketException;
-import java.net.URL;
 import java.net.UnknownHostException;
-import java.nio.file.Files;
 import java.nio.file.Path;
-import java.nio.file.StandardCopyOption;
 import java.util.Arrays;
-import java.util.Objects;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -64,9 +53,6 @@
                     ? "https://dl.google.com/android/ferrochrome/latest/x86_64/images.tar.gz"
                     : "https://dl.google.com/android/ferrochrome/latest/aarch64/images.tar.gz";
 
-    private static final String SELINUX_FILE_CONTEXT =
-            "u:object_r:virtualizationservice_data_file:";
-
     private final Object mLock = new Object();
 
     private Notification mNotification;
@@ -162,9 +148,6 @@
         mExecutorService.execute(
                 () -> {
                     boolean success = downloadFromSdcard() || downloadFromUrl(isWifiOnly);
-                    if (success) {
-                        reLabelImagesSELinuxContext();
-                    }
                     stopForeground(STOP_FOREGROUND_REMOVE);
 
                     synchronized (mLock) {
@@ -176,34 +159,21 @@
                 });
     }
 
-    private void reLabelImagesSELinuxContext() {
-        File payloadFolder = InstallUtils.getInternalStorageDir(this);
-
-        // The context should be u:object_r:privapp_data_file:s0:c35,c257,c512,c768
-        // and we want to get s0:c35,c257,c512,c768 part
-        String level = SELinux.getFileContext(payloadFolder.toString()).split(":", 4)[3];
-        String targetContext = SELINUX_FILE_CONTEXT + level;
-
-        File[] files = payloadFolder.listFiles();
-        for (File file : files) {
-            if (file.isFile() &&
-                    !Objects.equals(SELinux.getFileContext(file.toString()),
-                            targetContext)) {
-                SELinux.setFileContext(file.toString(), targetContext);
-            }
-        }
-    }
-
     private boolean downloadFromSdcard() {
+        ImageArchive archive = ImageArchive.fromSdCard();
+
         // Installing from sdcard is preferred, but only supported only in debuggable build.
-        if (Build.isDebuggable()) {
+        if (Build.isDebuggable() && archive.exists()) {
             Log.i(TAG, "trying to install /sdcard/linux/images.tar.gz");
 
-            if (InstallUtils.installImageFromExternalStorage(this)) {
+            Path dest = InstalledImage.getDefault(this).getInstallDir();
+            try {
+                archive.installTo(dest, null);
                 Log.i(TAG, "image is installed from /sdcard/linux/images.tar.gz");
                 return true;
+            } catch (IOException e) {
+                Log.i(TAG, "Failed to install /sdcard/linux/images.tar.gz", e);
             }
-            Log.i(TAG, "Failed to install /sdcard/linux/images.tar.gz");
         } else {
             Log.i(TAG, "Non-debuggable build doesn't support installation from /sdcard/linux");
         }
@@ -229,23 +199,16 @@
             return false;
         }
 
-        try (BufferedInputStream inputStream =
-                        new BufferedInputStream(new URL(IMAGE_URL).openStream());
-                WifiCheckInputStream wifiInputStream =
-                        new WifiCheckInputStream(inputStream, isWifiOnly);
-                TarArchiveInputStream tar =
-                        new TarArchiveInputStream(new GzipCompressorInputStream(wifiInputStream))) {
-            ArchiveEntry entry;
-            Path baseDir = InstallUtils.getInternalStorageDir(this).toPath();
-            Files.createDirectories(baseDir);
-            while ((entry = tar.getNextEntry()) != null) {
-                Path extractTo = baseDir.resolve(entry.getName());
-                if (entry.isDirectory()) {
-                    Files.createDirectories(extractTo);
-                } else {
-                    Files.copy(tar, extractTo, StandardCopyOption.REPLACE_EXISTING);
-                }
-            }
+        Path dest = InstalledImage.getDefault(this).getInstallDir();
+        try {
+            ImageArchive.fromInternet()
+                    .installTo(
+                            dest,
+                            is -> {
+                                WifiCheckInputStream filter = new WifiCheckInputStream(is);
+                                filter.setWifiOnly(isWifiOnly);
+                                return filter;
+                            });
         } catch (WifiCheckInputStream.NoWifiException e) {
             Log.e(TAG, "Install failed because of Wi-Fi is gone");
             notifyError(getString(R.string.installer_error_no_wifi));
@@ -260,12 +223,7 @@
             notifyError(getString(R.string.installer_error_unknown));
             return false;
         }
-
-        if (!InstallUtils.resolvePathInVmConfig(this)) {
-            notifyError(getString(R.string.installer_error_unknown));
-            return false;
-        }
-        return InstallUtils.createInstalledMarker(this);
+        return true;
     }
 
     private void notifyError(String displayText) {
@@ -339,7 +297,7 @@
         public boolean isInstalled() {
             InstallerService service = ensureServiceConnected();
             synchronized (service.mLock) {
-                return !service.mIsInstalling && InstallUtils.isImageInstalled(service);
+                return !service.mIsInstalling && InstalledImage.getDefault(service).isInstalled();
             }
         }
     }
@@ -348,11 +306,14 @@
         private static final int READ_BYTES = 1024;
 
         private final InputStream mInputStream;
-        private final boolean mIsWifiOnly;
+        private boolean mIsWifiOnly;
 
-        public WifiCheckInputStream(InputStream is, boolean isWifiOnly) {
+        public WifiCheckInputStream(InputStream is) {
             super();
             mInputStream = is;
+        }
+
+        public void setWifiOnly(boolean isWifiOnly) {
             mIsWifiOnly = isWifiOnly;
         }
 
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java b/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
index 14973e1..22f7c4e 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
@@ -35,8 +35,6 @@
 import android.os.ConditionVariable;
 import android.os.Environment;
 import android.provider.Settings;
-import android.system.ErrnoException;
-import android.system.Os;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.Menu;
@@ -61,11 +59,7 @@
 
 import com.google.android.material.appbar.MaterialToolbar;
 
-import java.io.File;
-import java.io.FileDescriptor;
-import java.io.FileNotFoundException;
 import java.io.IOException;
-import java.io.RandomAccessFile;
 import java.net.InetAddress;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -83,6 +77,7 @@
     private static final int REQUEST_CODE_INSTALLER = 0x33;
     private static final int FONT_SIZE_DEFAULT = 13;
 
+    private InstalledImage mImage;
     private X509Certificate[] mCertificates;
     private PrivateKey mPrivateKey;
     private WebView mWebView;
@@ -90,7 +85,6 @@
     private ConditionVariable mBootCompleted = new ConditionVariable();
     private static final int POST_NOTIFICATIONS_PERMISSION_REQUEST_CODE = 101;
     private ActivityResultLauncher<Intent> mManageExternalStorageActivityResultLauncher;
-    private static int diskSizeStep;
     private static final Map<Integer, Integer> BTN_KEY_CODE_MAP =
             Map.ofEntries(
                     Map.entry(R.id.btn_tab, KeyEvent.KEYCODE_TAB),
@@ -110,6 +104,8 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
+        mImage = InstalledImage.getDefault(this);
+
         NotificationManager notificationManager = getSystemService(NotificationManager.class);
         if (notificationManager.getNotificationChannel(this.getPackageName()) == null) {
             NotificationChannel channel =
@@ -123,8 +119,6 @@
         boolean launchInstaller = installIfNecessary();
 
         setContentView(R.layout.activity_headless);
-        diskSizeStep = getResources().getInteger(
-                R.integer.disk_size_round_up_step_size_in_mb) << 20;
 
         MaterialToolbar toolbar = (MaterialToolbar) findViewById(R.id.toolbar);
         setSupportActionBar(toolbar);
@@ -196,7 +190,7 @@
     public boolean dispatchKeyEvent(KeyEvent event) {
         if (Build.isDebuggable() && event.getKeyCode() == KeyEvent.KEYCODE_UNKNOWN) {
             if (event.getAction() == KeyEvent.ACTION_UP) {
-                launchErrorActivity(new Exception("Debug: KeyEvent.KEYCODE_UNKNOWN"));
+                ErrorActivity.start(this, new Exception("Debug: KeyEvent.KEYCODE_UNKNOWN"));
             }
             return true;
         }
@@ -334,80 +328,6 @@
                 .start();
     }
 
-    private void diskResize(File file, long sizeInBytes) throws IOException {
-        try {
-            if (sizeInBytes == 0) {
-                return;
-            }
-            String filePath = file.getAbsolutePath();
-            Log.d(TAG, "Disk-resize in progress for partition: " + filePath);
-
-            long currentSize = Os.stat(filePath).st_size;
-            runE2fsck(filePath);
-            if (sizeInBytes > currentSize) {
-                allocateSpace(file, sizeInBytes);
-            }
-
-            resizeFilesystem(filePath, sizeInBytes);
-        } catch (ErrnoException e) {
-            Log.e(TAG, "ErrnoException during disk resize", e);
-            throw new IOException("ErrnoException during disk resize", e);
-        } catch (IOException e) {
-            Log.e(TAG, "Failed to resize disk", e);
-            throw e;
-        }
-    }
-
-    private static void allocateSpace(File file, long sizeInBytes) throws IOException {
-        try {
-            RandomAccessFile raf = new RandomAccessFile(file, "rw");
-            FileDescriptor fd = raf.getFD();
-            Os.posix_fallocate(fd, 0, sizeInBytes);
-            raf.close();
-            Log.d(TAG, "Allocated space to: " + sizeInBytes + " bytes");
-        } catch (ErrnoException e) {
-            Log.e(TAG, "Failed to allocate space", e);
-            throw new IOException("Failed to allocate space", e);
-        }
-    }
-
-    private static void runE2fsck(String filePath) throws IOException {
-        try {
-            runCommand("/system/bin/e2fsck", "-y", "-f", filePath);
-            Log.d(TAG, "e2fsck completed: " + filePath);
-        } catch (IOException e) {
-            Log.e(TAG, "Failed to run e2fsck", e);
-            throw e;
-        }
-    }
-
-    private static void resizeFilesystem(String filePath, long sizeInBytes) throws IOException {
-        long sizeInMB = sizeInBytes / (1024 * 1024);
-        if (sizeInMB == 0) {
-            Log.e(TAG, "Invalid size: " + sizeInBytes + " bytes");
-            throw new IllegalArgumentException("Size cannot be zero MB");
-        }
-        String sizeArg = sizeInMB + "M";
-        try {
-            runCommand("/system/bin/resize2fs", filePath, sizeArg);
-            Log.d(TAG, "resize2fs completed: " + filePath + ", size: " + sizeArg);
-        } catch (IOException e) {
-            Log.e(TAG, "Failed to run resize2fs", e);
-            throw e;
-        }
-    }
-
-    private static String runCommand(String... command) throws IOException {
-        try {
-            Process process = new ProcessBuilder(command).redirectErrorStream(true).start();
-            process.waitFor();
-            return new String(process.getInputStream().readAllBytes());
-        } catch (InterruptedException e) {
-            Thread.currentThread().interrupt();
-            throw new IOException("Command interrupted", e);
-        }
-    }
-
     private static void waitUntilVmStarts() {
         InetAddress addr = null;
         try {
@@ -445,7 +365,8 @@
     @Override
     public void onVmError() {
         Log.i(TAG, "onVmError()");
-        launchErrorActivity(new Exception("onVmError"));
+        // TODO: error cause is too simple.
+        ErrorActivity.start(this, new Exception("onVmError"));
     }
 
     @Override
@@ -472,20 +393,17 @@
 
     @Override
     public void onAccessibilityStateChanged(boolean enabled) {
-        updateKeyboardContainerVisibility();
         connectToTerminalService();
     }
 
     private void updateKeyboardContainerVisibility() {
-        boolean accessibilityEnabled = mAccessibilityManager.isEnabled();
         boolean imeVisible =
                 this.getWindow()
                         .getDecorView()
                         .getRootWindowInsets()
                         .isVisible(WindowInsets.Type.ime());
         View keyboardContainer = findViewById(R.id.keyboard_container);
-        keyboardContainer.setVisibility(
-                accessibilityEnabled || !imeVisible ? View.GONE : View.VISIBLE);
+        keyboardContainer.setVisibility(!imeVisible ? View.GONE : View.VISIBLE);
     }
 
     @Override
@@ -505,17 +423,10 @@
         }
     }
 
-    private void launchErrorActivity(Exception e) {
-        Intent intent = new Intent(this, ErrorActivity.class);
-        intent.putExtra(ErrorActivity.EXTRA_CAUSE, e);
-        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
-        this.startActivity(intent);
-    }
-
     private boolean installIfNecessary() {
         // If payload from external storage exists(only for debuggable build) or there is no
         // installed image, launch installer activity.
-        if (!InstallUtils.isImageInstalled(this)) {
+        if (!mImage.isInstalled()) {
             Intent intent = new Intent(this, InstallerActivity.class);
             startActivityForResult(intent, REQUEST_CODE_INSTALLER);
             return true;
@@ -524,16 +435,17 @@
     }
 
     private void startVm() {
-        if (!InstallUtils.isImageInstalled(this)) {
+        InstalledImage image = InstalledImage.getDefault(this);
+        if (!image.isInstalled()) {
             return;
         }
 
-        resizeDiskIfNecessary();
+        resizeDiskIfNecessary(image);
 
         Intent tapIntent = new Intent(this, MainActivity.class);
         tapIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
-        PendingIntent tapPendingIntent = PendingIntent.getActivity(this, 0, tapIntent,
-                PendingIntent.FLAG_IMMUTABLE);
+        PendingIntent tapPendingIntent =
+                PendingIntent.getActivity(this, 0, tapIntent, PendingIntent.FLAG_IMMUTABLE);
 
         Intent settingsIntent = new Intent(this, SettingsActivity.class);
         settingsIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
@@ -589,52 +501,19 @@
         return mBootCompleted.block(timeoutMillis);
     }
 
-    private static long roundUpDiskSize(long diskSize) {
-        // Round up every diskSizeStep MB
-        return (long) Math.ceil(((double) diskSize) / diskSizeStep) * diskSizeStep;
-    }
-
-    public static long getMinFilesystemSize(File file) throws IOException, NumberFormatException {
+    private void resizeDiskIfNecessary(InstalledImage image) {
+        String prefKey = getString(R.string.preference_file_key);
+        String key = getString(R.string.preference_disk_size_key);
+        SharedPreferences sharedPref = this.getSharedPreferences(prefKey, Context.MODE_PRIVATE);
         try {
-            runE2fsck(file.getAbsolutePath());
-            String result = runCommand("/system/bin/resize2fs", "-P", file.getAbsolutePath());
-            // The return value is the number of 4k block
-            long minSize = Long.parseLong(
-                    result.lines().toArray(String[]::new)[1].substring(42)) * 4 * 1024;
-            return roundUpDiskSize(minSize);
-        } catch (IOException | NumberFormatException e) {
-            Log.e(TAG, "Failed to get filesystem size", e);
-            throw e;
-        }
-    }
-
-    private static long getFilesystemSize(File file) throws ErrnoException {
-        return Os.stat(file.getAbsolutePath()).st_size;
-    }
-
-    private void resizeDiskIfNecessary() {
-        try {
-            File file = InstallUtils.getRootfsFile(this);
-            SharedPreferences sharedPref = this.getSharedPreferences(
-                    getString(R.string.preference_file_key), Context.MODE_PRIVATE);
-            SharedPreferences.Editor editor = sharedPref.edit();
-
-            long currentDiskSize = getFilesystemSize(file);
-            long newSizeInBytes = sharedPref.getLong(getString(R.string.preference_disk_size_key),
-                    roundUpDiskSize(currentDiskSize));
-            editor.putLong(getString(R.string.preference_disk_size_key), newSizeInBytes);
-            editor.apply();
-
-            Log.d(TAG, "Current disk size: " + currentDiskSize);
-            Log.d(TAG, "Targeting disk size: " + newSizeInBytes);
-
-            if (newSizeInBytes != currentDiskSize) {
-                diskResize(file, newSizeInBytes);
-            }
-        } catch (FileNotFoundException e) {
-            Log.d(TAG, "No partition file");
-        } catch (IOException | ErrnoException | NumberFormatException e) {
+            // Use current size as default value to ensure if its size is multiple of 4096
+            long newSize = sharedPref.getLong(key, image.getSize());
+            Log.d(TAG, "Resizing disk to " + newSize + " bytes");
+            newSize = image.resize(newSize);
+            sharedPref.edit().putLong(key, newSize).apply();
+        } catch (IOException e) {
             Log.e(TAG, "Failed to resize disk", e);
+            return;
         }
     }
 }
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/PortNotifier.java b/android/TerminalApp/java/com/android/virtualization/terminal/PortNotifier.java
new file mode 100644
index 0000000..2f728ba
--- /dev/null
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/PortNotifier.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.virtualization.terminal;
+
+import static com.android.virtualization.terminal.MainActivity.TAG;
+
+import android.app.Notification;
+import android.app.Notification.Action;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.graphics.drawable.Icon;
+import android.util.Log;
+
+import java.util.HashSet;
+import java.util.Locale;
+import java.util.Set;
+
+/**
+ * PortNotifier is responsible for posting a notification when a new open port is detected. User can
+ * enable or disable forwarding of the port in notification panel.
+ */
+class PortNotifier {
+    private static final String ACTION_PORT_FORWARDING = "android.virtualization.PORT_FORWARDING";
+    private static final String KEY_PORT = "port";
+    private static final String KEY_ENABLED = "enabled";
+
+    private final Context mContext;
+    private final NotificationManager mNotificationManager;
+    private final BroadcastReceiver mReceiver;
+
+    public PortNotifier(Context context) {
+        mContext = context;
+        mNotificationManager = mContext.getSystemService(NotificationManager.class);
+        mReceiver = new PortForwardingRequestReceiver();
+
+        IntentFilter intentFilter = new IntentFilter(ACTION_PORT_FORWARDING);
+        mContext.registerReceiver(mReceiver, intentFilter, Context.RECEIVER_NOT_EXPORTED);
+    }
+
+    public void onActivePortsChanged(Set<String> oldPorts, Set<String> newPorts) {
+        Set<String> union = new HashSet<>(oldPorts);
+        union.addAll(newPorts);
+        for (String portStr : union) {
+            try {
+                int port = Integer.parseInt(portStr);
+                if (!oldPorts.contains(portStr)) {
+                    showNotificationFor(port);
+                } else if (!newPorts.contains(portStr)) {
+                    discardNotificationFor(port);
+                }
+            } catch (NumberFormatException e) {
+                Log.e(TAG, "Failed to parse port: " + portStr);
+                throw e;
+            }
+        }
+    }
+
+    public void stop() {
+        mContext.unregisterReceiver(mReceiver);
+    }
+
+    private String getString(int resId) {
+        return mContext.getString(resId);
+    }
+
+    private PendingIntent getPendingIntentFor(int port, boolean enabled) {
+        Intent intent = new Intent(ACTION_PORT_FORWARDING);
+        intent.setPackage(mContext.getPackageName());
+        intent.setIdentifier(String.format(Locale.ROOT, "%d_%b", port, enabled));
+        intent.putExtra(KEY_PORT, port);
+        intent.putExtra(KEY_ENABLED, enabled);
+        return PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_IMMUTABLE);
+    }
+
+    private void showNotificationFor(int port) {
+        Intent tapIntent = new Intent(mContext, SettingsPortForwardingActivity.class);
+        tapIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+        PendingIntent tapPendingIntent =
+                PendingIntent.getActivity(mContext, 0, tapIntent, PendingIntent.FLAG_IMMUTABLE);
+
+        String title = getString(R.string.settings_port_forwarding_notification_title);
+        String content =
+                mContext.getString(R.string.settings_port_forwarding_notification_content, port);
+        String acceptText = getString(R.string.settings_port_forwarding_notification_accept);
+        String denyText = getString(R.string.settings_port_forwarding_notification_deny);
+        Icon icon = Icon.createWithResource(mContext, R.drawable.ic_launcher_foreground);
+
+        Action acceptAction =
+                new Action.Builder(icon, acceptText, getPendingIntentFor(port, true /* enabled */))
+                        .build();
+        Action denyAction =
+                new Action.Builder(icon, denyText, getPendingIntentFor(port, false /* enabled */))
+                        .build();
+        Notification notification =
+                new Notification.Builder(mContext, mContext.getPackageName())
+                        .setSmallIcon(R.drawable.ic_launcher_foreground)
+                        .setContentTitle(title)
+                        .setContentText(content)
+                        .setContentIntent(tapPendingIntent)
+                        .addAction(acceptAction)
+                        .addAction(denyAction)
+                        .build();
+        mNotificationManager.notify(TAG, port, notification);
+    }
+
+    private void discardNotificationFor(int port) {
+        mNotificationManager.cancel(TAG, port);
+    }
+
+    private final class PortForwardingRequestReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (ACTION_PORT_FORWARDING.equals(intent.getAction())) {
+                performActionPortForwarding(context, intent);
+            }
+        }
+
+        private void performActionPortForwarding(Context context, Intent intent) {
+            String prefKey = context.getString(R.string.preference_file_key);
+            int port = intent.getIntExtra(KEY_PORT, 0);
+            String key = context.getString(R.string.preference_forwarding_port_is_enabled) + port;
+            boolean enabled = intent.getBooleanExtra(KEY_ENABLED, false);
+
+            context.getSharedPreferences(prefKey, Context.MODE_PRIVATE)
+                    .edit()
+                    .putBoolean(key, enabled)
+                    .apply();
+
+            discardNotificationFor(port);
+        }
+    }
+}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsActivity.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsActivity.kt
index 73bb0b9..6a30971 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsActivity.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsActivity.kt
@@ -16,6 +16,10 @@
 package com.android.virtualization.terminal
 
 import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
+import android.view.Window
+import android.view.WindowManager
 import androidx.appcompat.app.AppCompatActivity
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
@@ -28,6 +32,12 @@
         super.onCreate(savedInstanceState)
         setContentView(R.layout.settings_activity)
 
+        Handler(Looper.getMainLooper()).post {
+            val lp: WindowManager.LayoutParams = getWindow().getAttributes()
+            lp.accessibilityTitle = getString(R.string.action_settings)
+            getWindow().setAttributes(lp)
+        }
+
         val toolbar: MaterialToolbar = findViewById(R.id.settings_toolbar)
         setSupportActionBar(toolbar)
         val settingsItems = arrayOf(
@@ -56,4 +66,4 @@
         recyclerView.layoutManager = LinearLayoutManager(this)
         recyclerView.adapter = settingsListItemAdapter
     }
-}
\ No newline at end of file
+}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt
index 817808f..d9086a4 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt
@@ -17,23 +17,36 @@
 
 import android.content.Context
 import android.content.Intent
+import android.icu.text.MeasureFormat
+import android.icu.text.NumberFormat
+import android.icu.util.Measure
+import android.icu.util.MeasureUnit
 import android.os.Bundle
 import android.os.FileUtils
+import android.os.Handler
+import android.os.Looper
 import android.text.SpannableString
 import android.text.Spanned
 import android.text.TextUtils
-import android.text.format.Formatter
 import android.text.style.RelativeSizeSpan
+import android.widget.SeekBar
+import android.view.Window
+import android.view.WindowManager
 import android.widget.TextView
 import androidx.appcompat.app.AppCompatActivity
 import androidx.core.view.isVisible
 import com.google.android.material.button.MaterialButton
-import com.google.android.material.slider.Slider
+import java.util.Locale
 import java.util.regex.Pattern
 
 class SettingsDiskResizeActivity : AppCompatActivity() {
-    private val maxDiskSizeMb: Float = (16 shl 10).toFloat()
-    private val numberPattern: Pattern = Pattern.compile("[\\d]*[\\٫.,]?[\\d]+");
+    private val maxDiskSizeMb: Long = 16 shl 10
+    private val numberPattern: Pattern = Pattern.compile("[\\d]*[\\٫.,]?[\\d]+")
+
+    private var diskSizeStepMb: Long = 0
+    private var diskSizeMb: Long = 0
+    private lateinit var diskSizeText: TextView
+    private lateinit var diskSizeSlider: SeekBar
 
     private fun bytesToMb(bytes: Long): Long {
         return bytes shr 20;
@@ -43,68 +56,80 @@
         return bytes shl 20;
     }
 
+    private fun mbToProgress(bytes: Long): Int {
+        return (bytes / diskSizeStepMb).toInt()
+    }
+
+    private fun progressToMb(progress: Int): Long {
+        return progress * diskSizeStepMb
+    }
+
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.settings_disk_resize)
+
+        Handler(Looper.getMainLooper()).post {
+            val lp: WindowManager.LayoutParams = getWindow().getAttributes()
+            lp.accessibilityTitle = getString(R.string.settings_disk_resize_title)
+            getWindow().setAttributes(lp)
+        }
+
+        diskSizeStepMb = 1L shl resources.getInteger(R.integer.disk_size_round_up_step_size_in_mb)
+
         val sharedPref =
             this.getSharedPreferences(getString(R.string.preference_file_key), Context.MODE_PRIVATE)
-        var diskSizeMb =
-            bytesToMb(
-                sharedPref.getLong(
+        diskSizeMb = bytesToMb(sharedPref.getLong(
                     getString(R.string.preference_disk_size_key),
-                    0
-                )
-            ).toFloat();
-        val partition = InstallUtils.getRootfsFile(this)
+                    /* defValue= */ 0))
+        val image = InstalledImage.getDefault(this)
         val minDiskSizeMb =
-            bytesToMb(MainActivity.getMinFilesystemSize(partition)).toFloat()
+            bytesToMb(image.getSmallestSizePossible())
                 .coerceAtMost(diskSizeMb)
 
-        val diskSizeText = findViewById<TextView>(R.id.settings_disk_resize_resize_gb_assigned)
+        diskSizeText = findViewById<TextView>(R.id.settings_disk_resize_resize_gb_assigned)!!
         val diskMaxSizeText = findViewById<TextView>(R.id.settings_disk_resize_resize_gb_max)
         diskMaxSizeText.text = getString(R.string.settings_disk_resize_resize_gb_max_format,
-            localizedFileSize(maxDiskSizeMb)
+            localizedFileSize(maxDiskSizeMb, /* isShort= */ true)
         );
 
-        val diskSizeSlider = findViewById<Slider>(R.id.settings_disk_resize_disk_size_slider)
-        diskSizeSlider.setValueTo(maxDiskSizeMb)
+        diskSizeSlider = findViewById<SeekBar>(R.id.settings_disk_resize_disk_size_slider)!!
         val cancelButton = findViewById<MaterialButton>(R.id.settings_disk_resize_cancel_button)
         val resizeButton = findViewById<MaterialButton>(R.id.settings_disk_resize_resize_button)
-        diskSizeSlider.valueFrom = minDiskSizeMb
-        diskSizeSlider.valueTo = maxDiskSizeMb
-        diskSizeSlider.value = diskSizeMb
-        diskSizeSlider.stepSize =
-            resources.getInteger(R.integer.disk_size_round_up_step_size_in_mb).toFloat()
-        diskSizeSlider.setLabelFormatter { value: Float ->
-            localizedFileSize(value)
-        }
-        diskSizeText.text = enlargeFontOfNumber(
-            getString(R.string.settings_disk_resize_resize_gb_assigned_format,
-                localizedFileSize(diskSizeMb)
-            )
-        )
+        diskSizeSlider.min = mbToProgress(minDiskSizeMb)
+        diskSizeSlider.max = mbToProgress(maxDiskSizeMb)
+        diskSizeSlider.progress = mbToProgress(diskSizeMb)
+        updateSliderText(diskSizeMb)
 
-        diskSizeSlider.addOnChangeListener { _, value, _ ->
-            diskSizeText.text = enlargeFontOfNumber(
-                getString(R.string.settings_disk_resize_resize_gb_assigned_format,
-                localizedFileSize(value)))
-            cancelButton.isVisible = true
-            resizeButton.isVisible = true
-        }
+        diskSizeSlider.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+            override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
+                updateSliderText(progressToMb(progress))
+                cancelButton.isVisible = true
+                resizeButton.isVisible = true
+            }
+
+            override fun onStartTrackingTouch(seekBar: SeekBar?) {
+                // no-op
+            }
+
+            override fun onStopTrackingTouch(seekBar: SeekBar?) {
+                // no-op
+            }
+        })
+
         cancelButton.setOnClickListener {
-            diskSizeSlider.value = diskSizeMb
+            diskSizeSlider.progress = mbToProgress(diskSizeMb)
             cancelButton.isVisible = false
             resizeButton.isVisible = false
         }
 
         resizeButton.setOnClickListener {
-            diskSizeMb = diskSizeSlider.value
+            diskSizeMb = progressToMb(diskSizeSlider.progress)
             cancelButton.isVisible = false
             resizeButton.isVisible = false
             val editor = sharedPref.edit()
             editor.putLong(
                 getString(R.string.preference_disk_size_key),
-                mbToBytes(diskSizeMb.toLong())
+                mbToBytes(diskSizeMb)
             )
             editor.apply()
 
@@ -117,11 +142,28 @@
         }
     }
 
-    fun localizedFileSize(sizeMb: Float): String {
-        // formatShortFileSize() uses SI unit (i.e. kB = 1000 bytes),
-        // so covert sizeMb with "MB" instead of "MIB".
-        val bytes = FileUtils.parseSize(sizeMb.toLong().toString() + "MB")
-        return Formatter.formatShortFileSize(this, bytes)
+    fun updateSliderText(sizeMb: Long) {
+        diskSizeText.text = enlargeFontOfNumber(
+            getString(R.string.settings_disk_resize_resize_gb_assigned_format,
+                localizedFileSize(sizeMb, /* isShort= */ true)))
+        diskSizeSlider.stateDescription =
+            getString(R.string.settings_disk_resize_resize_gb_assigned_format,
+                localizedFileSize(sizeMb, /* isShort= */ false))
+    }
+
+    fun localizedFileSize(sizeMb: Long, isShort: Boolean): String {
+        val sizeGb = sizeMb / (1 shl 10).toFloat()
+        val measure = Measure(sizeGb, MeasureUnit.GIGABYTE)
+
+        val localeFromContext: Locale = resources.configuration.locales[0]
+        val numberFormatter: NumberFormat = NumberFormat.getInstance(localeFromContext)
+        numberFormatter.minimumFractionDigits = 1
+        numberFormatter.maximumFractionDigits = 1
+
+        val formatWidth = if (isShort) MeasureFormat.FormatWidth.SHORT else MeasureFormat.FormatWidth.WIDE
+        val measureFormat: MeasureFormat =
+            MeasureFormat.getInstance(localeFromContext, formatWidth, numberFormatter)
+        return measureFormat.format(measure)
     }
 
     fun enlargeFontOfNumber(summary: CharSequence): CharSequence {
@@ -141,4 +183,4 @@
         }
         return summary
     }
-}
\ No newline at end of file
+}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActivity.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActivity.kt
index 1b39ff0..0377de4 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActivity.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActivity.kt
@@ -15,52 +15,48 @@
  */
 package com.android.virtualization.terminal
 
-import android.Manifest
-import android.app.Notification
-import android.app.NotificationManager
-import android.app.PendingIntent
 import android.content.Context
-import android.content.Intent
-import android.content.pm.PackageManager
-import android.graphics.drawable.Icon
+import android.content.SharedPreferences
 import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
+import android.view.Window
+import android.view.WindowManager
 import androidx.appcompat.app.AppCompatActivity
-import androidx.core.app.ActivityCompat
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
-import com.android.virtualization.terminal.MainActivity.TAG
 
 class SettingsPortForwardingActivity : AppCompatActivity() {
+    private lateinit var mSharedPref: SharedPreferences
+    private lateinit var mAdapter: SettingsPortForwardingAdapter
+
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.settings_port_forwarding)
 
-        val settingsPortForwardingItems = ArrayList<SettingsPortForwardingItem>()
-
-        val sharedPref = this.getSharedPreferences(
-            getString(R.string.preference_file_key), Context.MODE_PRIVATE
-        )
-
-        val ports =
-            sharedPref.getStringSet(
-                getString(R.string.preference_forwarding_ports),
-                HashSet<String>()
-            )
-
-        for (port in ports!!) {
-            val enabled =
-                sharedPref.getBoolean(
-                    getString(R.string.preference_forwarding_port_is_enabled) + port,
-                    false
-                )
-            settingsPortForwardingItems.add(SettingsPortForwardingItem(port.toInt(), enabled));
+        Handler(Looper.getMainLooper()).post {
+            val lp: WindowManager.LayoutParams = getWindow().getAttributes()
+            lp.accessibilityTitle = getString(R.string.settings_port_forwarding_title)
+            getWindow().setAttributes(lp)
         }
 
-        val settingsPortForwardingAdapter =
-            SettingsPortForwardingAdapter(settingsPortForwardingItems, this)
+        mSharedPref =
+            this.getSharedPreferences(getString(R.string.preference_file_key), Context.MODE_PRIVATE)
+
+        mAdapter = SettingsPortForwardingAdapter(mSharedPref, this)
 
         val recyclerView: RecyclerView = findViewById(R.id.settings_port_forwarding_recycler_view)
         recyclerView.layoutManager = LinearLayoutManager(this)
-        recyclerView.adapter = settingsPortForwardingAdapter
+        recyclerView.adapter = mAdapter
+    }
+
+    override fun onResume() {
+        super.onResume()
+        mSharedPref.registerOnSharedPreferenceChangeListener(mAdapter)
+    }
+
+    override fun onPause() {
+        mSharedPref.unregisterOnSharedPreferenceChangeListener(mAdapter)
+        super.onPause()
     }
 }
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingAdapter.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingAdapter.kt
index 904f7f6..c3501d4 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingAdapter.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingAdapter.kt
@@ -22,13 +22,66 @@
 import android.view.ViewGroup
 import android.widget.TextView
 import androidx.recyclerview.widget.RecyclerView
+import androidx.recyclerview.widget.SortedList
+import androidx.recyclerview.widget.SortedListAdapterCallback
 import com.google.android.material.materialswitch.MaterialSwitch
 
 class SettingsPortForwardingAdapter(
-    private val dataSet: ArrayList<SettingsPortForwardingItem>,
-    private val context: Context
+    private val sharedPref: SharedPreferences?,
+    private val context: Context,
 ) :
-    RecyclerView.Adapter<SettingsPortForwardingAdapter.ViewHolder>() {
+    RecyclerView.Adapter<SettingsPortForwardingAdapter.ViewHolder>(),
+    SharedPreferences.OnSharedPreferenceChangeListener {
+
+    private var mItems: SortedList<SettingsPortForwardingItem>
+
+    init {
+        mItems =
+            SortedList(
+                SettingsPortForwardingItem::class.java,
+                object : SortedListAdapterCallback<SettingsPortForwardingItem>(this) {
+                    override fun compare(
+                        o1: SettingsPortForwardingItem,
+                        o2: SettingsPortForwardingItem,
+                    ): Int {
+                        return o1.port - o2.port
+                    }
+
+                    override fun areContentsTheSame(
+                        o1: SettingsPortForwardingItem,
+                        o2: SettingsPortForwardingItem,
+                    ): Boolean {
+                        return o1.port == o2.port && o1.enabled == o2.enabled
+                    }
+
+                    override fun areItemsTheSame(
+                        o1: SettingsPortForwardingItem,
+                        o2: SettingsPortForwardingItem,
+                    ): Boolean {
+                        return o1.port == o2.port
+                    }
+                },
+            )
+        mItems.addAll(getCurrentSettingsPortForwardingItem())
+    }
+
+    private fun getCurrentSettingsPortForwardingItem(): ArrayList<SettingsPortForwardingItem> {
+        val items = ArrayList<SettingsPortForwardingItem>()
+        val ports =
+            sharedPref!!.getStringSet(
+                context.getString(R.string.preference_forwarding_ports),
+                HashSet<String>(),
+            )
+        for (port in ports!!) {
+            val enabled =
+                sharedPref.getBoolean(
+                    context.getString(R.string.preference_forwarding_port_is_enabled) + port,
+                    false,
+                )
+            items.add(SettingsPortForwardingItem(port.toInt(), enabled))
+        }
+        return items
+    }
 
     class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
         val enabledSwitch: MaterialSwitch =
@@ -43,8 +96,9 @@
     }
 
     override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {
-        viewHolder.port.text = dataSet[position].port.toString()
-        viewHolder.enabledSwitch.isChecked = dataSet[position].enabled
+        viewHolder.port.text = mItems[position].port.toString()
+        viewHolder.enabledSwitch.contentDescription = viewHolder.port.text
+        viewHolder.enabledSwitch.isChecked = mItems[position].enabled
         viewHolder.enabledSwitch.setOnCheckedChangeListener { _, isChecked ->
             val sharedPref: SharedPreferences = context.getSharedPreferences(
                 context.getString(R.string.preference_file_key), Context.MODE_PRIVATE
@@ -58,5 +112,14 @@
         }
     }
 
-    override fun getItemCount() = dataSet.size
-}
\ No newline at end of file
+    override fun getItemCount() = mItems.size()
+
+    override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
+        if (
+            key == context.getString(R.string.preference_forwarding_ports) ||
+                key!!.startsWith(context.getString(R.string.preference_forwarding_port_is_enabled))
+        ) {
+            mItems.replaceAll(getCurrentSettingsPortForwardingItem())
+        }
+    }
+}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsRecoveryActivity.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsRecoveryActivity.kt
index e291b57..3adeece 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsRecoveryActivity.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsRecoveryActivity.kt
@@ -17,8 +17,12 @@
 
 import android.content.Intent
 import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
 import android.util.Log
 import android.view.View
+import android.view.Window
+import android.view.WindowManager
 import androidx.appcompat.app.AppCompatActivity
 import androidx.core.view.isVisible
 import androidx.lifecycle.lifecycleScope
@@ -27,6 +31,7 @@
 import com.google.android.material.dialog.MaterialAlertDialogBuilder
 import com.google.android.material.snackbar.Snackbar
 import java.io.IOException
+import java.nio.file.Files
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
@@ -35,6 +40,13 @@
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.settings_recovery)
+
+        Handler(Looper.getMainLooper()).post {
+            val lp: WindowManager.LayoutParams = getWindow().getAttributes()
+            lp.accessibilityTitle = getString(R.string.settings_recovery_title)
+            getWindow().setAttributes(lp)
+        }
+
         val resetCard = findViewById<MaterialCardView>(R.id.settings_recovery_reset_card)
         resetCard.setOnClickListener {
             var backupRootfs = false
@@ -55,7 +67,8 @@
             dialog.show()
         }
         val resetBackupCard = findViewById<View>(R.id.settings_recovery_reset_backup_card)
-        resetBackupCard.isVisible = InstallUtils.getBackupFile(this).exists()
+
+        resetBackupCard.isVisible = InstalledImage.getDefault(this).hasBackup()
 
         resetBackupCard.setOnClickListener {
             val dialog = MaterialAlertDialogBuilder(this)
@@ -73,7 +86,9 @@
     }
 
     private fun removeBackup(): Unit {
-        if (!InstallUtils.getBackupFile(this@SettingsRecoveryActivity).delete()) {
+        try {
+            InstalledImage.getDefault(this).deleteBackup()
+        } catch (e: IOException) {
             Snackbar.make(
                 findViewById(android.R.id.content),
                 R.string.settings_recovery_error_during_removing_backup,
@@ -85,12 +100,14 @@
 
     private fun uninstall(backupRootfs: Boolean): Unit {
         var backupDone = false
+        val image = InstalledImage.getDefault(this)
         try {
             if (backupRootfs) {
-                InstallUtils.backupRootFs(this@SettingsRecoveryActivity)
+                image.uninstallAndBackup()
                 backupDone = true
+            } else {
+                image.uninstallFully()
             }
-            InstallUtils.deleteInstallation(this@SettingsRecoveryActivity)
         } catch (e: IOException) {
             val errorMsgId = if (backupRootfs && !backupDone) R.string.settings_recovery_error_due_to_backup
                     else R.string.settings_recovery_error;
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/TerminalView.java b/android/TerminalApp/java/com/android/virtualization/terminal/TerminalView.java
index 274f423..efee62f 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/TerminalView.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/TerminalView.java
@@ -244,6 +244,7 @@
                             info.getBoundsInScreen(rect);
                             if (rect.width() == 0) {
                                 info.setText(null);
+                                info.setContentDescription(getString(R.string.empty_line));
                             }
                             info.setScreenReaderFocusable(false);
                             break;
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.java b/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.java
index cd1f65b..c2d224a 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.java
@@ -20,14 +20,9 @@
 
 import android.app.Notification;
 import android.app.NotificationManager;
-import android.app.PendingIntent;
 import android.app.Service;
-import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.SharedPreferences;
-import android.graphics.drawable.Icon;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -40,6 +35,7 @@
 import android.system.virtualmachine.VirtualMachineCustomImageConfig.Disk;
 import android.system.virtualmachine.VirtualMachineException;
 import android.util.Log;
+import android.widget.Toast;
 
 import io.grpc.Grpc;
 import io.grpc.InsecureServerCredentials;
@@ -55,9 +51,8 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.net.InetSocketAddress;
+import java.nio.file.Files;
 import java.nio.file.Path;
-import java.util.HashSet;
-import java.util.Locale;
 import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
@@ -82,7 +77,7 @@
     private ResultReceiver mResultReceiver;
     private Server mServer;
     private DebianServiceImpl mDebianService;
-    private PortForwardingRequestReceiver mPortForwardingReceiver;
+    private PortNotifier mPortNotifier;
 
     private static Intent getMyIntent(Context context) {
         return new Intent(context.getApplicationContext(), VmLauncherService.class);
@@ -158,13 +153,12 @@
         }
         mExecutorService = Executors.newCachedThreadPool();
 
-        ConfigJson json = ConfigJson.from(InstallUtils.getVmConfigPath(this));
+        InstalledImage image = InstalledImage.getDefault(this);
+        ConfigJson json = ConfigJson.from(this, image.getConfigPath());
         VirtualMachineConfig.Builder configBuilder = json.toConfigBuilder(this);
         VirtualMachineCustomImageConfig.Builder customImageConfigBuilder =
                 json.toCustomImageConfigBuilder(this);
-        File backupFile = InstallUtils.getBackupFile(this);
-        if (backupFile.exists()) {
-            customImageConfigBuilder.addDisk(Disk.RWDisk(backupFile.getPath()));
+        if (overrideConfigIfNecessary(customImageConfigBuilder)) {
             configBuilder.setCustomImageConfig(customImageConfigBuilder.build());
         }
         VirtualMachineConfig config = configBuilder.build();
@@ -202,15 +196,39 @@
 
         mResultReceiver.send(RESULT_START, null);
 
-        IntentFilter intentFilter =
-                new IntentFilter(PortForwardingRequestReceiver.ACTION_PORT_FORWARDING);
-        mPortForwardingReceiver = new PortForwardingRequestReceiver();
-        registerReceiver(mPortForwardingReceiver, intentFilter, RECEIVER_NOT_EXPORTED);
+        mPortNotifier = new PortNotifier(this);
         startDebianServer();
 
         return START_NOT_STICKY;
     }
 
+    private boolean overrideConfigIfNecessary(VirtualMachineCustomImageConfig.Builder builder) {
+        boolean changed = false;
+        // TODO: check if ANGLE is enabled for the app.
+        if (Files.exists(ImageArchive.getSdcardPathForTesting().resolve("virglrenderer"))) {
+            builder.setGpuConfig(
+                    new VirtualMachineCustomImageConfig.GpuConfig.Builder()
+                            .setBackend("virglrenderer")
+                            .setRendererUseEgl(true)
+                            .setRendererUseGles(true)
+                            .setRendererUseGlx(false)
+                            .setRendererUseSurfaceless(true)
+                            .setRendererUseVulkan(false)
+                            .setContextTypes(new String[] {"virgl2"})
+                            .build());
+            Toast.makeText(this, R.string.virgl_enabled, Toast.LENGTH_SHORT).show();
+            changed = true;
+        }
+
+        InstalledImage image = InstalledImage.getDefault(this);
+        if (image.hasBackup()) {
+            Path backup = image.getBackupFile();
+            builder.addDisk(Disk.RWDisk(backup.toString()));
+            changed = true;
+        }
+        return changed;
+    }
+
     private void startDebianServer() {
         ServerInterceptor interceptor =
                 new ServerInterceptor() {
@@ -273,6 +291,11 @@
         mResultReceiver.send(VmLauncherService.RESULT_IPADDR, b);
     }
 
+    @Override
+    public void onActivePortsChanged(Set<String> oldPorts, Set<String> newPorts) {
+        mPortNotifier.onActivePortsChanged(oldPorts, newPorts);
+    }
+
     public static void stop(Context context) {
         Intent i = getMyIntent(context);
         context.stopService(i);
@@ -280,7 +303,7 @@
 
     @Override
     public void onDestroy() {
-        unregisterReceiver(mPortForwardingReceiver);
+        mPortNotifier.stop();
         getSystemService(NotificationManager.class).cancelAll();
         stopDebianServer();
         if (mVirtualMachine != null) {
@@ -307,102 +330,4 @@
             mServer.shutdown();
         }
     }
-
-    @Override
-    public void onActivePortsChanged(Set<String> oldPorts, Set<String> newPorts) {
-        Set<String> union = new HashSet<>(oldPorts);
-        union.addAll(newPorts);
-        for (String portStr : union) {
-            try {
-                if (!oldPorts.contains(portStr)) {
-                    showPortForwardingNotification(Integer.parseInt(portStr));
-                } else if (!newPorts.contains(portStr)) {
-                    discardPortForwardingNotification(Integer.parseInt(portStr));
-                }
-            } catch (NumberFormatException e) {
-                Log.e(TAG, "Failed to parse port: " + portStr);
-                throw e;
-            }
-        }
-    }
-
-    private PendingIntent getPortForwardingPendingIntent(int port, boolean enabled) {
-        Intent intent = new Intent(PortForwardingRequestReceiver.ACTION_PORT_FORWARDING);
-        intent.setPackage(getPackageName());
-        intent.setIdentifier(String.format(Locale.ROOT, "%d_%b", port, enabled));
-        intent.putExtra(PortForwardingRequestReceiver.KEY_PORT, port);
-        intent.putExtra(PortForwardingRequestReceiver.KEY_ENABLED, enabled);
-        return PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);
-    }
-
-    private void showPortForwardingNotification(int port) {
-        Intent tapIntent = new Intent(this, SettingsPortForwardingActivity.class);
-        tapIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
-        PendingIntent tapPendingIntent =
-                PendingIntent.getActivity(this, 0, tapIntent, PendingIntent.FLAG_IMMUTABLE);
-
-        String title = getString(R.string.settings_port_forwarding_notification_title);
-        String content = getString(R.string.settings_port_forwarding_notification_content, port);
-        String acceptText = getString(R.string.settings_port_forwarding_notification_accept);
-        String denyText = getString(R.string.settings_port_forwarding_notification_deny);
-        Icon icon = Icon.createWithResource(this, R.drawable.ic_launcher_foreground);
-
-        Notification notification =
-                new Notification.Builder(this, this.getPackageName())
-                        .setSmallIcon(R.drawable.ic_launcher_foreground)
-                        .setContentTitle(title)
-                        .setContentText(content)
-                        .setContentIntent(tapPendingIntent)
-                        .addAction(
-                                new Notification.Action.Builder(
-                                                icon,
-                                                acceptText,
-                                                getPortForwardingPendingIntent(
-                                                        port, true /* enabled */))
-                                        .build())
-                        .addAction(
-                                new Notification.Action.Builder(
-                                                icon,
-                                                denyText,
-                                                getPortForwardingPendingIntent(
-                                                        port, false /* enabled */))
-                                        .build())
-                        .build();
-        getSystemService(NotificationManager.class).notify(TAG, port, notification);
-    }
-
-    private void discardPortForwardingNotification(int port) {
-        getSystemService(NotificationManager.class).cancel(TAG, port);
-    }
-
-    private static final class PortForwardingRequestReceiver extends BroadcastReceiver {
-        private static final String ACTION_PORT_FORWARDING =
-                "android.virtualization.PORT_FORWARDING";
-        private static final String KEY_PORT = "port";
-        private static final String KEY_ENABLED = "enabled";
-
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if (ACTION_PORT_FORWARDING.equals(intent.getAction())) {
-                performActionPortForwarding(context, intent);
-            }
-        }
-
-        private void performActionPortForwarding(Context context, Intent intent) {
-            int port = intent.getIntExtra(KEY_PORT, 0);
-            boolean enabled = intent.getBooleanExtra(KEY_ENABLED, false);
-
-            SharedPreferences sharedPref =
-                    context.getSharedPreferences(
-                            context.getString(R.string.preference_file_key), Context.MODE_PRIVATE);
-            SharedPreferences.Editor editor = sharedPref.edit();
-            editor.putBoolean(
-                    context.getString(R.string.preference_forwarding_port_is_enabled)
-                            + Integer.toString(port),
-                    enabled);
-            editor.apply();
-
-            context.getSystemService(NotificationManager.class).cancel(TAG, port);
-        }
-    }
 }
diff --git a/android/TerminalApp/res/layout/settings_disk_resize.xml b/android/TerminalApp/res/layout/settings_disk_resize.xml
index 7b8b9fc..fb7f85b 100644
--- a/android/TerminalApp/res/layout/settings_disk_resize.xml
+++ b/android/TerminalApp/res/layout/settings_disk_resize.xml
@@ -57,12 +57,11 @@
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintBottom_toTopOf="@+id/settings_disk_resize_disk_size_slider"/>
 
-        <com.google.android.material.slider.Slider
+        <SeekBar
             android:id="@+id/settings_disk_resize_disk_size_slider"
-            android:layout_height="wrap_content"
+            android:layout_height="40dp"
             android:layout_width="match_parent"
             android:layout_marginBottom="36dp"
-            app:tickVisible="false"
             app:layout_constraintTop_toTopOf="parent"
             app:layout_constraintBottom_toBottomOf="parent" />
 
diff --git a/android/TerminalApp/res/layout/settings_list_item.xml b/android/TerminalApp/res/layout/settings_list_item.xml
index 645efbb..ce595ff 100644
--- a/android/TerminalApp/res/layout/settings_list_item.xml
+++ b/android/TerminalApp/res/layout/settings_list_item.xml
@@ -22,7 +22,7 @@
     app:cardCornerRadius="28dp"
     app:checkedIcon="@null"
     android:focusable="true"
-    android:checkable="true"
+    android:longClickable="false"
     android:layout_height="wrap_content"
     android:layout_width="match_parent">
 
@@ -66,4 +66,4 @@
             app:layout_constraintStart_toEndOf="@id/settings_list_item_icon"
             app:layout_constraintEnd_toEndOf="parent" />
     </androidx.constraintlayout.widget.ConstraintLayout>
-</com.google.android.material.card.MaterialCardView>
\ No newline at end of file
+</com.google.android.material.card.MaterialCardView>
diff --git a/android/TerminalApp/res/layout/settings_recovery.xml b/android/TerminalApp/res/layout/settings_recovery.xml
index d33f9a3..3ace35c 100644
--- a/android/TerminalApp/res/layout/settings_recovery.xml
+++ b/android/TerminalApp/res/layout/settings_recovery.xml
@@ -53,7 +53,7 @@
                 app:cardCornerRadius="0dp"
                 app:checkedIcon="@null"
                 android:focusable="true"
-                android:checkable="true"
+                android:longClickable="false"
                 android:layout_height="wrap_content"
                 android:layout_width="match_parent">
                 <androidx.constraintlayout.widget.ConstraintLayout
@@ -91,7 +91,7 @@
                 app:cardCornerRadius="0dp"
                 app:checkedIcon="@null"
                 android:focusable="true"
-                android:checkable="true"
+                android:longClickable="false"
                 android:layout_height="wrap_content"
                 android:layout_width="match_parent">
                 <androidx.constraintlayout.widget.ConstraintLayout
diff --git a/android/TerminalApp/res/values-af/strings.xml b/android/TerminalApp/res/values-af/strings.xml
index 03a65a4..b5b47d9 100644
--- a/android/TerminalApp/res/values-af/strings.xml
+++ b/android/TerminalApp/res/values-af/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminaal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Installeer Linux-terminaal"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"As jy Linux-terminaal wil begin, moet jy omtrent <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> se data oor die netwerk aflaai.\nWil jy voortgaan?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Laai af wanneer wi-fi beskikbaar is"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linus-terminaal word tans geïnstalleer"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux-terminaal sal begin wanneer jy klaar is"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Kon weens die netwerkkwessie nie installeer nie"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Kon nie installeer nie. Probeer weer."</string>
     <string name="action_settings" msgid="5729342767795123227">"Instellings"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Maak terminaal gereed"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> toegewys"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> maks."</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Kanselleer"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Herbegin om aansoek te doen"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Poortaanstuur"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Stel poortaanstuur op"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminaal probeer om ’n nuwe poort oop te maak"</string>
@@ -49,15 +56,26 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Afdelingherwinningopsies"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Verander na aanvanklike weergawe"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Verwyder almal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Stel terminaal terug"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Data sal uitgevee word"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Bevestig"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Kanselleer"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Rugsteun data na <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Terugstel het misluk omdat rugsteun misluk het"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Kon nie terugstel nie"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Kan nie rugsteunlêer verwyder nie"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Verwyder rugsteundata"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Maak skoon <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Instellings"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminaal loop tans"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Klik om die terminaal oop te maak"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Maak toe"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-am/strings.xml b/android/TerminalApp/res/values-am/strings.xml
index 60f2124..aa97b52 100644
--- a/android/TerminalApp/res/values-am/strings.xml
+++ b/android/TerminalApp/res/values-am/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"ተርሚናል"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux ተርሚናልን ይጫኑ"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux ተርሚናልን ለማስጀመር በአውታረ መረብ <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> የሚገመት ውሂብ ማውረድ ያስፈልግዎታል። \nይቀጥላሉ?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Wi-Fi ሲገኝ አውርድ"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ተርሚናልን በመጫን ላይ"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux ተርሚናል ከጨረሰ በኋላ ይጀምራል"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"በአውታረ መረብ ችግር ምክንያት መጫን አልተሳካም"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"መጫን አልተሳካም። እንደገና ይሞክሩ።"</string>
     <string name="action_settings" msgid="5729342767795123227">"ቅንብሮች"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"ተርሚናልን በማዘጋጀት ላይ"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> ተመድቧል"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> ከፍተኛ"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"ይቅር"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"ለመተግበር እንደገና ይጀምሩ"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"ወደብ ማስተላለፍ"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"ወደብ ማስተላለፍን ያዋቅሩ"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"ተርሚናል አዲስ ወደብ ለመክፈት እየሞከረ ነው"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"የክፍልፋይ መልሶ ማግኛ አማራጮች"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"ወደ የመጀመሪያ ሥሪት ለውጥ"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"ሁሉንም አስወግድ"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"ተርሚናልን ዳግም አስጀምር"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ውሂብ ይሰረዛል"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"አረጋግጥ"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"ይቅር"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"ውሂብን ወደ <xliff:g id="PATH">/mnt/backup</xliff:g> ምትኬ አስቀምጥ"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ምትኬ ስላልተሳካ መልሶ ማግኘት አልተሳካም"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"መልሶ ማግኘት አልተሳካም"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"የመጠባበቂያ ፋይልን ማስወገድ አይቻልም"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ምትኬ ውሂብን አስወግድ"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> አጽዳ"</string>
+    <string name="error_title" msgid="7196464038692913778">"ሊመለስ የማይችል ስሕተት"</string>
+    <string name="error_desc" msgid="1939028888570920661">"ከስሕተት መልሶ ማግኘት አልተሳካም።\nመተግበሪያውን እንደገና ለማስጀመር መሞከር ወይም አንዱን የመልሶ ማግኛ አማራጭ መሞከር ይችላሉ።"</string>
+    <string name="error_code" msgid="3585291676855383649">"የስሕተት ኮድ፦ <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"ቅንብሮች"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"ተርሚናል በመሄድ ላይ ነው"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"ተርሚናሉን ለመክፈት ጠቅ ያድርጉ"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ዝጋ"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ar/strings.xml b/android/TerminalApp/res/values-ar/strings.xml
index 1c47648..5f9ad2e 100644
--- a/android/TerminalApp/res/values-ar/strings.xml
+++ b/android/TerminalApp/res/values-ar/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"تثبيت الوحدة الطرفية بنظام التشغيل Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"لتشغيل الوحدة الطرفية بنظام التشغيل Linux، عليك تنزيل <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> من البيانات تقريبًا عبر الشبكة.\nهل تريد المتابعة؟"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"التنزيل عند توفُّر شبكة Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"جارٍ تثبيت الوحدة الطرفية بنظام التشغيل Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"سيتم تشغيل الوحدة الطرفية بنظام التشغيل Linux بعد الانتهاء"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"تعذَّر التثبيت بسبب مشكلة في الشبكة"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"تعذَّر التثبيت. يُرجى إعادة المحاولة."</string>
     <string name="action_settings" msgid="5729342767795123227">"الإعدادات"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"جارٍ تحضير Terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"تم تخصيص <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"‫<xliff:g id="MAX_SIZE">%1$s</xliff:g> كحد أقصى"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"إلغاء"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"إعادة التشغيل لتطبيق التغييرات"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"إعادة توجيه المنفذ"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"ضبط إعادة توجيه المنفذ"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"تحاول الوحدة الطرفية فتح منفذ جديد"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"سيتم حذف البيانات"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"تأكيد"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"إلغاء"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"الاحتفاظ بنسخة احتياطية من البيانات في <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"تعذّر الاسترداد بسبب عدم نجاح عملية الاحتفاظ بنسخة احتياطية"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"تعذّر الاسترداد"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"تتعذّر إزالة ملف النسخة الاحتياطية"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"إزالة بيانات النسخة الاحتياطية"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"حذف بيانات النسخة الاحتياطية في <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"خطأ غير قابل للإصلاح"</string>
+    <string name="error_desc" msgid="1939028888570920661">"تعذَّر استرداد البيانات من خطأ.\nيمكنك محاولة إعادة تشغيل التطبيق أو تجربة أحد خيارات استرداد الحساب."</string>
+    <string name="error_code" msgid="3585291676855383649">"رمز الخطأ: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"الإعدادات"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"الوحدة الطرفية قيد التشغيل"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"انقر لفتح الوحدة الطرفية"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"إغلاق"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-as/strings.xml b/android/TerminalApp/res/values-as/strings.xml
index 4ff9c33..ce4f6ab 100644
--- a/android/TerminalApp/res/values-as/strings.xml
+++ b/android/TerminalApp/res/values-as/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"টাৰ্মিনেল"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux টাৰ্মিনেল ইনষ্টল কৰক"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux টাৰ্মিনেল লঞ্চ কৰিবলৈ, আপুনি নেটৱৰ্কত প্ৰায় <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> ডেটা ডাউনল’ড কৰিব লাগিব।\nআপুনি আগবাঢ়িবনে?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"ৱাই-ফাই সেৱা উপলব্ধ হ’লে ডাউনল’ড কৰক"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux টাৰ্মিনেল ইনষ্টল কৰি থকা হৈছে"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"সমাপ্ত হোৱাৰ পাছত Linux টাৰ্মিনেল আৰম্ভ কৰা হ’ব"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"নেটৱৰ্ক সম্পৰ্কীয় সমস্যাৰ বাবে ইনষ্টল কৰিব পৰা নগ’ল"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"ইনষ্টল কৰিব পৰা নগ’ল। পুনৰ চেষ্টা কৰক।"</string>
     <string name="action_settings" msgid="5729342767795123227">"ছেটিং"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"টাৰ্মিনেল সাজু কৰি থকা হৈছে"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> আৱণ্টন কৰা হৈছে"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"সৰ্বাধিক <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"বাতিল কৰক"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"প্ৰয়োগ কৰিবলৈ ৰিষ্টাৰ্ট কৰক"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"প’ৰ্ট ফৰৱাৰ্ডিং"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"প’ৰ্ট ফৰৱাৰ্ডিং কনফিগাৰ কৰক"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"টাৰ্মিনেলটোৱে এটা নতুন প’ৰ্ট খুলিবলৈ চেষ্টা কৰি আছে"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ডেটাখিনি মচা হ’ব"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"নিশ্চিত কৰক"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"বাতিল কৰক"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g>লৈ ডেটাৰ বেকআপ লওক"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"বেকআপ ল\'ব পৰা নগ\'ল বাবে পুনৰুদ্ধাৰ কৰিব পৰা নগ’ল"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"পুনৰুদ্ধাৰ কৰিব পৰা নগ’ল"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"বেকআপ লোৱা ফাইল আঁতৰাব নোৱাৰি"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"বেকআপ লোৱা ডেটা আঁতৰাওক"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> মচক"</string>
+    <string name="error_title" msgid="7196464038692913778">"পুনৰুদ্ধাৰ কৰিব নোৱৰা আসোঁৱাহ"</string>
+    <string name="error_desc" msgid="1939028888570920661">"এটা আসোঁৱাহৰ পৰা পুনৰুদ্ধাৰ কৰিব পৰা নগ’ল।\nআপুনি এপ্‌টো ৰিষ্টাৰ্ট কৰি চাব পাৰে বা পুনৰুদ্ধাৰৰ বিকল্পসমূহৰ মাজৰ পৰা এটা ব্যৱহাৰ কৰি চাব পাৰে।"</string>
+    <string name="error_code" msgid="3585291676855383649">"আসোঁৱাহ ক’ড: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"ছেটিং"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"টাৰ্মিনেলটো চলি আছে"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"টাৰ্মিনেলটো খুলিবলৈ ক্লিক কৰক"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"বন্ধ কৰক"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-az/strings.xml b/android/TerminalApp/res/values-az/strings.xml
index de953f5..f816d81 100644
--- a/android/TerminalApp/res/values-az/strings.xml
+++ b/android/TerminalApp/res/values-az/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux terminalını quraşdırın"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux terminalını işə salmaq üçün şəbəkə vasitəsilə təxminən <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> həcmində data endirməlisiniz.\nDavam etmək istəyirsiniz?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Wi-Fi əlçatan olduqda endirin"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux terminalı quraşdırılır"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Tamamlandıqan sonra Linux terminalı işə salınacaq"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Şəbəkə problemi səbəbilə quraşdırmaq alınmadı"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Quraşdırmaq alınmadı. Yenidən cəhd edin."</string>
     <string name="action_settings" msgid="5729342767795123227">"Ayarlar"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Terminal hazırlanır"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> təyin edildi"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"maks <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Ləğv edin"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Tətbiq etmək üçün yenidən başladın"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Port yönləndirməsi"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Port yönləndirməsini konfiqurasiya edin"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal yeni port açmağa çalışır"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Bölmə üzrə bərpa seçimləri"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"İlkin versiyaya dəyişin"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Hamısını silin"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Terminalı sıfırlayın"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Data silinəcək"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Təsdiq edin"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Ləğv edin"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Datanı buraya yedəkləyin: <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Yedəkləmə alınmadığı üçün bərpa etmək mümkün olmadı"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Bərpa etmək alınmadı"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Yedək faylı silmək mümkün deyil"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Yedək datanı silin"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Təmizləyin: <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Düzəldilməyən xəta"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Xətanı bərpa etmək alınmadı.\nTətbiqi yenidən başladın və ya bərpa seçimlərindən birini sınayın."</string>
+    <string name="error_code" msgid="3585291676855383649">"Xəta kodu: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Ayarlar"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal işləyir"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Terminalı açmaq üçün klikləyin"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Bağlayın"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-b+sr+Latn/strings.xml b/android/TerminalApp/res/values-b+sr+Latn/strings.xml
index 0b53ab3..e454a8b 100644
--- a/android/TerminalApp/res/values-b+sr+Latn/strings.xml
+++ b/android/TerminalApp/res/values-b+sr+Latn/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instalirajte Linux terminal"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Da biste pokrenuli Linux terminal, treba da preuzmete oko <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> podataka preko mreže.\nŽelite da nastavite?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Preuzmi kada WiFi bude dostupan"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instalira se Linux terminal"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux terminal će se pokrenuti posle završetka"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Instaliranje nije uspelo zbog problema sa mrežom"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Instaliranje nije uspelo. Probajte ponovo."</string>
     <string name="action_settings" msgid="5729342767795123227">"Podešavanja"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Terminal se priprema"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Dodeljeno <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maks. <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Otkaži"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Restartuj i primeni"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Prosleđivanje porta"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfigurišite prosleđivanje porta"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal pokušava da otvori novi port"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opcije oporavka particija"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Promeni na početnu verziju"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Uklonite sve"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Resetujte terminal"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Podaci će biti izbrisani"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Potvrdi"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Otkaži"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Napravi rezervnu kopiju podataka na <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Oporavak nije uspeo jer pravljenje rezervne kopije nije uspelo"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Oporavak nije uspeo"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Uklanjanje fajla rezervne kopije nije uspelo"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Uklonite rezervnu kopiju"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Obrišite <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Nepopravljiva greška"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Oporavak od greške nije uspeo.\nProbajte da restartujete aplikaciju ili probajte jednu od opcija za vraćanje."</string>
+    <string name="error_code" msgid="3585291676855383649">"Kôd greške: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Podešavanja"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal je aktivan"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Kliknite da biste otvorili terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Zatvori"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-be/strings.xml b/android/TerminalApp/res/values-be/strings.xml
index 3f8d8c3..6b982ca 100644
--- a/android/TerminalApp/res/values-be/strings.xml
+++ b/android/TerminalApp/res/values-be/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Тэрмінал"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Усталяванне тэрмінала Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Каб запусціць тэрмінал Linux, трэба спампаваць каля <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> даных па сетцы.\nПрацягнуць?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Спампаваць, калі будзе даступная сетка Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Ідзе ўсталяванне тэрмінала Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Тэрмінал Linux будзе запушчаны пасля завяршэння"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Не ўдалося ўсталяваць з-за праблемы з сеткай"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Не ўдалося ўсталяваць. Паўтарыце спробу."</string>
     <string name="action_settings" msgid="5729342767795123227">"Налады"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Ідзе падрыхтоўка тэрмінала"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Прызначана <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Максімальны памер: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Скасаваць"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Ужыць (перазапуск)"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Пераадрасацыя партоў"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Наладзіць пераадрасацыю партоў"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Тэрмінал спрабуе адкрыць новы порт"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Даныя будуць выдалены"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Пацвердзіць"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Скасаваць"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Стварыць рэзервовую копію даных у <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Аднавіць не ўдалося: рэзервовая копія не створана"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Не ўдалося аднавіць"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Не ўдаецца выдаліць файл рэзервовай копіі"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Выдаліць даныя рэзервовай копіі"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Ачысціць <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Непапраўная памылка"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Не ўдалося аднавіць праграму пасля памылкі.\nПеразапусціце яе або скарыстайце адзін з варыянтаў аднаўлення доступу."</string>
+    <string name="error_code" msgid="3585291676855383649">"Код памылкі: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Налады"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Тэрмінал запушчаны"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Націсніце, каб адкрыць тэрмінал"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Закрыць"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-bg/strings.xml b/android/TerminalApp/res/values-bg/strings.xml
index b769b70..e987a06 100644
--- a/android/TerminalApp/res/values-bg/strings.xml
+++ b/android/TerminalApp/res/values-bg/strings.xml
@@ -17,6 +17,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Терминал"</string>
+    <string name="terminal_display" msgid="4810127497644015237">"Екран на Терминал"</string>
+    <string name="terminal_input" msgid="4602512831433433551">"Курсор"</string>
+    <string name="empty_line" msgid="5012067143408427178">"Празен ред"</string>
     <string name="installer_title_text" msgid="500663060973466805">"Инсталиране на терминала на Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"За да стартирате терминала на Linux, трябва да изтеглите около <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> данни през мрежата.\nИскате ли да продължите?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Изтегляне, когато е налице Wi-Fi"</string>
@@ -26,26 +29,26 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Терминалът на Linux се инсталира"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Терминалът на Linux ще бъде стартиран след завършване"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Инсталирането не бе успешно поради проблем с мрежата"</string>
+    <string name="installer_error_no_wifi" msgid="8631584648989718121">"Инсталирането не бе успешно, защото не е налице Wi-Fi"</string>
     <string name="installer_error_unknown" msgid="1991780204241177455">"Инсталирането не бе успешно. Опитайте отново."</string>
     <string name="action_settings" msgid="5729342767795123227">"Настройки"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Терминалът се подготвя"</string>
     <string name="vm_stop_message" msgid="3978349856095529255">"Терминалът спира"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Терминалът претърпя срив"</string>
-    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Преоразмеряване на диска"</string>
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Преораз­меряване на диска"</string>
     <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Преоразмеряване/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Размерът на диска е зададен"</string>
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Зададено: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Макс.: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Отказ"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Рестарт за прилагане"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Пренасочване на портове"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Конфигуриране на пренасочването на портове"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Терминалът се опитва да отвори нов порт"</string>
     <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Заявено отваряне на порта: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Приемам"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Отказ"</string>
-    <string name="settings_recovery_title" msgid="6586840079226383285">"Възстановяване"</string>
+    <string name="settings_recovery_title" msgid="6586840079226383285">"Възстановя­ване"</string>
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Опции за възстановяване на дяловете"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Промяна към първоначалната версия"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Премахване на всички"</string>
@@ -53,8 +56,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Данните ще бъдат изтрити"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Потвърждаване"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Отказ"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Създаване на резервно копие на данните в(ъв) <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Възстановяването не бе успешно, защото създаването на резервно копие не бе успешно"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Възстановяването не бе успешно"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Файлът с резервното копие не може да се премахне"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Премахване на резервното копие на данните"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Изчистване на <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Непоправима грешка"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Неуспешно възстановяване от грешка.\nМожете да рестартирате приложението или да изпробвате една от опциите за възстановяване."</string>
+    <string name="error_code" msgid="3585291676855383649">"Код на грешката: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Настройки"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Терминалът работи"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Кликнете, за да отворите терминала"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Затваряне"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-bn/strings.xml b/android/TerminalApp/res/values-bn/strings.xml
index c2b0591..a0f37dd 100644
--- a/android/TerminalApp/res/values-bn/strings.xml
+++ b/android/TerminalApp/res/values-bn/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"টার্মিনাল"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux টার্মিনাল ইনস্টল করুন"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux টার্মিনাল চালু করার জন্য আপনাকে নেটওয়ার্কের মাধ্যমে মোটামুটিভাবে <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> ডেটা ডাউনলোড করতে হবে।\nআপনি কি চালিয়ে যাবেন?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"ওয়াই-ফাই পাওয়া গেলে ডাউনলোড করুন"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux টার্মিনাল ইনস্টল করা হচ্ছে"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"শেষ হয়ে গেলে Linux টার্মিনাল ইনস্টল করা শুরু হবে।"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"নেটওয়ার্কে সমস্যা থাকায় ইনস্টল করা যায়নি"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"ইনস্টল করা যায়নি। আবার চেষ্টা করুন।"</string>
     <string name="action_settings" msgid="5729342767795123227">"সেটিংস"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"টার্মিনাল তৈরি করা হচ্ছে"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> অ্যাসাইন করা হয়েছে"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"সর্বাধিক <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"বাতিল করুন"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"প্রয়োগ করতে রিস্টার্ট করুন"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"পোর্ট ফরওয়ার্ড করা"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"পোর্ট ফরওয়ার্ড করা কনফিগার করুন"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"টার্মিনাল নতুন পোর্ট খোলার চেষ্টা করছে"</string>
@@ -49,15 +56,26 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"পার্টিশন আগের অবস্থায় ফেরানোর বিকল্প"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"প্রাথমিক ভার্সনে পরিবর্তন করুন"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"সবকটি সরান"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"টার্মিনাল রিসেট করুন"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ডেটা মুছে ফেলা হবে"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"কনফার্ম করুন"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"বাতিল করুন"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g>-এ ডেটা ব্যাক-আপ নিন"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ব্যাকআপ কাজ না করায় আগের অবস্থায় ফেরানো যায়নি"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"আগের অবস্থায় ফেরানো যায়নি"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ব্যাকআপ ফাইল সরানো যায়নি"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ব্যাকআপ ডেটা সরান"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"ক্লিন আপ <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"সেটিংস"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"টার্মিনাল চলছে"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"টার্মিনাল খুলতে ক্লিক করুন"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"বন্ধ করুন"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-bs/strings.xml b/android/TerminalApp/res/values-bs/strings.xml
index be174f4..db6833f 100644
--- a/android/TerminalApp/res/values-bs/strings.xml
+++ b/android/TerminalApp/res/values-bs/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instalirajte Linux terminal"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Da pokrenete Linux terminal, trebate preuzeti otprilike <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> podataka putem mreže.\nŽelite li nastaviti?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Preuzmi kada je WiFi dostupan"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instaliranje Linux terminala"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux terminal će se pokrenuti nakon završetka"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Instaliranje nije uspjelo zbog problema s mrežom"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Instaliranje nije uspjelo. Pokušajte ponovo."</string>
     <string name="action_settings" msgid="5729342767795123227">"Postavke"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Priprema terminala"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Dodijeljeno: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maksimalno <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Otkaži"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Ponovo pokrenite da primijenite"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Prosljeđivanje priključka"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfigurirajte prosljeđivanje priključka"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal pokušava otvoriti novi priključak"</string>
@@ -53,8 +60,22 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Podaci će se izbrisati"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Potvrdi"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Otkaži"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Napravi sigurnosnu kopiju podataka na <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Oporavak nije uspio jer sigurnosna kopija nije uspjela"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Oporavak nije uspio"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Nije moguće ukloniti fajl sigurnosne kopije"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Ukloni podatke sigurnosne kopije"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Očisti <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Postavke"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal je pokrenut"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Kliknite da otvorite terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Zatvori"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ca/strings.xml b/android/TerminalApp/res/values-ca/strings.xml
index 05402d1..8fcb422 100644
--- a/android/TerminalApp/res/values-ca/strings.xml
+++ b/android/TerminalApp/res/values-ca/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instal·la el terminal de Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Per iniciar el terminal de Linux, has de baixar uns <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> de dades a través de la xarxa.\nVols continuar?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Baixa quan hi hagi una Wi‐Fi disponible"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"S\'està instal·lant el terminal de Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"El terminal de Linux s\'iniciarà quan hagi acabat"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"No s\'ha pogut instal·lar a causa d\'un problema de la xarxa"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"No s\'ha pogut instal·lar. Torna-ho a provar."</string>
     <string name="action_settings" msgid="5729342767795123227">"Configuració"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"S\'està preparant el terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> assignats"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> màx."</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Cancel·la"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Reinicia per aplicar"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Redirecció de ports"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configura la redirecció de ports"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"El terminal està provant d\'obrir un port nou"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opcions de recuperació de la partició"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Canvia a la versió inicial"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Suprimeix-ho tot"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Restableix el terminal"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Les dades se suprimiran"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirma"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Cancel·la"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Crea una còpia de seguretat de les dades a <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"No s\'ha pogut recuperar perquè la còpia de seguretat ha fallat"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"La recuperació ha fallat"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"No es pot suprimir el fitxer de còpia de seguretat"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Suprimeix les dades de la còpia de seguretat"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Elimina <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Error irrecuperable"</string>
+    <string name="error_desc" msgid="1939028888570920661">"No s\'ha pogut recuperar després de l\'error.\nPots provar de reiniciar l\'aplicació o provar una de les opcions de recuperació."</string>
+    <string name="error_code" msgid="3585291676855383649">"Codi d\'error: <xliff:g id="ERROR_CODE">%s</xliff:g>."</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Configuració"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"El terminal s\'està executant"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Fes clic per obrir el terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Tanca"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-cs/strings.xml b/android/TerminalApp/res/values-cs/strings.xml
index 411cf45..376a89d 100644
--- a/android/TerminalApp/res/values-cs/strings.xml
+++ b/android/TerminalApp/res/values-cs/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminál"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instalovat terminál Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Ke spuštění terminálu Linux si musíte přes datovou síť stáhnout přibližně <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> dat.\nChcete pokračovat?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Stáhnout, když bude dostupná Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instalace terminálu Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Terminál Linux bude spuštěn po dokončení"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Instalace se nezdařila kvůli problému se sítí"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Instalace se nezdařila. Zkuste to znovu."</string>
     <string name="action_settings" msgid="5729342767795123227">"Nastavení"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Probíhá příprava terminálu"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Přiděleno <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Max. <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Zrušit"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Je třeba restartovat"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Přesměrování portů"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Nakonfigurovat přesměrování portů"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminál se pokouší otevřít nový port"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Data budou smazána"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Potvrdit"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Zrušit"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Zálohovat data do <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Obnovení se nezdařilo, protože záloha selhala"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Obnovení se nezdařilo"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Soubor zálohy se nepodařilo odstranit"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Odstranit data zálohy"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Vyčistit <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Neopravitelná chyba"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Z chybového stavu se nepodařilo dostat.\nRestartujte aplikaci nebo vyzkoušejte některou z možností obnovení."</string>
+    <string name="error_code" msgid="3585291676855383649">"Kód chyby: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Nastavení"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminál běží"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Kliknutím otevřete terminál"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Zavřít"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-da/strings.xml b/android/TerminalApp/res/values-da/strings.xml
index d29f9d4..dddfaaf 100644
--- a/android/TerminalApp/res/values-da/strings.xml
+++ b/android/TerminalApp/res/values-da/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Installer Linux-terminalen"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Du skal downloade ca. <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> data via netværket for at åbne Linux-terminalen.\nVil du fortsætte?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Download, når du har Wi-Fi-forbindelse"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-terminalen installeres"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux-terminalen startes, når installationen er gennemført"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Installationen mislykkedes på grund af et netværksproblem"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Installationen mislykkedes. Prøv igen."</string>
     <string name="action_settings" msgid="5729342767795123227">"Indstillinger"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Forbereder terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Tildelt: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maks.: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Annuller"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Genstart for at bruge"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Omdirigering af port"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfigurer omdirigering af port"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminalen forsøger at åbne en ny port"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Muligheder for gendannelse af partition"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Skift til oprindelig version"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Fjern alle"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Nulstil terminalen"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Dataene slettes"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Bekræft"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Annuller"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Sikkerhedskopiér data til <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Gendannelsen mislykkedes, fordi sikkerhedskopieringen ikke kunne udføres"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Gendannelsen mislykkedes"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Sikkerhedskopifilen kan ikke fjernes"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Fjern data for sikkerhedskopi"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Ryd op på <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Uoprettelig fejl"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Gendannelse efter fejl mislykkedes.\nDu kan prøve at genstarte appen eller prøve en af gendannelsesmulighederne."</string>
+    <string name="error_code" msgid="3585291676855383649">"Fejlkode: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Indstillinger"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminalen kører"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Klik for at åbne terminalen"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Luk"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-de/strings.xml b/android/TerminalApp/res/values-de/strings.xml
index cb1a209..2d6eadc 100644
--- a/android/TerminalApp/res/values-de/strings.xml
+++ b/android/TerminalApp/res/values-de/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux-Terminal installieren"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Damit du das Linux-Terminal starten kannst, musst du ungefähr <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> an Daten über das Netzwerk herunterladen.\nMöchtest du fortfahren?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Herunterladen, wenn WLAN verfügbar ist"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-Terminal wird installiert"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux-Terminal wird nach der Installation gestartet"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Die Installation ist aufgrund eines Netzwerkproblems fehlgeschlagen"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Die Installation ist fehlgeschlagen. Versuche es noch einmal."</string>
     <string name="action_settings" msgid="5729342767795123227">"Einstellungen"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Terminal wird vorbereitet"</string>
@@ -37,15 +45,14 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> zugewiesen"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maximal <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Abbrechen"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Anwenden (Neustart)"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Portweiterleitung"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Portweiterleitung konfigurieren"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal versucht, einen neuen Port zu öffnen"</string>
     <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port, der geöffnet werden soll: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Akzeptieren"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Ablehnen"</string>
-    <string name="settings_recovery_title" msgid="6586840079226383285">"Wiederherstellung"</string>
+    <string name="settings_recovery_title" msgid="6586840079226383285">"Wieder­herstellung"</string>
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Optionen für die Partitionswiederherstellung"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Zur ersten Version wechseln"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Alle entfernen"</string>
@@ -53,8 +60,22 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Daten werden gelöscht"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Bestätigen"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Abbrechen"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Daten unter <xliff:g id="PATH">/mnt/backup</xliff:g> sichern"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Wiederherstellung aufgrund eines Sicherungsproblems fehlgeschlagen"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Wiederherstellung fehlgeschlagen"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Sicherungsdatei kann nicht entfernt werden"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Sicherungsdaten entfernen"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Daten unter <xliff:g id="PATH">/mnt/backup</xliff:g> entfernen"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Einstellungen"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal wird ausgeführt"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Zum Öffnen des Terminals klicken"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Schließen"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-el/strings.xml b/android/TerminalApp/res/values-el/strings.xml
index 6df21e4..f25d4cb 100644
--- a/android/TerminalApp/res/values-el/strings.xml
+++ b/android/TerminalApp/res/values-el/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Τερματικό"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Εγκατάσταση τερματικού Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Για την εκκίνηση του τερματικού Linux, πρέπει να κατεβάσετε περίπου <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> δεδομένων μέσω δικτύου.\nΘέλετε να συνεχίσετε;"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Λήψη όταν υπάρχει διαθέσιμο Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Γίνεται εγκατάσταση τερματικού Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Το τερματικό Linux θα ξεκινήσει μετά την ολοκλήρωση"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Η εγκατάσταση απέτυχε λόγω προβλήματος δικτύου"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Η εγκατάσταση απέτυχε. Δοκιμάστε ξανά."</string>
     <string name="action_settings" msgid="5729342767795123227">"Ρυθμίσεις"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Προετοιμασία τερματικού σε εξέλιξη"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Ανατέθηκαν <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Έως <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Ακύρωση"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Επανεκ. για εφαρμογή"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Προώθηση θύρας"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Διαμόρφωση προώθησης θύρας"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Το τερματικό προσπαθεί να ανοίξει μια νέα θύρα"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Τα δεδομένα θα διαγραφούν"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Επιβεβαίωση"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Ακύρωση"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Δημιουργία αντιγράφου ασφαλείας δεδομένων στο <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Αποτυχία ανάκτησης λόγω αποτυχίας δημιουργίας αντιγράφου ασφαλείας"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Αποτυχία ανάκτησης"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Δεν είναι δυνατή η κατάργηση του αρχείου αντιγράφου ασφαλείας"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Κατάργηση δεδομένων αντιγράφου ασφαλείας"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Διαγραφή <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Ανεπανόρθωτο σφάλμα"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Αποτυχία ανάκτησης από σφάλμα.\nΜπορείτε να δοκιμάσετε να επανεκκινήσετε την εφαρμογή ή να δοκιμάσετε μία από τις επιλογές ανάκτησης."</string>
+    <string name="error_code" msgid="3585291676855383649">"Κωδικός σφάλματος: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Ρυθμίσεις"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Το τερματικό εκτελείται"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Κάντε κλικ για άνοιγμα του τερματικού"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Κλείσιμο"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-en-rAU/strings.xml b/android/TerminalApp/res/values-en-rAU/strings.xml
index 9723565..90f282e 100644
--- a/android/TerminalApp/res/values-en-rAU/strings.xml
+++ b/android/TerminalApp/res/values-en-rAU/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Install Linux terminal"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"To launch a Linux terminal, you need to download roughly <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> of data over the network.\nWould you like to proceed?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Download when Wi-Fi is available"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installing Linux terminal"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux terminal will be started after finish"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Failed to install due to the network issue"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Failed to install. Try again."</string>
     <string name="action_settings" msgid="5729342767795123227">"Settings"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Preparing terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> assigned"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> max"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Cancel"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Restart to apply"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Port forwarding"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configure port forwarding"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal is trying to open a new port"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Partition recovery options"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Change to initial version"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Remove all"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Reset terminal"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Data will be deleted"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirm"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Cancel"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Back up data to <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Recovery failed because backup failed"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Recovery failed"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Cannot remove backup file"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Remove backup data"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Clean up <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Unrecoverable error"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Failed to recover from an error.\nYou can try restarting the app or try one of the recovery options."</string>
+    <string name="error_code" msgid="3585291676855383649">"Error code: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Settings"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal is running"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Click to open the terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Close"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-en-rCA/strings.xml b/android/TerminalApp/res/values-en-rCA/strings.xml
index 39eb287..49c8af1 100644
--- a/android/TerminalApp/res/values-en-rCA/strings.xml
+++ b/android/TerminalApp/res/values-en-rCA/strings.xml
@@ -17,6 +17,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <string name="terminal_display" msgid="4810127497644015237">"Terminal display"</string>
+    <string name="terminal_input" msgid="4602512831433433551">"Cursor"</string>
+    <string name="empty_line" msgid="5012067143408427178">"Empty line"</string>
     <string name="installer_title_text" msgid="500663060973466805">"Install Linux terminal"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"To launch Linux terminal, you need to download roughly <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> of data over network.\nWould you proceed?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Download when Wi-Fi is available"</string>
@@ -26,6 +29,7 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installing Linux terminal"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux terminal will be started after finish"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Failed to install due to the network issue"</string>
+    <string name="installer_error_no_wifi" msgid="8631584648989718121">"Failed to install because Wi-Fi isn\'t available"</string>
     <string name="installer_error_unknown" msgid="1991780204241177455">"Failed to install. Try again."</string>
     <string name="action_settings" msgid="5729342767795123227">"Settings"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Preparing terminal"</string>
@@ -52,8 +56,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Data will be deleted"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirm"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Cancel"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Back up data to <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Recovery failed because backup failed"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Recovery failed"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Cannot remove backup file"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Remove backup data"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Clean up <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Unrecoverable Error"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Failed to recover from an error.\nYou can try restart the app, or try one of recovery option."</string>
+    <string name="error_code" msgid="3585291676855383649">"Error code: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Settings"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal is running"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Click to open the terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Close"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-en-rGB/strings.xml b/android/TerminalApp/res/values-en-rGB/strings.xml
index 9723565..90f282e 100644
--- a/android/TerminalApp/res/values-en-rGB/strings.xml
+++ b/android/TerminalApp/res/values-en-rGB/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Install Linux terminal"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"To launch a Linux terminal, you need to download roughly <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> of data over the network.\nWould you like to proceed?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Download when Wi-Fi is available"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installing Linux terminal"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux terminal will be started after finish"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Failed to install due to the network issue"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Failed to install. Try again."</string>
     <string name="action_settings" msgid="5729342767795123227">"Settings"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Preparing terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> assigned"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> max"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Cancel"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Restart to apply"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Port forwarding"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configure port forwarding"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal is trying to open a new port"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Partition recovery options"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Change to initial version"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Remove all"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Reset terminal"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Data will be deleted"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirm"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Cancel"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Back up data to <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Recovery failed because backup failed"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Recovery failed"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Cannot remove backup file"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Remove backup data"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Clean up <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Unrecoverable error"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Failed to recover from an error.\nYou can try restarting the app or try one of the recovery options."</string>
+    <string name="error_code" msgid="3585291676855383649">"Error code: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Settings"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal is running"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Click to open the terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Close"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-en-rIN/strings.xml b/android/TerminalApp/res/values-en-rIN/strings.xml
index 9723565..90f282e 100644
--- a/android/TerminalApp/res/values-en-rIN/strings.xml
+++ b/android/TerminalApp/res/values-en-rIN/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Install Linux terminal"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"To launch a Linux terminal, you need to download roughly <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> of data over the network.\nWould you like to proceed?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Download when Wi-Fi is available"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installing Linux terminal"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux terminal will be started after finish"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Failed to install due to the network issue"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Failed to install. Try again."</string>
     <string name="action_settings" msgid="5729342767795123227">"Settings"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Preparing terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> assigned"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> max"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Cancel"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Restart to apply"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Port forwarding"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configure port forwarding"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal is trying to open a new port"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Partition recovery options"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Change to initial version"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Remove all"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Reset terminal"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Data will be deleted"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirm"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Cancel"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Back up data to <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Recovery failed because backup failed"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Recovery failed"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Cannot remove backup file"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Remove backup data"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Clean up <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Unrecoverable error"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Failed to recover from an error.\nYou can try restarting the app or try one of the recovery options."</string>
+    <string name="error_code" msgid="3585291676855383649">"Error code: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Settings"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal is running"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Click to open the terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Close"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-es-rUS/strings.xml b/android/TerminalApp/res/values-es-rUS/strings.xml
index aabc20d..1cbed7d 100644
--- a/android/TerminalApp/res/values-es-rUS/strings.xml
+++ b/android/TerminalApp/res/values-es-rUS/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instala la terminal de Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Para iniciar la terminal de Linux, debes descargar aproximadamente <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> de datos a través de la red.\n¿Quieres continuar?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Descargar cuando haya una red Wi-Fi disponible"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instalando la terminal de Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Se iniciará la terminal de Linux después de finalizar"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"No se pudo instalar debido a un problema de red"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"No se pudo instalar. Vuelve a intentarlo."</string>
     <string name="action_settings" msgid="5729342767795123227">"Configuración"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Preparando la terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> asignados"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> máx."</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Cancelar"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Reiniciar y aplicar"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Redirección de puertos"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configurar la redirección de puertos"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"La terminal está intentando abrir un puerto nuevo"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Se borrarán los datos"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirmar"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Cancelar"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Crear una copia de seguridad de los datos en <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Falló la recuperación porque no se pudo crear la copia de seguridad"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Falló la recuperación"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"No se puede quitar el archivo de copia de seguridad"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Quitar datos de copia de seguridad"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Liberar espacio en <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Error irrecuperable"</string>
+    <string name="error_desc" msgid="1939028888570920661">"No se pudo recuperar después del error.\nPuedes reiniciar la app o probar una de las opciones de recuperación."</string>
+    <string name="error_code" msgid="3585291676855383649">"Código de error: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Configuración"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Se está ejecutando la terminal"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Haz clic para abrir la terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Cerrar"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-es/strings.xml b/android/TerminalApp/res/values-es/strings.xml
index b239646..a0bc767 100644
--- a/android/TerminalApp/res/values-es/strings.xml
+++ b/android/TerminalApp/res/values-es/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instala el terminal de Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Para iniciar el terminal de Linux, debes descargar unos <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> de datos a través de la red.\n¿Quieres continuar?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Descargar cuando haya una red Wi-Fi disponible"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instalando terminal de Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"El terminal de Linux se iniciará cuando finalice"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"No se ha podido instalar debido a un problema de red"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"No se ha podido instalar. Inténtalo de nuevo."</string>
     <string name="action_settings" msgid="5729342767795123227">"Ajustes"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Preparando terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> asignados"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> como máximo"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Cancelar"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Reiniciar y aplicar"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Redirección de puertos"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configurar la redirección de puertos"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"El terminal está intentando abrir un nuevo puerto"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opciones de recuperación de particiones"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Cambiar a versión inicial"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Quitar todo"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Restablecer terminal"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Los datos se eliminarán"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirmar"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Cancelar"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Crear copia de seguridad de los datos en <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"No se ha podido recuperar la copia de seguridad"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"No se ha podido recuperar"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"No se puede quitar el archivo de copia de seguridad"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Eliminar datos de copia de seguridad"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Liberar espacio de <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Error irrecuperable"</string>
+    <string name="error_desc" msgid="1939028888570920661">"No se ha podido recuperar después del error.\nPuedes intentar reiniciar la aplicación o probar una de las opciones de recuperación."</string>
+    <string name="error_code" msgid="3585291676855383649">"Código de error: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Ajustes"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"El terminal se está ejecutando"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Toca para abrir el terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Cerrar"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-et/strings.xml b/android/TerminalApp/res/values-et/strings.xml
index fd6b997..1d25c0a 100644
--- a/android/TerminalApp/res/values-et/strings.xml
+++ b/android/TerminalApp/res/values-et/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linuxi terminali installimine"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linuxi terminali käivitamiseks tuleb teil võrgu kaudu alla laadida umbes <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> andmeid.\nKas soovite jätkata?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Laadi alla, kui WiFi on saadaval"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linuxi terminali installimine"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linuxi terminal käivitatakse pärast lõpetamist"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Installimine ebaõnnestus võrguprobleemi tõttu"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Installimine ebaõnnestus. Proovige uuesti."</string>
     <string name="action_settings" msgid="5729342767795123227">"Seaded"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Terminali ettevalmistamine"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> on määratud"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Max <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Tühista"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Rakendamiseks taaskäivitage"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Pordisiire"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfigureerige pordisiire"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal üritab uut porti avada"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Andmed kustutatakse"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Kinnita"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Tühista"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Varunda andmed asukohta <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Taastamine ebaõnnestus, kuna varundamine ebaõnnestus"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Taastamine ebaõnnestus"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Ei saa varundusfaili eemaldada"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Varundusandmete eemaldamine"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Tühjenda <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Taastamatu viga"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Veast taastumine nurjus.\nVõite proovida rakenduse taaskäivitada või proovida üht taastamisvalikutest."</string>
+    <string name="error_code" msgid="3585291676855383649">"Veakood: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Seaded"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal töötab"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Klõpsake terminali avamiseks"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Sule"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-eu/strings.xml b/android/TerminalApp/res/values-eu/strings.xml
index 99cb7b4..2601142 100644
--- a/android/TerminalApp/res/values-eu/strings.xml
+++ b/android/TerminalApp/res/values-eu/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminala"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instalatu Linux-en terminala"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux-en terminala exekutatzeko, gutxi gorabehera <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> datu deskargatu behar dituzu sarearen bidez.\nAurrera egin nahi duzu?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Deskargatu wifi-sare bat erabilgarri dagoenean"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-en terminala instalatzen"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Prozesua amaitu ondoren abiaraziko da Linux-en terminala"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Ezin izan da instalatu, sarean arazo bat dagoelako"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Ezin izan da instalatu. Saiatu berriro."</string>
     <string name="action_settings" msgid="5729342767795123227">"Ezarpenak"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Terminala prestatzen"</string>
@@ -37,9 +45,8 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> esleituta"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Gehienez ere <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Utzi"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
-    <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Ataka-birbideratzea"</string>
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Aldaketak aplikatzeko, berrabiarazi"</string>
+    <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Ataka-birbideratzU+2060ea"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfiguratu ataka-birbideratzea"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminala beste ataka bat irekitzen saiatzen ari da"</string>
     <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Ataka hau irekitzeko eskatu da: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Partizioa berreskuratzeko aukerak"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Aldatu hasierako bertsiora"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Kendu guztiak"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Berrezarri terminala"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Datuak ezabatu egingo dira"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Berretsi"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Utzi"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Egin datuen babeskopiak hemen: <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Ezin izan da berreskuratu, babeskopiak huts egin duelako"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Ezin izan da berreskuratu"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Ezin da kendu babeskopia-fitxategia"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Kendu babeskopien datuak"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Garbitu <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Leheneratu ezin den errorea"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Ezin izan da leheneratu errorea.\nBerrabiarazi aplikazioa edo probatu leheneratzeko aukeretako bat."</string>
+    <string name="error_code" msgid="3585291676855383649">"Errore-kodea: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Ezarpenak"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminala abian da"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Egin klik terminala irekitzeko"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Itxi"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-fa/strings.xml b/android/TerminalApp/res/values-fa/strings.xml
index a07b722..ea7b9e1 100644
--- a/android/TerminalApp/res/values-fa/strings.xml
+++ b/android/TerminalApp/res/values-fa/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"پایانه"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"نصب پایانه Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"برای راه‌اندازی پایانه Linux، باید تقریباً <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> داده ازطریق شبکه بارگیری کنید.\nادامه می‌دهید؟"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"هنگام دسترسی به Wi-Fi بارگیری شود"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"درحال نصب پایانه Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"پایانه Linux بعداز اتمام شروع خواهد شد"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"به‌دلیل خطای شبکه نصب نشد"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"نصب نشد. دوباره امتحان کنید."</string>
     <string name="action_settings" msgid="5729342767795123227">"تنظیمات"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"درحال آماده‌سازی پایانه"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"‫<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> اختصاص یافته است"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"حداکثر <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"لغو"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"بازراه‌اندازی برای اعمال"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"بازارسال درگاه"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"پیکربندی بازارسال درگاه"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"پایانه می‌خواهد درگاه جدیدی باز کند"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"داده‌ها حذف خواهد شد"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"تأیید کردن"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"لغو کردن"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"پشتیبان‌گیری از داده‌ها در <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"بازیابی انجام نشد چون فایل پشتیبان مشکل داشت"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"بازیابی انجام نشد"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"فایل پشتیبان حذف نشد"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"حذف داده‌های پشتیبان"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"پاک‌سازی <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"خطای غیرقابل‌بازیابی"</string>
+    <string name="error_desc" msgid="1939028888570920661">"بازیابی از خطا ممکن نبود.\nمی‌توانید برنامه را بازراه‌اندازی کنید یا یکی از گزینه‌های بازیابی را امتحان کنید."</string>
+    <string name="error_code" msgid="3585291676855383649">"کد خطا: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"تنظیمات"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"پایانه درحال اجرا است"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"برای باز کردن پایانه، کلیک کنید"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"بستن"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-fi/strings.xml b/android/TerminalApp/res/values-fi/strings.xml
index 8f98d19..219a3fd 100644
--- a/android/TerminalApp/res/values-fi/strings.xml
+++ b/android/TerminalApp/res/values-fi/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Pääte"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Asenna Linux-pääte"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux-päätteen käynnistäminen edellyttää, että lataat noin <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> dataa verkon kautta.\nHaluatko jatkaa?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Lataa, kun Wi-Fi on käytettävissä"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-päätettä asennetaan"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux-pääte käynnistetään, kun se on valmis"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Asennus epäonnistui verkkovirheen vuoksi"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Asennus epäonnistui. Yritä uudelleen."</string>
     <string name="action_settings" msgid="5729342767795123227">"Asetukset"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Valmistellaan päätettä"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> määritetty"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Enintään <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Peru"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Ota käyttöön uudelleenkäynnistämällä"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Porttiohjaus"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Määritä porttiohjaus"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Pääte yrittää avata uuden portin"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Osion palautusvaihtoehdot"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Vaihda ensimmäiseen versioon"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Poista kaikki"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Nollaa terminaali"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Data poistetaan"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Vahvista"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Peru"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Varmuuskopioi data tänne: <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Palautus epäonnistui, koska varmuuskopiointi epäonnistui"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Palautus epäonnistui"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Varmuuskopiota ei voi poistaa"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Poista varmuuskopiodata"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Poista <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Peruuttamaton virhe"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Virheen korjaaminen epäonnistui.\nVoit yrittää käynnistää sovelluksen uudelleen tai kokeilla jotakin korjausvaihtoehtoa."</string>
+    <string name="error_code" msgid="3585291676855383649">"Virhekoodi: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Asetukset"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Pääte on käynnissä"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Avaa pääte klikkaamalla"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Sulje"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-fr-rCA/strings.xml b/android/TerminalApp/res/values-fr-rCA/strings.xml
index 743129d..ce5ffae 100644
--- a/android/TerminalApp/res/values-fr-rCA/strings.xml
+++ b/android/TerminalApp/res/values-fr-rCA/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Installer le terminal Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Pour lancer un terminal Linux, vous devez télécharger environ <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> de données sur le réseau.\nSouhaitez-vous continuer?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Télécharger lorsque le Wi-Fi est accessible"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installation du terminal Linux en cours…"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Le terminal Linux démarrera une fois l\'installation terminée"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Échec de l\'installation en raison d\'un problème de réseau"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Échec de l\'installation. Réessayez."</string>
     <string name="action_settings" msgid="5729342767795123227">"Paramètres"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Préparation du terminal en cours…"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> attribués"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> maximum"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Annuler"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Redémarrer pour appliquer"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Redirection de port"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configurez la redirection de port"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Le terminal tente d\'ouvrir un nouveau port"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Les données seront supprimées"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirmer"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Annuler"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Sauvegarder les données sur <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Échec de la récupération en raison de l\'échec de la sauvegarde"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Échec de la récupération"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Impossible de retirer le fichier de sauvegarde"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Retirer les données de sauvegarde"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Nettoyage de <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Erreur irrécupérable"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Échec de la récupération suite à une erreur.\nVous pouvez essayer de redémarrer l\'appli ou essayer l\'une des options de récupération."</string>
+    <string name="error_code" msgid="3585291676855383649">"Code d\'erreur : <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Paramètres"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Le terminal fonctionne"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Cliquez pour ouvrir le terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Fermer"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-fr/strings.xml b/android/TerminalApp/res/values-fr/strings.xml
index 429d51f..412b98a 100644
--- a/android/TerminalApp/res/values-fr/strings.xml
+++ b/android/TerminalApp/res/values-fr/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Installer le terminal Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Pour lancer le terminal Linux, vous devez télécharger environ <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> de données via le réseau.\nVoulez-vous continuer ?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Télécharger lorsque le Wi-Fi sera disponible"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installation du terminal Linux…"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Le terminal Linux sera lancé une fois l\'opération terminée"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Échec de l\'installation en raison d\'un problème réseau"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Échec de l\'installation. Réessayez."</string>
     <string name="action_settings" msgid="5729342767795123227">"Paramètres"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Préparation du terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> attribués"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> maximum"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Annuler"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Redémarrer pour appliquer"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Transfert de port"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configurer le transfert de port"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Le terminal essaie d\'ouvrir un nouveau port"</string>
@@ -53,8 +60,22 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Les données seront supprimées"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirmer"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Annuler"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Sauvegarder les données dans <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Récupération impossible en raison de l\'échec de la sauvegarde"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Échec de la récupération"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Impossible de supprimer le fichier de sauvegarde"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Supprimer les données de sauvegarde"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Libérer de l\'espace dans <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Paramètres"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal en cours d\'exécution"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Cliquez pour ouvrir le terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Fermer"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-gl/strings.xml b/android/TerminalApp/res/values-gl/strings.xml
index f81759f..61ffa17 100644
--- a/android/TerminalApp/res/values-gl/strings.xml
+++ b/android/TerminalApp/res/values-gl/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instalar o terminal de Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Para iniciar o terminal de Linux, tes que descargar uns <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> de datos a través da rede.\nQueres continuar?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Descargar cando haxa wifi dispoñible"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instalando terminal de Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"O terminal de Linux iniciarase en canto remate a instalación"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Produciuse un erro durante instalación por un problema coa rede"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Produciuse un erro durante a instalación. Téntao de novo."</string>
     <string name="action_settings" msgid="5729342767795123227">"Configuración"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Preparando terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Tamaño asignado: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> como máximo"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Cancelar"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Reiniciar e aplicar"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Encamiñamento de porto"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configura o encamiñamento de porto"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"O terminal está tentando abrir outro porto"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opcións de recuperación da partición"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Cambiar á versión inicial"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Quita todo"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Restablecer o terminal"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Eliminaranse os datos"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirmar"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Cancelar"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Facer unha copia de seguranza dos datos en <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Fallou a recuperación porque se produciu un erro na copia de seguranza"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Produciuse un erro na recuperación"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Non se puido quitar o ficheiro da copia de seguranza"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Quitar datos da copia de seguranza"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Liberar espazo de <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Produciuse un erro que impide a recuperación"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Produciuse un fallo de recuperación despois dun erro.\nPodes probar a reiniciar a aplicación ou usar unha das opcións de recuperación."</string>
+    <string name="error_code" msgid="3585291676855383649">"Código de erro: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Configuración"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"O terminal está en funcionamento"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Fai clic para abrir o terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Pechar"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-gu/strings.xml b/android/TerminalApp/res/values-gu/strings.xml
index c93040a..0d74ec0 100644
--- a/android/TerminalApp/res/values-gu/strings.xml
+++ b/android/TerminalApp/res/values-gu/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"ટર્મિનલ"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux ટર્મિનલ ઇન્સ્ટૉલ કરો"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux ટર્મિનલ લૉન્ચ કરવા માટે, તમારે નેટવર્ક પર આશરે <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> ડેટા ડાઉનલોડ કરવાની જરૂર છે.\nશું તમારે આગળ વધવું છે?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"જ્યારે વાઇ-ફાઇ ઉપલબ્ધ હોય, ત્યારે ડાઉનલોડ કરો"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ટર્મિનલ ઇન્સ્ટૉલ કરી રહ્યાં છીએ"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"પ્રક્રિયા સમાપ્ત થયા પછી Linux ટર્મિનલ શરૂ થશે"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"નેટવર્કની સમસ્યાને કારણે ઇન્સ્ટૉલ કરવામાં નિષ્ફળ રહ્યાં"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"ઇન્સ્ટૉલ કરવામાં નિષ્ફળ રહ્યાં. ફરી પ્રયાસ કરો."</string>
     <string name="action_settings" msgid="5729342767795123227">"સેટિંગ"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"ટર્મિનલ તૈયાર કરી રહ્યાં છીએ"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> સોંપ્યું છે"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"મહત્તમ <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"રદ કરો"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"લાગુ કરવા ફરી શરૂ કરો"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"પોર્ટ ફૉરવર્ડિંગ"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"પોર્ટ ફૉરવર્ડિંગનું કન્ફિગ્યુરેશન કરો"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"ટર્મિનલ નવું પોર્ટ ખોલવાનો પ્રયાસ કરી રહ્યું છે"</string>
@@ -53,8 +60,22 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ડેટા ડિલીટ કરવામાં આવશે"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"કન્ફર્મ કરો"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"રદ કરો"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g> પર ડેટાનું બૅકઅપ લો"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"બૅકઅપ નિષ્ફળ જવાને લીધે રિકવરી નિષ્ફળ રહી"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"રિકવરી નિષ્ફળ રહી"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"બૅકઅપ ફાઇલ કાઢી શકતા નથી"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"બૅકઅપ ડેટા કાઢી નાખો"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"ક્લિન અપ <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"સેટિંગ"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"ટર્મિનલ ચાલી રહ્યું છે"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"ટર્મિનલ ખોલવા માટે ક્લિક કરો"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"બંધ કરો"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-hi/strings.xml b/android/TerminalApp/res/values-hi/strings.xml
index e626f28..5fcc177 100644
--- a/android/TerminalApp/res/values-hi/strings.xml
+++ b/android/TerminalApp/res/values-hi/strings.xml
@@ -17,6 +17,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"टर्मिनल"</string>
+    <string name="terminal_display" msgid="4810127497644015237">"टर्मिनल डिसप्ले"</string>
+    <string name="terminal_input" msgid="4602512831433433551">"कर्सर."</string>
+    <string name="empty_line" msgid="5012067143408427178">"खाली लाइन"</string>
     <string name="installer_title_text" msgid="500663060973466805">"Linux टर्मिनल ऐप्लिकेशन इंस्टॉल करें"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux टर्मिनल ऐप्लिकेशन को लॉन्च करने के लिए, आपको इंटरनेट से <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> डेटा डाउनलोड करना होगा.\nक्या आपको आगे बढ़ना है?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"वाई-फ़ाई उपलब्ध होने पर डाउनलोड करें"</string>
@@ -26,6 +29,7 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux टर्मिनल ऐप्लिकेशन इंस्टॉल हो रहा है"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"प्रोसेस पूरी होने के बाद, Linux टर्मिनल ऐप्लिकेशन, इस्तेमाल किया जा सकेगा"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"नेटवर्क की समस्या की वजह से, इंस्टॉल नहीं किया जा सका"</string>
+    <string name="installer_error_no_wifi" msgid="8631584648989718121">"वाई-फ़ाई उपलब्ध न होने की वजह से, इंस्टॉल नहीं किया जा सका"</string>
     <string name="installer_error_unknown" msgid="1991780204241177455">"इंस्टॉल नहीं किया जा सका. फिर से कोशिश करें."</string>
     <string name="action_settings" msgid="5729342767795123227">"सेटिंग"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"टर्मिनल तैयार किया जा रहा है"</string>
@@ -34,27 +38,37 @@
     <string name="settings_disk_resize_title" msgid="1545791169419914600">"डिस्क का साइज़ बदलें"</string>
     <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"साइज़ बदलें / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"डिस्क का साइज़ सेट किया गया"</string>
-    <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"असाइन किया गया साइज़: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
-    <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"ज़्यादा से ज़्यादा साइज़: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
+    <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> असाइन किया गया"</string>
+    <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"मैक्सिमम <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"रद्द करें"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"रीस्टार्ट करें"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"पोर्ट फ़ॉरवर्डिंग"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"पोर्ट फ़ॉरवर्डिंग को कॉन्फ़िगर करें"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"टर्मिनल, एक नया पोर्ट खोलने की कोशिश कर रहा है"</string>
     <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"पोर्ट को खोलने का अनुरोध किया गया: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"स्वीकार करें"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"अस्वीकार करें"</string>
-    <string name="settings_recovery_title" msgid="6586840079226383285">"इमेज को रिकवर करें"</string>
+    <string name="settings_recovery_title" msgid="6586840079226383285">"इमेज रिकवर करें"</string>
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"इमेज के हिस्से को रिकवर करने के विकल्प"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"शुरुआती वर्शन पर स्विच करें"</string>
-    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"वीएम की सभी इमेज हटाएं"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"सभी हटाएं"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"टर्मिनल रीसेट करें"</string>
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"डेटा मिटा दिया जाएगा"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"पुष्टि करें"</string>
-    <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"रद्द करें"</string>
+    <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"अभी नहीं"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g> पर डेटा का बैक अप लें"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"बैकअप पूरा न होने की वजह से, रिकवर नहीं किया जा सका"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"रिकवर नहीं किया जा सका"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"बैकअप फ़ाइल को हटाया नहीं जा सकता"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"बैकअप डेटा हटाएं"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> का बैकअप डेटा हटाएं"</string>
+    <string name="error_title" msgid="7196464038692913778">"वह गड़बड़ी जिसकी वजह से डेटा वापस नहीं पाया जा सकता"</string>
+    <string name="error_desc" msgid="1939028888570920661">"गड़बड़ी ठीक नहीं की जा सकी.\nऐप्लिकेशन को रीस्टार्ट करने की कोशिश करें या गड़बड़ी ठीक करने का कोई विकल्प आज़माएं."</string>
+    <string name="error_code" msgid="3585291676855383649">"गड़बड़ी का कोड: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"सेटिंग"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"टर्मिनल चालू है"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"टर्मिनल खोलने के लिए क्लिक करें"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"बंद करें"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-hr/strings.xml b/android/TerminalApp/res/values-hr/strings.xml
index d08d24b..686492c 100644
--- a/android/TerminalApp/res/values-hr/strings.xml
+++ b/android/TerminalApp/res/values-hr/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instalirajte Linux terminal"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Da biste pokrenuli Linux terminal, trebate preuzeti otprilike <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> podataka putem mreže.\nŽelite li nastaviti?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Preuzmi kada Wi-Fi bude dostupan"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instaliranje Linux terminala"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux terminal pokrenut će se nakon završetka"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Instalacija nije uspjela zbog problema s mrežom"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Instaliranje nije uspjelo. Pokušajte ponovo."</string>
     <string name="action_settings" msgid="5729342767795123227">"Postavke"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Priprema terminala"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Dodijeljeno: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maks. <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Odustani"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Ponovo pokrenite za primjenu"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Prosljeđivanje priključka"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfiguriranje prosljeđivanja priključka"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal pokušava otvoriti novi priključak"</string>
@@ -49,15 +56,26 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opcije oporavka particije"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Vrati na početnu verziju"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Ukloni sve"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Poništavanje terminala"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Podaci će se izbrisati"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Potvrdi"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Odustani"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Sigurnosno kopiranje podataka u <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Oporavak nije uspio jer sigurnosno kopiranje nije uspjelo"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Oporavak nije uspio"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Datoteka sigurnosne kopije ne može se ukloniti"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Ukloni podatke sigurnosne kopije"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Izbriši <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Postavke"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal je pokrenut"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Kliknite da biste otvorili terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Zatvori"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-hu/strings.xml b/android/TerminalApp/res/values-hu/strings.xml
index 1c2bf7c..892de69 100644
--- a/android/TerminalApp/res/values-hu/strings.xml
+++ b/android/TerminalApp/res/values-hu/strings.xml
@@ -17,6 +17,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminál"</string>
+    <string name="terminal_display" msgid="4810127497644015237">"Terminálkijelző"</string>
+    <string name="terminal_input" msgid="4602512831433433551">"Kurzor"</string>
+    <string name="empty_line" msgid="5012067143408427178">"Üres sor"</string>
     <string name="installer_title_text" msgid="500663060973466805">"Linux-terminál telepítése"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"A Linux-terminál elindításához körülbelül <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> adatmennyiséget kell letöltenie a hálózaton keresztül.\nFolytatja?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Letöltés, ha rendelkezésre áll Wi-Fi-kapcsolat"</string>
@@ -26,6 +29,7 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-terminál telepítése…"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"A Linux-terminál a befejezés után indul el"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Hálózati probléma miatt nem sikerült a telepítés"</string>
+    <string name="installer_error_no_wifi" msgid="8631584648989718121">"Nem sikerült a telepítés, mert nincs Wi-Fi-kapcsolat"</string>
     <string name="installer_error_unknown" msgid="1991780204241177455">"Nem sikerült a telepítés. Próbálkozzon újra."</string>
     <string name="action_settings" msgid="5729342767795123227">"Beállítások"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"A terminál előkészítése…"</string>
@@ -37,8 +41,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> hozzárendelve"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maximum: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Mégse"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Újraindítás az alkalmazáshoz"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Portátirányítás"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Portátirányítás konfigurálása"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"A Terminal új portot próbál megnyitni"</string>
@@ -49,15 +52,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Partíció-helyreállítási lehetőségek"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Váltás az eredeti verzióra"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Az összes eltávolítása"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Terminál visszaállítása"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Az adatok törlődni fognak"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Megerősítés"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Mégse"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Adatok biztonsági mentése ide: <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"A helyreállítás sikertelen volt, mert a biztonsági mentés nem sikerült"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Sikertelen helyreállítás"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Nem sikerült eltávolítani a biztonságimentés-fájlt"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Biztonsági másolat adatainak eltávolítása"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"A(z) <xliff:g id="PATH">/mnt/backup</xliff:g> útvonalon lévő adatok eltávolítása"</string>
+    <string name="error_title" msgid="7196464038692913778">"Helyrehozhatatlan hiba"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Nem sikerült a hiba utáni helyreállítás.\nPróbálkozhat az alkalmazás újraindításával, vagy kipróbálhatja valamelyik helyreállítási lehetőséget."</string>
+    <string name="error_code" msgid="3585291676855383649">"Hibakód: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Beállítások"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"A terminál fut"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Kattintson a terminál megnyitásához"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Bezárás"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-hy/strings.xml b/android/TerminalApp/res/values-hy/strings.xml
index cfaf8ce..5a2f90d 100644
--- a/android/TerminalApp/res/values-hy/strings.xml
+++ b/android/TerminalApp/res/values-hy/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Տերմինալ"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Լինուքս տերմինալի տեղադրում"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Լինուքս տերմինալը գործարկելու համար անհրաժեշտ է ցանցի միջոցով ներբեռնել մոտ <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> տվյալ։\nՇարունակե՞լ։"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Ներբեռնել, երբ սարքը միանա Wi-Fi-ին"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Լինուքս տերմինալը տեղադրվում է"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Ավարտից հետո Լինուքս տերմինալը կգործարկվի"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Տեղադրումը ձախողվեց ցանցի հետ կապված խնդրի պատճառով"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Չհաջողվեց տեղադրել: Նորից փորձեք։"</string>
     <string name="action_settings" msgid="5729342767795123227">"Կարգավորումներ"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Տերմինալի նախապատրաստում"</string>
@@ -37,15 +45,14 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Հատկացված է <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Առավելագույնը՝ <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Չեղարկել"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Կիրառելու համար վերագործարկեք"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Միացքի փոխանցում"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Միացքի փոխանցման կազմաձևում"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Տերմինալը փորձում է նոր միացք բացել"</string>
     <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Միացքը, որը պահանջվում է բացել՝ <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Ընդունել"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Մերժել"</string>
-    <string name="settings_recovery_title" msgid="6586840079226383285">"Վերականգնում"</string>
+    <string name="settings_recovery_title" msgid="6586840079226383285">"Վերականգ­նում"</string>
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Բաժնի վերականգնման տարբերակներ"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Նախնական տարբերակի վերականգնում"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Հեռացնել բոլորը"</string>
@@ -53,8 +60,22 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Տվյալները կջնջվեն"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Հաստատել"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Չեղարկել"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Պահուստավորել տվյալները այստեղ՝ <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Պահուստավորման խափանման պատճառով չհաջողվեց վերականգնել"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Չհաջողվեց վերականգնել"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Հնարավոր չէ հեռացնել պահուստային կրկնօրինակի ֆայլը"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Հեռացնել պահուստավորված տվյալները"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Մաքրել ուղին՝ <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Կարգավորումներ"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Տերմինալն աշխատում է"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Սեղմեք՝ տերմինալը բացելու համար"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Փակել"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-in/strings.xml b/android/TerminalApp/res/values-in/strings.xml
index fc0990a..068a693 100644
--- a/android/TerminalApp/res/values-in/strings.xml
+++ b/android/TerminalApp/res/values-in/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instal terminal Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Untuk meluncurkan terminal Linux, Anda perlu mendownload sekitar <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> data melalui jaringan.\nApakah Anda ingin melanjutkan?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Download saat Wi-Fi tersedia"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Menginstal terminal Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Terminal Linux akan dimulai setelah penginstalan selesai"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Gagal menginstal karena ada masalah jaringan"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Gagal menginstal. Coba lagi."</string>
     <string name="action_settings" msgid="5729342767795123227">"Setelan"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Menyiapkan terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> ditetapkan"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maks <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Batal"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Mulai ulang untuk menerapkan"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Penerusan Port"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfigurasi penerusan port"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal mencoba membuka port baru"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opsi Pemulihan Partisi"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Ubah ke Versi awal"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Hapus semua"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Reset terminal"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Data akan dihapus"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Konfirmasi"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Batal"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Cadangkan data ke <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Pemulihan gagal karena pencadangan gagal"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Pemulihan gagal"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Tidak dapat menghapus file cadangan"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Hapus data cadangan"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Membersihkan <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Error yang Tidak Dapat Dipulihkan"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Gagal memulihkan dari error.\nAnda dapat mencoba memulai ulang aplikasi, atau mencoba salah satu opsi pemulihan."</string>
+    <string name="error_code" msgid="3585291676855383649">"Kode error: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Setelan"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal sedang berjalan"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Klik untuk membuka terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Tutup"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-is/strings.xml b/android/TerminalApp/res/values-is/strings.xml
index 61ae876..e50b1b6 100644
--- a/android/TerminalApp/res/values-is/strings.xml
+++ b/android/TerminalApp/res/values-is/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Útstöð"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Setja upp Linux-útstöð"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Til að ræsa Linux-útstöð þarftu að sækja um <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> af gögnum yfir netkerfi.\nViltu halda áfram?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Sækja þegar Wi-Fi er tiltækt"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Setur upp Linux-útstöð"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux-útstöð verður ræst þegar því lýkur"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Tókst ekki að setja upp vegna netkerfisvandamáls"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Tókst ekki að setja upp. Reyndu aftur."</string>
     <string name="action_settings" msgid="5729342767795123227">"Stillingar"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Undirbýr útstöð"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> úthlutað"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> hámark"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Hætta við"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Endurræsa til að nota"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Framsending gáttar"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Stilla framsendingu gáttar"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Útstöð er að reyna að opna nýtt tengi"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Endurheimtarkostir deildar"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Breyta í upphaflega útgáfu"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Fjarlægja allt"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Endurstilla útstöð"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Gögnum verður eytt"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Staðfesta"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Hætta við"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Afrita gögn á <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Endurheimt mistókst vegna þess að öryggisafritun mistókst"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Endurheimt mistókst"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Ekki er hægt að fjarlægja öryggisafrit"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Fjarlægja afrituð gögn"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Hreinsa <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Óleiðréttanleg villa"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Ekki tókst að endurheimta eftir villu.\nÞú getur reynt að endurræsa forritið eða prófað einn af endurheimtarkostunum."</string>
+    <string name="error_code" msgid="3585291676855383649">"Villukóði: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Stillingar"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Útstöð er í gangi"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Smelltu til að opna útstöðina"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Loka"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-it/strings.xml b/android/TerminalApp/res/values-it/strings.xml
index f25c4f9..1f99326 100644
--- a/android/TerminalApp/res/values-it/strings.xml
+++ b/android/TerminalApp/res/values-it/strings.xml
@@ -17,6 +17,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminale"</string>
+    <string name="terminal_display" msgid="4810127497644015237">"Display terminale"</string>
+    <string name="terminal_input" msgid="4602512831433433551">"Cursore"</string>
+    <string name="empty_line" msgid="5012067143408427178">"Riga vuota"</string>
     <string name="installer_title_text" msgid="500663060973466805">"Installa terminale Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Per avviare il terminale Linux, devi scaricare circa <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> di dati tramite la rete.\nContinuare?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Scarica quando è disponibile una rete Wi-Fi"</string>
@@ -26,6 +29,7 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installazione del terminale Linux in corso…"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Il terminale Linux verrà avviato al termine"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Installazione non riuscita a causa di un problema di rete"</string>
+    <string name="installer_error_no_wifi" msgid="8631584648989718121">"Impossibile installare: Wi-Fi non disponibile"</string>
     <string name="installer_error_unknown" msgid="1991780204241177455">"Installazione non riuscita. Riprova."</string>
     <string name="action_settings" msgid="5729342767795123227">"Impostazioni"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Preparazione terminale in corso…"</string>
@@ -37,8 +41,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Assegnato: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Massimo: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Annulla"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Riavvia per applic."</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Port forwarding"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configura port forwarding"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Il terminale sta tentando di aprire una nuova porta"</string>
@@ -53,8 +56,22 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"I dati verranno eliminati"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Conferma"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Annulla"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Esegui il backup dei dati su <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Recupero non riuscito a causa di un errore di backup"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Recupero non riuscito"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Impossibile rimuovere il file di backup"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Rimuovi i dati di backup"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Pulisci <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Impostazioni"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Il terminale è in esecuzione"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Tocca per aprire il terminale"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Chiudi"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-iw/strings.xml b/android/TerminalApp/res/values-iw/strings.xml
index 63207c6..5c1037d 100644
--- a/android/TerminalApp/res/values-iw/strings.xml
+++ b/android/TerminalApp/res/values-iw/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"טרמינל"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"התקנה של טרמינל Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"כדי להפעיל את טרמינל Linux, צריך להוריד נתונים בנפח של בערך <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> דרך הרשת.\nלהמשיך?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"הורדה כשיהיה חיבור ל-Wi-Fi"</string>
@@ -26,19 +32,20 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"מתבצעת התקנה של טרמינל Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"טרמינל Linux יופעל אחרי שההתקנה תסתיים"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"ההתקנה נכשלה בגלל בעיה ברשת"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"ההתקנה נכשלה. אפשר לנסות שוב."</string>
     <string name="action_settings" msgid="5729342767795123227">"הגדרות"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"הטרמינל בהכנה"</string>
     <string name="vm_stop_message" msgid="3978349856095529255">"המערכת עוצרת את הטרמינל"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"הטרמינל קרס"</string>
-    <string name="settings_disk_resize_title" msgid="1545791169419914600">"שינוי הגודל של הדיסק"</string>
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"שינוי גודל הדיסק"</string>
     <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"שינוי הגודל / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"גודל הדיסק הוגדר"</string>
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"הוקצו <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"מקסימום <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"ביטול"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"צריך להפעיל מחדש כדי להחיל את השינוי"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"העברה ליציאה אחרת"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"הגדרת העברה ליציאה אחרת"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"הטרמינל מנסה לפתוח יציאה חדשה"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"אפשרויות שחזור של המחיצה"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"שינוי לגרסה הראשונית"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"הסרת הכול"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"אתחול הטרמינל"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"הנתונים יימחקו"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"אישור"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"ביטול"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"גיבוי הנתונים בנתיב <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"השחזור נכשל כי הגיבוי נכשל"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"השחזור נכשל"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"אי אפשר להסיר את קובץ הגיבוי"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"הסרת נתוני הגיבוי"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"פינוי של <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"שגיאה שבעקבותיה אי אפשר לשחזר"</string>
+    <string name="error_desc" msgid="1939028888570920661">"השחזור נכשל בגלל שגיאה.\nאפשר להפעיל מחדש את האפליקציה או לנסות אחת מאפשרויות השחזור."</string>
+    <string name="error_code" msgid="3585291676855383649">"קוד שגיאה: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"הגדרות"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"הטרמינל פועל"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"צריך ללחוץ כדי לפתוח את הטרמינל"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"סגירה"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ja/strings.xml b/android/TerminalApp/res/values-ja/strings.xml
index fd06f1e..e4a9cd7 100644
--- a/android/TerminalApp/res/values-ja/strings.xml
+++ b/android/TerminalApp/res/values-ja/strings.xml
@@ -17,6 +17,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"ターミナル"</string>
+    <string name="terminal_display" msgid="4810127497644015237">"ターミナルの表示"</string>
+    <string name="terminal_input" msgid="4602512831433433551">"カーソル"</string>
+    <string name="empty_line" msgid="5012067143408427178">"空の行"</string>
     <string name="installer_title_text" msgid="500663060973466805">"Linux ターミナルをインストールする"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux ターミナルを起動するには、ネットワーク経由で約 <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> のデータのダウンロードが必要です。\n続行しますか?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Wi-Fi 接続時にダウンロード"</string>
@@ -26,6 +29,7 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ターミナルのインストール"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"完了後に Linux ターミナルが起動します"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"ネットワークの問題によりインストールできませんでした"</string>
+    <string name="installer_error_no_wifi" msgid="8631584648989718121">"Wi-Fi が利用できないため、インストールできませんでした"</string>
     <string name="installer_error_unknown" msgid="1991780204241177455">"インストールできませんでした。もう一度お試しください。"</string>
     <string name="action_settings" msgid="5729342767795123227">"設定"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"ターミナルを準備しています"</string>
@@ -37,8 +41,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> 割り当て済み"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"最大 <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"キャンセル"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"再起動して適用"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"ポート転送"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"ポート転送を設定する"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"ターミナルが新しいポートを開こうとしています"</string>
@@ -53,8 +56,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"データは削除されます"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"確認"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"キャンセル"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g> にデータをバックアップする"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"バックアップに失敗したため、復元できませんでした"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"復元できませんでした"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"バックアップ ファイルを削除できません"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"バックアップ データの削除"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> をクリーンアップする"</string>
+    <string name="error_title" msgid="7196464038692913778">"修復不可能なエラー"</string>
+    <string name="error_desc" msgid="1939028888570920661">"エラーを修復できませんでした。\nアプリを再起動するか、いずれかの復元オプションをお試しください。"</string>
+    <string name="error_code" msgid="3585291676855383649">"エラーコード: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"設定"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"ターミナルは実行中です"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"クリックするとターミナルが開きます"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"閉じる"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ka/strings.xml b/android/TerminalApp/res/values-ka/strings.xml
index 4c15040..44ad145 100644
--- a/android/TerminalApp/res/values-ka/strings.xml
+++ b/android/TerminalApp/res/values-ka/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"ტერმინალი"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux ტერმინალის ინსტალაცია"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux ტერმინალის გაშვებისთვის საჭიროა ქსელიდან ჩამოტვირთოთ დაახლოებით <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> ზომის მონაცემები.\nგსურთ გაგრძელება?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"ჩამოტვირთვა Wi-Fi კავშირის ხელმისაწვდომობისას"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"მიმდინარეობს Linux ტერმინალის ინსტალაცია"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"დასრულების შემდეგ დაიწყება Linux ტერმინალის ინსტალაცია"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"ქსელის შეცდომის გამო ვერ მოხერხდა ინსტალაცია"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"ვერ მოახერხდა ინსტალაცია. ცადეთ ხელახლა."</string>
     <string name="action_settings" msgid="5729342767795123227">"პარამეტრები"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"მიმდინარეობს ტერმინალის მომზადება"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> მიმაგრებულია"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"მაქსიმალური ზომა: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"გაუქმება"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"ასამოქმედებლად გადატვირთეთ"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"პორტის გადამისამართება"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"პორტის გადამისამართების კონფიგურაცია"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"ტერმინალი ცდილობს ახალი პორტის გახსნას"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"მონაცემები წაიშლება"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"დადასტურება"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"გაუქმება"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"მონაცემების სარეზერვო ასლის შექმნა <xliff:g id="PATH">/mnt/backup</xliff:g>-ზე"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"აღდგენა ვერ მოხერხდა, რადგან სარეზერვო კოპირება ვერ განხორციელდა"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"აღდგენა ვერ მოხერხდა"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"სარეზერვო ასლის ფაილის ამოშლა ვერ ხერხდება"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"სარეზერვო ასლის მონაცემების ამოშლა"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g>-ის გასუფთავება"</string>
+    <string name="error_title" msgid="7196464038692913778">"გამოუსწორებელი შეცდომა"</string>
+    <string name="error_desc" msgid="1939028888570920661">"შეცდომა ვერ გამოსწორდა.\nშეგიძლიათ აპი გადატვირთოთ ან აღდგენის სხვა ვარიანტი ცადოთ."</string>
+    <string name="error_code" msgid="3585291676855383649">"შეცდომის კოდი: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"პარამეტრები"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"ტერმინალი გაშვებულია"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"დააწკაპუნეთ ტერმინალის გასახსნელად"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"დახურვა"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-kk/strings.xml b/android/TerminalApp/res/values-kk/strings.xml
index ef81f12..2e906c3 100644
--- a/android/TerminalApp/res/values-kk/strings.xml
+++ b/android/TerminalApp/res/values-kk/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Терминал"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux терминалын орнату"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux терминалын іске қосу үшін желі арқылы шамамен <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> деректі жүктеп алу қажет.\nЖалғастырасыз ба?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Wi-Fi желісі пайда болғанда жүктеп алу"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux терминалы орнатылып жатыр"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux терминалы орнату аяқталғаннан кейін іске қосылады."</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Желі мәселесіне байланысты орнату мүмкін болмады."</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Орнату мүмкін болмады. Қайталап көріңіз."</string>
     <string name="action_settings" msgid="5729342767795123227">"Параметрлер"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Терминал дайындалып жатыр."</string>
@@ -34,11 +42,10 @@
     <string name="settings_disk_resize_title" msgid="1545791169419914600">"Диск көлемін өзгерту"</string>
     <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Көлемін өзгерту / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Диск көлемі орнатылды."</string>
-    <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> тағайындалды."</string>
+    <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> тағайындалды"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Ең көбі <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Бас тарту"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Қолдану үшін қайта ашу"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Портты бағыттау"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Портты бағыттауды конфигурациялау"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Терминал жаңа порт ашайын деп жатыр"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Бөлікті қалпына келтіру опциялары"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Бастапқы нұсқаға өзгерту"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Барлығын өшіру"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Терминалды бастапқы күйге қайтару"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Деректер жойылады."</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Растау"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Бас тарту"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Деректердің сақтық көшірмесін <xliff:g id="PATH">/mnt/backup</xliff:g> жолына сақтау"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Қалпына келтірілмеді, себебі сақтық көшірме жасалмады."</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Қалпына келтірілмеді."</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Сақтық көшірме файлы өшірілмеді."</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Сақтық көшірме дерегін өшіру"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> дерегін тазалау"</string>
+    <string name="error_title" msgid="7196464038692913778">"Қалпына келтіруге жол бермейтін қате"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Қатеден кейін қалпына келтіру мүмкін болмады.\nҚолданбаны жауып, қайтадан ашып көріңіз немесе қалпына келтіру опцияларының бірін пайдаланып көріңіз."</string>
+    <string name="error_code" msgid="3585291676855383649">"Қате коды: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Параметрлер"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Терминал іске қосылып тұр"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Терминалды ашу үшін басыңыз."</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Жабу"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-km/strings.xml b/android/TerminalApp/res/values-km/strings.xml
index af0ec75..2513b4e 100644
--- a/android/TerminalApp/res/values-km/strings.xml
+++ b/android/TerminalApp/res/values-km/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"ទែមីណាល់"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"ដំឡើងទែមីណាល់ Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"ដើម្បីបើកដំណើរការទែមីណាល់ Linux អ្នកត្រូវទាញយកទិន្នន័យប្រហែលជា <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> នៅលើបណ្តាញ។\nតើអ្នកចង់បន្តដែរឬទេ?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"ទាញ​យកនៅពេលមាន Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"កំពុងដំឡើងទែមីណាល់ Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"ទែមីណាល់ Linux នឹងត្រូវបានចាប់ផ្ដើមបន្ទាប់ពីបញ្ចប់"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"មិនអាច​ដំឡើងបានទេ ដោយសារបញ្ហាបណ្ដាញ"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"មិនអាច​ដំឡើងបានទេ។ សូមព្យាយាមម្ដងទៀត។"</string>
     <string name="action_settings" msgid="5729342767795123227">"ការកំណត់"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"កំពុងរៀបចំទែមីណាល់"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"បានកំណត់ <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"អតិបរមា <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"បោះបង់"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"ចាប់ផ្ដើមឡើងវិញដើម្បីដាក់ប្រើ"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"ការបញ្ជូនច្រកបន្ត"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"កំណត់រចនាសម្ព័ន្ធ​ការបញ្ជូនច្រកបន្ត"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"ទែមីណាល់កំពុងព្យាយាមបើកច្រកថ្មី"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ទិន្នន័យនឹងត្រូវបានលុប"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"បញ្ជាក់"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"បោះបង់"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"បម្រុងទុកទិន្នន័យទៅ <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ការស្ដារឡើងវិញមិនបានសម្រេច ដោយសារការបម្រុងទុកមិនបានសម្រេច"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"ការស្ដារឡើងវិញមិនបានសម្រេច"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"មិនអាចដកឯកសារបម្រុង​ទុកចេញបានទេ"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ដកទិន្នន័យបម្រុងទុកចេញ"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"សម្អាត <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"បញ្ហា​ដែលបណ្ដាលឱ្យមិនអាច​ស្ដារបាន"</string>
+    <string name="error_desc" msgid="1939028888570920661">"មិនអាចស្ដារឡើងវិញពីបញ្ហាបានទេ។\nអ្នកអាចសាកល្បងចាប់ផ្ដើមកម្មវិធីឡើងវិញ ឬសាកល្បងប្រើជម្រើសមួយក្នុងចំណោមជម្រើសស្ដារ។"</string>
+    <string name="error_code" msgid="3585291676855383649">"លេខ​កូដ​បញ្ហា៖ <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"ការកំណត់"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"ទែមីណាល់កំពុងដំណើរការ"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"ចុចដើម្បីបើកទែមីណាល់"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"បិទ"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-kn/strings.xml b/android/TerminalApp/res/values-kn/strings.xml
index b6d52ef..3fc63d2 100644
--- a/android/TerminalApp/res/values-kn/strings.xml
+++ b/android/TerminalApp/res/values-kn/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"ಟರ್ಮಿನಲ್‌"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux ಟರ್ಮಿನಲ್ ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux ಟರ್ಮಿನಲ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು, ನೀವು ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಸುಮಾರು <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> ಡೇಟಾವನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.\nನೀವು ಮುಂದುವರಿಸಲು ಬಯಸುತ್ತೀರಾ?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"ವೈ-ಫೈ ಲಭ್ಯವಿದ್ದಾಗ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ಟರ್ಮಿನಲ್ ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"ಮುಗಿದ ಮೇಲೆ Linux ಟರ್ಮಿನಲ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"ನೆಟ್‌ವರ್ಕ್ ಸಮಸ್ಯೆಯಿಂದಾಗಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."</string>
     <string name="action_settings" msgid="5729342767795123227">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"ಟರ್ಮಿನಲ್‌ ಅನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತಿದೆ"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> ನಿಯೋಜಿಸಲಾಗಿದೆ"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"ಗರಿಷ್ಠ <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"ರದ್ದುಮಾಡಿ"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"ಅನ್ವಯಿಸಲು ಮರುಪ್ರಾರಂಭಿಸಿ"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"ಪೋರ್ಟ್ ಫಾರ್ವರ್ಡ್ ಮಾಡುವಿಕೆ"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"ಪೋರ್ಟ್ ಫಾರ್ವರ್ಡ್ ಮಾಡುವಿಕೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"ಟರ್ಮಿನಲ್‌ ಹೊಸ ಪೋರ್ಟ್‌ ಅನ್ನು ತೆರೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"ದೃಢೀಕರಿಸಿ"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"ರದ್ದುಮಾಡಿ"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"ಡೇಟಾವನ್ನು <xliff:g id="PATH">/mnt/backup</xliff:g> ಗೆ ಬ್ಯಾಕಪ್‌ ಮಾಡಿ"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ಬ್ಯಾಕಪ್‌ ವಿಫಲವಾದ ಕಾರಣ ರಿಕವರಿ ವಿಫಲವಾಗಿದೆ"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"ರಿಕವರಿ ವಿಫಲವಾಗಿದೆ"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ಬ್ಯಾಕಪ್‌ ಫೈಲ್‌ ಅನ್ನು ತೆಗೆದುಹಾಕಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ಬ್ಯಾಕಪ್‌ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> ಅನ್ನು ಕ್ಲೀನ್‌ ಅಪ್‌ ಮಾಡಿ"</string>
+    <string name="error_title" msgid="7196464038692913778">"ಮರುಪಡೆಯಲಾಗದ ದೋಷ ಎದುರಾಗಿದೆ"</string>
+    <string name="error_desc" msgid="1939028888570920661">"ದೋಷದಿಂದ ಚೇತರಿಸಿಕೊಳ್ಳಲು ವಿಫಲವಾಗಿದೆ.\nನೀವು ಆ್ಯಪ್‌ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು ಪ್ರಯತ್ನಿಸಬಹುದು ಅಥವಾ ಮರುಪ್ರಾಪ್ತಿ ಆಯ್ಕೆಗಳಲ್ಲಿ ಒಂದನ್ನು ಪ್ರಯತ್ನಿಸಬಹುದು."</string>
+    <string name="error_code" msgid="3585291676855383649">"ದೋಷ ಕೋಡ್‌: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"ಟರ್ಮಿನಲ್‌ ರನ್‌ ಆಗುತ್ತಿದೆ"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"ಟರ್ಮಿನಲ್‌ ಅನ್ನು ತೆರೆಯಲು ಕ್ಲಿಕ್‌ ಮಾಡಿ"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ಮುಚ್ಚಿರಿ"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ko/strings.xml b/android/TerminalApp/res/values-ko/strings.xml
index 897f2bf..077fbcd 100644
--- a/android/TerminalApp/res/values-ko/strings.xml
+++ b/android/TerminalApp/res/values-ko/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"터미널"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux 터미널 설치"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux 터미널을 실행하려면 네트워크를 통해 약 <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g>의 데이터를 다운로드해야 합니다.\n계속하시겠습니까?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Wi-Fi 연결 시 다운로드"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux 터미널 설치 중"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"완료 후 Linux 터미널이 시작됩니다"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"네트워크 문제로 인해 설치할 수 없습니다"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"설치할 수 없습니다. 다시 시도하세요."</string>
     <string name="action_settings" msgid="5729342767795123227">"설정"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"터미널 준비 중"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> 할당됨"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"최대 <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"취소"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"다시 시작하여 적용"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"포트 전달"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"포트 전달 구성"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"터미널에서 새 포트를 열려고 합니다"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"파티션 복구 옵션"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"최초 버전으로 변경"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"전체 삭제"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"터미널 재설정"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"데이터가 삭제됩니다."</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"확인"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"취소"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g>에 데이터 백업"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"백업에 실패하여 복구할 수 없음"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"복구 실패"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"백업 파일을 삭제할 수 없음"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"백업 데이터 삭제"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> 지우기"</string>
+    <string name="error_title" msgid="7196464038692913778">"복구 불가 오류"</string>
+    <string name="error_desc" msgid="1939028888570920661">"오류에서 복구할 수 없습니다.\n앱을 다시 시작하거나 복구 옵션 중 하나를 사용해 보세요."</string>
+    <string name="error_code" msgid="3585291676855383649">"오류 코드: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"설정"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"터미널이 실행 중입니다"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"터미널을 열려면 클릭하세요."</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"닫기"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ky/strings.xml b/android/TerminalApp/res/values-ky/strings.xml
index dde2665..09fc0e1 100644
--- a/android/TerminalApp/res/values-ky/strings.xml
+++ b/android/TerminalApp/res/values-ky/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Терминал"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux терминалын орнотуу"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux терминалын иштетүү үчүн болжол менен <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> жүктөп алышыңыз керек.\nУлантасызбы?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Wi-Fi жеткиликтүү болгондо жүктөп алуу"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux терминалы орнотулууда"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Бүткөндөн кийин Linux терминалы иштеп баштайт"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Тармактагы маселеден улам орнотулбай калды"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Орнотулган жок. Кайра аракет кылыңыз."</string>
     <string name="action_settings" msgid="5729342767795123227">"Параметрлер"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Терминал даярдалууда"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> дайындалды"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Эң көп <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Жокко чыгаруу"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Колдонуу үчүн өчүрүп күйгүзүү"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Оюкчаны багыттоо"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Оюкчаны багыттоону конфигурациялоо"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Терминал жаңы портту ачканы жатат"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Катуу диск бөлүгүн калыбына келтирүү параметрлери"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Баштапкы версияга өзгөртүү"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Баарын өчүрүү"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Терминалды баштапкы абалга келтирүү"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Маалымат өчүрүлөт"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Ырастоо"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Жокко чыгаруу"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Маалыматтын камдык көчүрмөсүн төмөнкүгө сактоо: <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Камдык көчүрмө сакталбагандыктан калыбына келтирилген жок"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Калыбына келтирилген жок"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Камдык көчүрмө файлы өчпөй жатат"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Маалыматтын камдык көчүрмөсүн өчүрүү"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Тазалоо: <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Оңдолбос ката"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Катадан кийин калыбына келтирилген жок.\nКолдонмону кайрадан ачып же аккаунтту калыбына келтирүү жолдорунун бирин колдонуп көрүңүз."</string>
+    <string name="error_code" msgid="3585291676855383649">"Ката коду: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Параметрлер"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Терминал иштеп жатат"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Терминалды ачуу үчүн чыкылдатыңыз"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Жабуу"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-lo/strings.xml b/android/TerminalApp/res/values-lo/strings.xml
index 3fff30b..0b15498 100644
--- a/android/TerminalApp/res/values-lo/strings.xml
+++ b/android/TerminalApp/res/values-lo/strings.xml
@@ -17,6 +17,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"ສະຖານີ"</string>
+    <string name="terminal_display" msgid="4810127497644015237">"ຈໍສະແດງຜົນ Terminal"</string>
+    <string name="terminal_input" msgid="4602512831433433551">"ເຄີເຊີ"</string>
+    <string name="empty_line" msgid="5012067143408427178">"ແຖວຫວ່າງເປົ່າ"</string>
     <string name="installer_title_text" msgid="500663060973466805">"ຕິດຕັ້ງເທີມິນອນ Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"ເພື່ອເປີດໃຊ້ເທີມິນອນ Linux, ທ່ານຕ້ອງດາວໂຫຼດຂໍ້ມູນປະມານ <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> ຜ່ານເຄືອຂ່າຍ.\nທ່ານຕ້ອງການດຳເນີນການຕໍ່ບໍ?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"ດາວໂຫຼດເມື່ອມີການເຊື່ອມຕໍ່ Wi-Fi"</string>
@@ -26,6 +29,7 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"ກຳລັງຕິດຕັ້ງເທີມິນອນ Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"ເທີມິນອນ Linux ຈະເລີ່ມຕົ້ນຫຼັງຈາກສຳເລັດ"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"ຕິດຕັ້ງບໍ່ສຳເລັດເນື່ອງຈາກບັນຫາເຄືອຂ່າຍ"</string>
+    <string name="installer_error_no_wifi" msgid="8631584648989718121">"ຕິດຕັ້ງບໍ່ສຳເລັດຍ້ອນວ່າ Wi-Fi ບໍ່ມີໃຫ້"</string>
     <string name="installer_error_unknown" msgid="1991780204241177455">"ຕິດຕັ້ງບໍ່ສໍາເລັດ. ກະລຸນາລອງໃໝ່."</string>
     <string name="action_settings" msgid="5729342767795123227">"ການຕັ້ງຄ່າ"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"ກຳລັງກະກຽມເທີມິນອນ"</string>
@@ -37,8 +41,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"ມອບໝາຍແລ້ວ <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"ສູງສຸດ <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"ຍົກເລີກ"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"ຣີສະຕາດເພື່ອນຳໃຊ້"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"ການ​ສົ່ງ​ຕໍ່​ຜອດ"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"ຕັ້ງຄ່າການ​ສົ່ງ​ຕໍ່​ຜອດ"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"ເທີມິນອນກຳລັງພະຍາຍາມເປີດ​ຜອດໃໝ່"</string>
@@ -53,8 +56,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ຂໍ້ມູນຈະຖືກລຶບ"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"ຢືນຢັນ"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"ຍົກເລີກ"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"ສຳຮອງຂໍ້ມູນໃສ່ <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ການກູ້ຄືນບໍ່ສຳເລັດຍ້ອນການສຳຮອງຂໍ້ມູນບໍ່ສຳເລັດ"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"ການກູ້ຄືນບໍ່ສຳເລັດ"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ບໍ່ສາມາດລຶບໄຟລ໌ສຳຮອງຂໍ້ມູນອອກໄດ້"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ລຶບການສຳຮອງຂໍ້ມູນອອກ"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"ອະນາໄມ <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"ຂໍ້ຜິດພາດທີ່ບໍ່ສາມາດກູ້ຄືນມາໄດ້"</string>
+    <string name="error_desc" msgid="1939028888570920661">"ການກູ້ຄືນຈາກຂໍ້ຜິດພາດບໍ່ສໍາເລັດ.\nທ່ານສາມາດລອງຣີສະຕາດແອັບ ຫຼື ລອງໜຶ່ງໃນຕົວເລືອກການກູ້ຄືນໄດ້."</string>
+    <string name="error_code" msgid="3585291676855383649">"ລະຫັດຂໍ້ຜິດພາດ: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"ການຕັ້ງຄ່າ"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"ເທີມິນອນກຳລັງເຮັດວຽກຢູ່"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"ຄລິກເພື່ອເປີດເທີມິນອນ"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ປິດ"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-lt/strings.xml b/android/TerminalApp/res/values-lt/strings.xml
index 4cb3326..96c144b 100644
--- a/android/TerminalApp/res/values-lt/strings.xml
+++ b/android/TerminalApp/res/values-lt/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminalas"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"„Linux“ terminalo diegimas"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Norėdami paleisti „Linux“ terminalą, per tinklą turite atsisiųsti apytiksliai <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> duomenų.\nAr norite tęsti?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Atsisiųsti, kai pasiekiamas „Wi-Fi“"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Diegiamas „Linux“ terminalas"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"„Linux“ terminalas bus paleistas pabaigus"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Nepavyko įdiegti dėl tinklo problemos"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Nepavyko įdiegti Bandykite dar kartą."</string>
     <string name="action_settings" msgid="5729342767795123227">"Nustatymai"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Ruošiamas terminalas"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Priskirta <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maks. <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Atšaukti"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"P. iš n., kad prit."</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Prievado numerio persiuntimas"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Prievado numerio persiuntimo konfigūravimas"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminalas bando atidaryti naują prievadą"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Duomenys bus ištrinti"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Patvirtinti"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Atšaukti"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Sukurti atsarginę duomenų kopiją čia: <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Nepavyko atkurti, nes nepavyko sukurti atsarginės kopijos"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Nepavyko atkurti"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Nepavyko pašalinti atsarginės kopijos failo"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Pašalinti atsarginės kopijos duomenis"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Išvalyti <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Nepataisoma klaida"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Nepavyko atkurti po klaidos.\nGalite bandyti iš naujo paleisti programą arba išbandyti vieną iš atkūrimo parinkčių."</string>
+    <string name="error_code" msgid="3585291676855383649">"Klaidos kodas: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Nustatymai"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminalas veikia"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Spustelėkite, kad atidarytumėte terminalą"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Uždaryti"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-lv/strings.xml b/android/TerminalApp/res/values-lv/strings.xml
index ceaaae6..253da6d 100644
--- a/android/TerminalApp/res/values-lv/strings.xml
+++ b/android/TerminalApp/res/values-lv/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminālis"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux termināļa instalēšana"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Lai palaistu Linux termināli, jums jālejupielādē aptuveni <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> datu, izmantojot tīklu.\nVai vēlaties turpināt?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Lejupielādēt, kad ir pieejams Wi-Fi savienojums"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Notiek Linux termināļa instalēšana…"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux terminālis tiks palaists pēc pabeigšanas"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Tīkla problēmas dēļ neizdevās instalēt"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Neizdevās instalēt. Mēģiniet vēlreiz."</string>
     <string name="action_settings" msgid="5729342767795123227">"Iestatījumi"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Notiek termināļa sagatavošana."</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Piešķirtais lielums: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maksimālais lielums: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Atcelt"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Restartēt un lietot"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Porta pārsūtīšana"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfigurēt porta pārsūtīšanu"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminālis mēģina atvērt jaunu portu"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Nodalījuma atkopšanas opcijas"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Mainīšana uz sākotnējo versiju"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Noņemt visu"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Termināļa atiestatīšana"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Dati tiks izdzēsti"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Apstiprināt"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Atcelt"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Dublēt datus ceļā <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Atkopšana neizdevās, jo neizdevās dublēšana"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Atkopšana neizdevās"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Nevar noņemt dublējuma failu"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Dublējuma datu noņemšana"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Vietas atbrīvošana ceļā <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Neatkopjama kļūda"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Neizdevās veikt atkopšanu pēc kļūdas.\nVarat restartēt lietotni vai izmantot kādu no atkopšanas opcijām."</string>
+    <string name="error_code" msgid="3585291676855383649">"Kļūdas kods: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Iestatījumi"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminālis darbojas"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Noklikšķiniet, lai atvērtu termināli"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Aizvērt"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-mk/strings.xml b/android/TerminalApp/res/values-mk/strings.xml
index 86fd666..0fb2296 100644
--- a/android/TerminalApp/res/values-mk/strings.xml
+++ b/android/TerminalApp/res/values-mk/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Терминал"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Инсталирајте го Linux-терминалот"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"За да го стартувате Linux-терминалот, треба да преземете податоци од приближно <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> преку мрежата.\nДали сакате да продолжите?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Преземете кога има Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-терминалот се инсталира"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux-терминалот ќе се стартува по довршувањето"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Не можеше да се инсталира поради проблем со мрежата"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Не можеше да се инсталира. Обидете се повторно."</string>
     <string name="action_settings" msgid="5729342767795123227">"Поставки"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Терминалот се подготвува"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Доделено: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Макс.: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Откажи"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Рестарт. за примена"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Проследување порти"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Конфигурирајте го проследувањето порти"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Терминалот се обидува да отвори нова порта"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Опции за враќање партиции"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Промени на првата верзија"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Отстрани ги сите"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Ресетирајте го терминалот"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Податоците ќе се избришат"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Потврди"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Откажи"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Направете бекап на податоците на <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Враќањето не успеа поради неуспешен бекап"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Враќањето не успеа"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Не може да се отстрани датотеката со бекап"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Отстранете ги податоците од бекапот"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Ослободете простор на <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Непоправлива грешка"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Грешката не можеше да се поправи.\nМоже да се обидете да ја рестартирате апликацијата или да испробате некоја од опциите за враќање."</string>
+    <string name="error_code" msgid="3585291676855383649">"Код за грешка: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Поставки"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Терминалот е активен"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Кликнете за да го отворите терминалот"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Затвори"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ml/strings.xml b/android/TerminalApp/res/values-ml/strings.xml
index 232aba7..0911d01 100644
--- a/android/TerminalApp/res/values-ml/strings.xml
+++ b/android/TerminalApp/res/values-ml/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"ടെർമിനൽ"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux ടെർമിനൽ ഇൻസ്റ്റാൾ ചെയ്യുക"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux ടെർമിനൽ ലോഞ്ച് ചെയ്യാൻ, നിങ്ങൾക്ക് നെറ്റ്‌വർക്കിലൂടെ ഏകദേശം <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> ഡാറ്റ ഡൗൺലോഡ് ചെയ്യേണ്ടതുണ്ട്.\nനിങ്ങൾക്ക് തുടരണോ?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"വൈഫൈ ലഭ്യമാകുമ്പോൾ ഡൗൺലോഡ് ചെയ്യുക"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ടെർമിനൽ ഇൻസ്റ്റാൾ ചെയ്യുന്നു"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"പൂർത്തിയായിക്കഴിഞ്ഞാൽ, Linux ടെർമിനൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ ആരംഭിക്കും"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"നെറ്റ്‌വർക്കുമായി ബന്ധപ്പെട്ട് പ്രശ്‌നമുണ്ടായതിനാൽ ഇൻസ്റ്റാൾ ചെയ്യാനായില്ല"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"ഇൻസ്റ്റാൾ ചെയ്യാനായില്ല. വീണ്ടും ശ്രമിക്കുക."</string>
     <string name="action_settings" msgid="5729342767795123227">"ക്രമീകരണം"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"ടെർമിനൽ തയ്യാറാക്കുന്നു"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> അസൈൻ ചെയ്‌തു"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"പരമാവധി <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"റദ്ദാക്കുക"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"പ്രയോഗിക്കാൻ റീസ്റ്റാർട്ട് ചെയ്യൂ"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"പോർട്ട് ഫോർവേഡിങ്"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"പോർട്ട് ഫോർവേഡിങ് കോൺഫിഗർ ചെയ്യുക"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"ഒരു പുതിയ പോർട്ട് തുറക്കാൻ ടെർമിനൽ ശ്രമിക്കുന്നു"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ഡാറ്റ ഇല്ലാതാക്കും"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"സ്ഥിരീകരിക്കുക"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"റദ്ദാക്കുക"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g> എന്നതിലേക്ക് ഡാറ്റ ബാക്കപ്പെടുക്കുക"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ബാക്കപ്പ് ചെയ്യാനാകാത്തതിനാൽ വീണ്ടെടുക്കാനായില്ല"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"വീണ്ടെടുക്കാനായില്ല"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ബാക്കപ്പ് ഫയൽ നീക്കം ചെയ്യാനാകില്ല"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ബാക്കപ്പ് ഡാറ്റ നീക്കം ചെയ്യുക"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> ക്ലീനപ്പ് ചെയ്യുക"</string>
+    <string name="error_title" msgid="7196464038692913778">"വീണ്ടെടുക്കാനാകാത്ത വിധത്തിലാക്കിയ പിശക്"</string>
+    <string name="error_desc" msgid="1939028888570920661">"ഒരു പിശകിൽ നിന്ന് വീണ്ടെടുക്കാനായില്ല.\nനിങ്ങൾക്ക് ആപ്പ് റീസ്‌റ്റാർട്ട് ചെയ്യാൻ ശ്രമിക്കാം അല്ലെങ്കിൽ വീണ്ടെടുക്കൽ ഓപ്‌ഷനുകളിലൊന്ന് ശ്രമിച്ചുനോക്കാം."</string>
+    <string name="error_code" msgid="3585291676855383649">"പിശക് കോഡ്: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"ക്രമീകരണം"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"ടെർമിനൽ റൺ ചെയ്യുന്നു"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"ടെർമിനൽ തുറക്കാൻ ക്ലിക്ക് ചെയ്യുക"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"അടയ്ക്കുക"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-mn/strings.xml b/android/TerminalApp/res/values-mn/strings.xml
index 63a8e76..23cb782 100644
--- a/android/TerminalApp/res/values-mn/strings.xml
+++ b/android/TerminalApp/res/values-mn/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Терминал"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux terminal-г суулгах"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux терминалыг эхлүүлэхийн тулд та сүлжээгээр барагцаагаар <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g>-н өгөгдөл татах шаардлагатай.\nТа үргэлжлүүлэх үү?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Wi-Fi боломжтой үед татах"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux терминалыг суулгаж байна"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Дууссаны дараа Linux терминал эхэлнэ"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Сүлжээний асуудлын улмаас суулгаж чадсангүй"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Суулгаж чадсангүй. Дахин оролдоно уу."</string>
     <string name="action_settings" msgid="5729342767795123227">"Тохиргоо"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Терминалыг бэлтгэж байна"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> оноосон"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Дээд тал нь <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Цуцлах"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Дахин эхлүүлж ашигла"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Порт дамжуулах"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Порт дамжуулахыг тохируулах"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Терминал шинэ порт нээхээр оролдож байна"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Хуваалтыг сэргээх сонголтууд"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Анхны хувилбар луу өөрчлөх"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Бүгдийг хасах"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Терминалыг шинэчлэх"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Өгөгдлийг устгана"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Баталгаажуулах"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Цуцлах"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Өгөгдлийг <xliff:g id="PATH">/mnt/backup</xliff:g>-д нөөцлөх"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Нөөцлөлт амжилтгүй болсон тул сэргээж чадсангүй"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Сэргээж чадсангүй"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Нөөц файлыг хасах боломжгүй"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Нөөц өгөгдлийг хасах"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g>-г цэвэрлэх"</string>
+    <string name="error_title" msgid="7196464038692913778">"Сэргээх боломжгүй алдаа"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Алдааны улмаас сэргээж чадсангүй.\nТа аппыг дахин эхлүүлэхээр оролдох эсвэл сэргээх сонголтуудын аль нэгийг туршиж үзэх боломжтой."</string>
+    <string name="error_code" msgid="3585291676855383649">"Алдааны код: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Тохиргоо"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Терминал ажиллаж байна"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Терминалыг нээхийн тулд товшино уу"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Хаах"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-mr/strings.xml b/android/TerminalApp/res/values-mr/strings.xml
index 854af10..e084c1e 100644
--- a/android/TerminalApp/res/values-mr/strings.xml
+++ b/android/TerminalApp/res/values-mr/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"टर्मिनल"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux टर्मिनल इंस्टॉल करा"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux टर्मिनल लाँच करण्यासाठी, तुम्ही नेटवर्कवरून अंदाजे <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> डेटा डाउनलोड करणे आवश्यक आहे.\nतुम्हाला पुढे सुरू ठेवायचे आहे का?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"वाय-फाय उपलब्ध असताना डाउनलोड करा"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux टर्मिनल इंस्टॉल करत आहे"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"पूर्ण झाल्यानंतर Linux टर्मिनल सुरू होईल"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"नेटवर्कच्या समस्येमुळे इंस्टॉल करता आले नाही"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"इंस्टॉल करता आले नाही. पुन्हा प्रयत्न करा."</string>
     <string name="action_settings" msgid="5729342767795123227">"सेटिंग्ज"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"टर्मिनल तयार करत आहे"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> असाइन केले आहे"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"कमाल <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"रद्द करा"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"लागू करण्यासाठी रीस्टार्ट करा"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"पोर्ट फॉरवर्डिंग"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"पोर्ट फॉरवर्डिंग कॉन्फिगर करा"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"टर्मिनल नवीन पोर्ट उघडण्याचा प्रयत्न करत आहे"</string>
@@ -53,8 +60,22 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"डेटा हटवला जाईल"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"कन्फर्म करा"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"रद्द करा"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g> वर डेटाचा बॅकअप घ्या."</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"बॅकअप घेता आला नसल्यामुळे, रिकव्हरी करता आली नाही"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"रिकव्हरी करता आली नाही"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"बॅकअप फाइल काढून टाकू शकत नाही"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"बॅकअप डेटा काढून टाका"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"क्लीन अप करा <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"सेटिंग्ज"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"टर्मिनल रन होत आहे"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"टर्मिनल उघडण्यासाठी क्लिक करा"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"बंद करा"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ms/strings.xml b/android/TerminalApp/res/values-ms/strings.xml
index fcbe880..b845724 100644
--- a/android/TerminalApp/res/values-ms/strings.xml
+++ b/android/TerminalApp/res/values-ms/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Pasang terminal Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Untuk melancarkan terminal Linux, anda perlu memuat turun anggaran <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> data melalui rangkaian.\nAdakah anda mahu meneruskan proses?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Muat turun apabila Wi-Fi tersedia"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Memasang terminal Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Terminal Linux akan dimulakan selepas selesai"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Gagal melakukan pemasangan disebabkan oleh masalah rangkaian"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Gagal melakukan pemasangan. Cuba lagi."</string>
     <string name="action_settings" msgid="5729342767795123227">"Tetapan"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Menyediakan terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> ditetapkan"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maksimum <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Batal"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Mulakan semula untuk gunakan"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Kiriman Semula Port"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfigurasikan kiriman semula port"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal sedang cuba membuka port baharu"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Data akan dipadamkan"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Sahkan"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Batal"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Sandarkan data kepada <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Pemulihan gagal kerana sandaran telah gagal"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Pemulihan gagal"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Tidak dapat mengalih keluar fail sandaran"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Alih keluar data sandaran"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Bersihkan <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Ralat yang Tidak dapat dipulihkan"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Gagal dipulihkan daripada ralat.\nAnda boleh cuba memulakan semula apl atau cuba salah satu pilihan pemulihan."</string>
+    <string name="error_code" msgid="3585291676855383649">"Kod ralat: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Tetapan"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal sedang dijalankan"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Klik untuk membuka terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Tutup"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-my/strings.xml b/android/TerminalApp/res/values-my/strings.xml
index 7793026..d76b98d 100644
--- a/android/TerminalApp/res/values-my/strings.xml
+++ b/android/TerminalApp/res/values-my/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"တာမီနယ်"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux တာမီနယ် ထည့်သွင်းခြင်း"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux တာမီနယ် စတင်ရန် ကွန်ရက်ပေါ်တွင် ဒေတာ <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> ခန့်ကို ဒေါင်းလုဒ်လုပ်ရမည်။\nရှေ့ဆက်လိုပါသလား။"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Wi-Fi ရသည့်အခါ ဒေါင်းလုဒ်လုပ်ရန်"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux တာမီနယ်ကို ထည့်သွင်းနေသည်"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"ပြီးသွားပါက Linux တာမီနယ်ကို စတင်ပါမည်"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"ကွန်ရက်ပြဿနာကြောင့် ထည့်သွင်း၍ မရလိုက်ပါ"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"ထည့်သွင်း၍ မရလိုက်ပါ။ ထပ်စမ်းကြည့်ပါ။"</string>
     <string name="action_settings" msgid="5729342767795123227">"ဆက်တင်များ"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"တာမီနယ်ကို ပြင်ဆင်နေသည်"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> သတ်မှတ်ထားသည်"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"အများဆုံး <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"မလုပ်တော့"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"သုံးရန် ပြန်စပါ"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"ပို့တ်ထပ်ဆင့်ပို့ခြင်း"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"ပို့တ်ထပ်ဆင့်ပို့ခြင်းကို စီစဉ်သတ်မှတ်ပါ"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"တာမီနယ်က ပို့တ်အသစ်ကိုဖွင့်ရန် ကြိုးပမ်းနေသည်"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ဒေတာကို ဖျက်ပါမည်"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"အတည်ပြုရန်"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"မလုပ်တော့"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g> တွင် ဒေတာအရန်သိမ်းရန်"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"အရန်သိမ်းခြင်း မအောင်မြင်သဖြင့် ပြန်လည်ရယူ၍ မရလိုက်ပါ"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"ပြန်လည်ရယူ၍ မရလိုက်ပါ"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"မိတ္တူဖိုင်ကို ဖယ်ရှား၍မရပါ"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"အရန်ဒေတာ ဖယ်ရှားခြင်း"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> ရှင်းထုတ်ဖယ်ရှားရန်"</string>
+    <string name="error_title" msgid="7196464038692913778">"ပြန်ပြင်၍မရသော အမှား"</string>
+    <string name="error_desc" msgid="1939028888570920661">"အမှားကို ပြန်ပြင်၍မရလိုက်ပါ။\nအက်ပ်ကို ပြန်စနိုင်သည် (သို့) ပြန်ရယူရေး နည်းလမ်းများထဲမှ တစ်ခုကို စမ်းကြည့်နိုင်သည်။"</string>
+    <string name="error_code" msgid="3585291676855383649">"အမှားကုဒ်- <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"ဆက်တင်များ"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"တာမီနယ်ကို ဖွင့်ထားသည်"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"တာမီနယ်ဖွင့်ရန် နှိပ်ပါ"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ပိတ်ရန်"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-nb/strings.xml b/android/TerminalApp/res/values-nb/strings.xml
index 3178000..d0adf2f 100644
--- a/android/TerminalApp/res/values-nb/strings.xml
+++ b/android/TerminalApp/res/values-nb/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Installer Linux-terminalen"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"For å starte Linux-terminalen må du laste ned omtrent <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> data via nettverket.\nVil du fortsette?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Last ned når wifi er tilgjengelig"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installerer Linux-terminalen"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux-terminalen startes når prosessen er ferdig"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Kunne ikke installere på grunn av et nettverksproblem"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Installasjonen mislyktes. Prøv på nytt."</string>
     <string name="action_settings" msgid="5729342767795123227">"Innstillinger"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Forbereder terminalen"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> er tildelt"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> maks"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Avbryt"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Omstart for å bruke"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Viderekobling av porter"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfigurer viderekobling av porter"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminalen prøver å åpne en ny port"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Gjenopprettingsalternativer for partisjoner"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Bytt til første versjon"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Fjern alle"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Tilbakestill terminalen"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Dataene slettes"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Bekreft"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Avbryt"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Sikkerhetskopier data til <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Gjenopprettingen mislyktes fordi sikkerhetskopieringen mislyktes"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Gjenopprettingen mislyktes"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Kan ikke fjerne sikkerhetskopifilen"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Fjern sikkerhetskopierte data"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Rydd opp <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Ugjenopprettelig feil"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Kunne ikke gjenopprette etter en feil.\nDu kan prøve å starte appen på nytt eller prøve et av gjenopprettingsalternativene."</string>
+    <string name="error_code" msgid="3585291676855383649">"Feilkode: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Innstillinger"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminalen kjører"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Klikk for å åpne terminalen"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Lukk"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ne/strings.xml b/android/TerminalApp/res/values-ne/strings.xml
index 3646528..a7806a6 100644
--- a/android/TerminalApp/res/values-ne/strings.xml
+++ b/android/TerminalApp/res/values-ne/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"टर्मिनल"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux टर्मिनल इन्स्टल गर्नुहोस्"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux टर्मिनल लन्च गर्नका निम्ति, तपाईंले नेटवर्क प्रयोग गरेर लगभग <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> जति डेटा डाउनलोड गर्नु पर्ने हुन्छ।\nतपाईं अघि बढ्नुहुन्छ?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Wi-Fi उपलब्ध हुँदा डाउनलोड गर्नुहोस्"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux टर्मिनल इन्स्टल गरिँदै छ"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"पूरा भइसकेपछि Linux टर्मिनल सुरु हुने छ"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"नेटवर्कसम्बन्धी समस्याका कारण इन्स्टल गर्न सकिएन"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"इन्स्टल गर्न सकिएन। फेरि प्रयास गर्नुहोस्।"</string>
     <string name="action_settings" msgid="5729342767795123227">"सेटिङ"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"टर्मिनल तयार पारिँदै छ"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"असाइन गरिएको: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"अधिकतम <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"रद्द गर्नुहोस्"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"परिवर्तन लागू गर्न रिस्टार्ट गर्नुहोस्"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"पोर्ट फर्वार्डिङ"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"पोर्ट फर्वार्डिङ कन्फिगर गर्नुहोस्"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"टर्मिनलले एउटा नयाँ पोर्ट खोल्न खोजिरहेको छ"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"पार्टिसन रिकभरीसम्बन्धी विकल्पहरू"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"यो संस्करण बदलेर सुरुको संस्करण बनाउनुहोस्"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"सबै हटाउनुहोस्"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"टर्मिनल रिसेट गर्नुहोस्"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"डेटा मेटाइने छ"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"पुष्टि गर्नुहोस्"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"रद्द गर्नुहोस्"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g> मा डेटा ब्याकअप गर्नुहोस्"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ब्याकअप गर्न नसकिएकाले रिकभर गर्न सकिएन"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"रिकभर गर्न सकिएन"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ब्याकअप फाइल हटाउन सकिएन"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ब्याकअप डेटा हटाउनुहोस्"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> हटाउनुहोस्"</string>
+    <string name="error_title" msgid="7196464038692913778">"सच्याउन नमिल्ने त्रुटि"</string>
+    <string name="error_desc" msgid="1939028888570920661">"कुनै त्रुटि सच्याउन सकिएन।\nतपाईं यो एप रिस्टार्ट गरी हेर्न वा त्रुटि सच्याउने यीमध्ये कुनै पनि एउटा तरिका अपनाई हेर्न सक्नुहुन्छ।"</string>
+    <string name="error_code" msgid="3585291676855383649">"त्रुटिको कोड: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"सेटिङ"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"टर्मिनल चलिरहेको छ"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"यो टर्मिनल खोल्न क्लिक गर्नुहोस्"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"बन्द गर्नुहोस्"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-nl/strings.xml b/android/TerminalApp/res/values-nl/strings.xml
index c06ea33..e012578 100644
--- a/android/TerminalApp/res/values-nl/strings.xml
+++ b/android/TerminalApp/res/values-nl/strings.xml
@@ -17,6 +17,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <string name="terminal_display" msgid="4810127497644015237">"Terminalweergave"</string>
+    <string name="terminal_input" msgid="4602512831433433551">"Cursor"</string>
+    <string name="empty_line" msgid="5012067143408427178">"Lege regel"</string>
     <string name="installer_title_text" msgid="500663060973466805">"Linux-terminal installeren"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Als je Linux-terminal wilt starten, moet je ongeveer <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> aan data downloaden via het netwerk.\nWil je doorgaan?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Downloaden als wifi beschikbaar is"</string>
@@ -26,6 +29,7 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-terminal installeren"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux-terminal wordt gestart na afronding"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Kan niet installeren vanwege het netwerkprobleem"</string>
+    <string name="installer_error_no_wifi" msgid="8631584648989718121">"Kan niet installeren omdat wifi niet beschikbaar is"</string>
     <string name="installer_error_unknown" msgid="1991780204241177455">"Installatie mislukt. Probeer het opnieuw."</string>
     <string name="action_settings" msgid="5729342767795123227">"Instellingen"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Terminal voorbereiden"</string>
@@ -37,8 +41,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> toegewezen"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> max."</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Annuleren"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Opnieuw opstarten om toe te passen"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Poort­doorschakeling"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Poortdoorschakeling instellen"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal probeert een nieuwe poort te openen"</string>
@@ -53,8 +56,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Gegevens worden verwijderd"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Bevestigen"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Annuleren"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Back-up van gegevens maken in <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Herstel is mislukt omdat de back-up is mislukt"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Herstel is mislukt"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Kan back-upbestand niet verwijderen"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Back-upgegevens verwijderen"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> opschonen"</string>
+    <string name="error_title" msgid="7196464038692913778">"Onherstelbare fout"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Kan niet herstellen van een fout.\nJe kunt de app opnieuw opstarten of een van de herstelopties proberen."</string>
+    <string name="error_code" msgid="3585291676855383649">"Foutcode: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Instellingen"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal wordt uitgevoerd"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Klik om de terminal te openen"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Sluiten"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-or/strings.xml b/android/TerminalApp/res/values-or/strings.xml
index 00c9f85..2324313 100644
--- a/android/TerminalApp/res/values-or/strings.xml
+++ b/android/TerminalApp/res/values-or/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"ଟର୍ମିନାଲ"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux ଟର୍ମିନାଲକୁ ଇନଷ୍ଟଲ କରନ୍ତୁ"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux ଟର୍ମିନାଲ ଲଞ୍ଚ କରିବାକୁ ଆପଣଙ୍କୁ ନେଟୱାର୍କ ମାଧ୍ୟମରେ ପ୍ରାୟ <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g>ର ଡାଟା ଡାଉନଲୋଡ କରିବାକୁ ହେବ।\nଆପଣ ଆଗକୁ ବଢ଼ିବେ?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"ୱାଇ-ଫାଇ ଉପଲବ୍ଧ ହେଲେ ଡାଉନଲୋଡ କରନ୍ତୁ"</string>
@@ -26,19 +32,20 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ଟର୍ମିନାଲକୁ ଇନଷ୍ଟଲ କରାଯାଉଛି"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"ପ୍ରକ୍ରିୟା ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପରେ Linux ଟର୍ମିନାଲ ଆରମ୍ଭ ହେବ"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"ନେଟୱାର୍କ ସମସ୍ୟା ଯୋଗୁଁ ଇନଷ୍ଟଲ କରିବାରେ ବିଫଳ ହୋଇଛି"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"ଇନଷ୍ଟଲ କରିବାରେ ବିଫଳ ହୋଇଛି। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="action_settings" msgid="5729342767795123227">"ସେଟିଂସ"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"ଟର୍ମିନାଲକୁ ପ୍ରସ୍ତୁତ କରାଯାଉଛି"</string>
     <string name="vm_stop_message" msgid="3978349856095529255">"Terminalକୁ ବନ୍ଦ କରାଯାଉଛି"</string>
-    <string name="vm_error_message" msgid="5231867246177661525">"Terminal କ୍ରାସ ହୋଇଛି"</string>
+    <string name="vm_error_message" msgid="5231867246177661525">"ଟର୍ମିନାଲ କ୍ରାସ ହୋଇଛି"</string>
     <string name="settings_disk_resize_title" msgid="1545791169419914600">"ଡିସ୍କ ରିସାଇଜ କରନ୍ତୁ"</string>
     <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"ରିସାଇଜ କରନ୍ତୁ / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"ଡିସ୍କ ସାଇଜ ସେଟ ହୋଇଛି"</string>
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> ଆସାଇନ କରାଯାଇଛି"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"ସର୍ବାଧିକ <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"ବାତିଲ କରନ୍ତୁ"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"ଲାଗୁ ପାଇଁ ରିଷ୍ଟାର୍ଟ"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"ପୋର୍ଟ ଫରୱାର୍ଡିଂ"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"ପୋର୍ଟ ଫରୱାର୍ଡିଂକୁ କନଫିଗର କରନ୍ତୁ"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"ଏକ ନୂଆ ପୋର୍ଟ ଖୋଲିବାକୁ ଟର୍ମିନାଲ ଅନୁରୋଧ କରୁଛି"</string>
@@ -49,15 +56,26 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"ପାର୍ଟିସନ ରିକଭରି ବିକଳ୍ପ"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"ପ୍ରାରମ୍ଭିକ ଭର୍ସନକୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"ସବୁ କାଢ଼ି ଦିଅନ୍ତୁ"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"ଟର୍ମିନାଲ ରିସେଟ କରନ୍ତୁ"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ଡାଟାକୁ ଡିଲିଟ କରାଯିବ"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"ବାତିଲ କରନ୍ତୁ"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g>ରେ ଡାଟାର ବେକଅପ ନିଅନ୍ତୁ"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ବେକଅପ ବିଫଳ ହୋଇଥିବା ଯୋଗୁଁ ରିକଭରି ବିଫଳ ହୋଇଛି"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"ରିକଭରି ବିଫଳ ହୋଇଛି"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ବେକଅପ ଫାଇଲକୁ କାଢ଼ି ଦିଆଯାଇପାରିବ ନାହିଁ"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ବେକଅପ ଡାଟାକୁ କାଢ଼ି ଦିଅନ୍ତୁ"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> ଖାଲି କରନ୍ତୁ"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"ସେଟିଂସ"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"ଟର୍ମିନାଲ ଚାଲୁ ଅଛି"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"ଟର୍ମିନାଲ ଖୋଲିବାକୁ କ୍ଲିକ କରନ୍ତୁ"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ବନ୍ଦ କରନ୍ତୁ"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-pa/strings.xml b/android/TerminalApp/res/values-pa/strings.xml
index 47f7aa6..9d895cc 100644
--- a/android/TerminalApp/res/values-pa/strings.xml
+++ b/android/TerminalApp/res/values-pa/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"ਟਰਮੀਨਲ"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux ਟਰਮੀਨਲ ਐਪ ਸਥਾਪਤ ਕਰੋ"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux ਟਰਮੀਨਲ ਐਪ ਨੂੰ ਲਾਂਚ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਨੈੱਟਵਰਕ \'ਤੇ ਲਗਭਗ <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> ਡਾਟਾ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।\nਕੀ ਅੱਗੇ ਵਧਣਾ ਹੈ?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"ਵਾਈ-ਫਾਈ ਦੇ ਉਪਲਬਧ ਹੋਣ \'ਤੇ ਡਾਊਨਲੋਡ ਕਰੋ"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ਟਰਮੀਨਲ ਐਪ ਸਥਾਪਤ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"ਪ੍ਰਕਿਰਿਆ ਪੂਰੀ ਹੋਣ ਤੋਂ ਬਾਅਦ, Linux ਟਰਮੀਨਲ ਐਪ ਸ਼ੁਰੂ ਹੋ ਜਾਵੇਗੀ"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"ਨੈੱਟਵਰਕ ਸੰਬੰਧੀ ਸਮੱਸਿਆ ਕਾਰਨ ਸਥਾਪਤ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"ਸਥਾਪਤ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
     <string name="action_settings" msgid="5729342767795123227">"ਸੈਟਿੰਗਾਂ"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"ਟਰਮੀਨਲ ਨੂੰ ਤਿਆਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> ਜ਼ਿੰਮੇ ਲਗਾਇਆ ਗਿਆ"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"ਵੱਧੋ-ਵੱਧ <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"ਰੱਦ ਕਰੋ"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"ਲਾਗੂ ਕਰਨ ਲਈ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"ਪੋਰਟ ਫਾਰਵਰਡਿੰਗ"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"ਪੋਰਟ ਫਾਰਵਰਡਿੰਗ ਦਾ ਸੰਰੂਪਣ ਕਰੋ"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"ਟਰਮੀਨਲ ਇੱਕ ਨਵੇਂ ਪੋਰਟ ਨੂੰ ਖੋਲ੍ਹਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ਡਾਟਾ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"ਤਸਦੀਕ ਕਰੋ"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"ਰੱਦ ਕਰੋ"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g> \'ਤੇ ਡਾਟੇ ਦਾ ਬੈਕਅੱਪ ਲਓ"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ਮੁੜ-ਹਾਸਲ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ, ਕਿਉਂਕਿ ਬੈਕਅੱਪ ਅਸਫਲ ਰਿਹਾ"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"ਮੁੜ-ਹਾਸਲ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ਬੈਕਅੱਪ ਫ਼ਾਈਲ ਹਟਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ਬੈਕਅੱਪ ਡਾਟਾ ਹਟਾਓ"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> ਨੂੰ ਕਲੀਨ ਅੱਪ ਕਰੋ"</string>
+    <string name="error_title" msgid="7196464038692913778">"ਮੁੜ-ਹਾਸਲ ਨਾ ਹੋਣਯੋਗ ਡਾਟੇ ਸੰਬੰਧੀ ਗੜਬੜ"</string>
+    <string name="error_desc" msgid="1939028888570920661">"ਗੜਬੜ ਨੂੰ ਠੀਕ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।\nਤੁਸੀਂ ਐਪ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਸਕਦੇ ਹੋ ਜਾਂ ਰਿਕਵਰੀ ਦੇ ਵਿਕਲਪ ਵਿੱਚੋਂ ਕਿਸੇ ਇੱਕ ਨੂੰ ਅਜ਼ਮਾ ਕੇ ਦੇਖ ਸਕਦੇ ਹੋ।"</string>
+    <string name="error_code" msgid="3585291676855383649">"ਗੜਬੜ ਕੋਡ: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"ਸੈਟਿੰਗਾਂ"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"ਟਰਮੀਨਲ ਚਾਲੂ ਹੈ"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"ਟਰਮੀਨਲ ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ ਕਲਿੱਕ ਕਰੋ"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ਬੰਦ ਕਰੋ"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-pl/strings.xml b/android/TerminalApp/res/values-pl/strings.xml
index 0f561c8..2124dac 100644
--- a/android/TerminalApp/res/values-pl/strings.xml
+++ b/android/TerminalApp/res/values-pl/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Zainstaluj terminal Linuxa"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Aby uruchomić terminal Linuxa, musisz pobrać przez sieć około <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> danych.\nChcesz kontynuować?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Pobierz, gdy będzie dostępna sieć Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instaluję terminal Linuxa"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Po zakończeniu zostanie uruchomiony terminal Linuxa"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Nie udało się zainstalować z powodu problemu z siecią"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Nie udało się zainstalować. Spróbuj ponownie."</string>
     <string name="action_settings" msgid="5729342767795123227">"Ustawienia"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Przygotowuję terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Przypisano <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maksymalny rozmiar <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Anuluj"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Uruchom ponownie"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Przekierowanie portów"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Skonfiguruj przekierowanie portów"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal próbuje otworzyć nowy port"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Dane zostaną usunięte"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Potwierdź"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Anuluj"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Utwórz kopię zapasową w lokalizacji <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Nie udało się przywrócić danych z powodu błędu kopii zapasowej"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Nie udało się przywrócić"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Nie udało się usunąć pliku kopii zapasowej"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Usuń dane kopii zapasowej"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Zwolnij miejsce w lokalizacji <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Nieodwracalny błąd"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Nie udało się przywrócić aplikacji po błędzie.\nMożesz spróbować ponownie ją uruchomić lub skorzystać z jednej z opcji odzyskiwania."</string>
+    <string name="error_code" msgid="3585291676855383649">"Kod błędu: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Ustawienia"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal jest uruchomiony"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Kliknij, aby otworzyć terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Zamknij"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-pt-rPT/strings.xml b/android/TerminalApp/res/values-pt-rPT/strings.xml
index ab08a1d..a221586 100644
--- a/android/TerminalApp/res/values-pt-rPT/strings.xml
+++ b/android/TerminalApp/res/values-pt-rPT/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instale o terminal do Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Para iniciar o terminal do Linux, tem de transferir cerca de <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> de dados através da rede.\nQuer continuar?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Transferir quando estiver disponível uma rede Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"A instalar o terminal do Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"O terminal do Linux vai ser iniciado após a conclusão"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Falha ao instalar devido a um problema de rede"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Falha ao instalar. Tente novamente."</string>
     <string name="action_settings" msgid="5729342767795123227">"Definições"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"A preparar o terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Tamanho atribuído: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Tamanho máx.: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Cancelar"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Reiniciar p/ aplicar"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Encaminhamento de portas"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configure o encaminhamento de portas"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"O terminal está a tentar abrir uma nova porta"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Os dados vão ser eliminados"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirmar"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Cancelar"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Fazer uma cópia de segurança dos dados para <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"A recuperação falhou porque ocorreu uma falha na cópia de segurança"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Falha na recuperação"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Não é possível remover o ficheiro da cópia de segurança"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Remova os dados da cópia de segurança"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Limpe <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Erro irrecuperável"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Falha ao recuperar de um erro.\nPode tentar reiniciar a app ou experimentar uma das opções de recuperação."</string>
+    <string name="error_code" msgid="3585291676855383649">"Código de erro: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Definições"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"O terminal está em execução"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Clique para abrir o terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Fechar"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-pt/strings.xml b/android/TerminalApp/res/values-pt/strings.xml
index 5848f9a..52523a7 100644
--- a/android/TerminalApp/res/values-pt/strings.xml
+++ b/android/TerminalApp/res/values-pt/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instalar terminal Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Para iniciar o terminal Linux, é necessário baixar cerca de <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> de dados pela rede.\nVocê quer continuar?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Baixar quando o Wi-Fi estiver disponível"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instalando terminal Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"O terminal Linux será iniciado após a instalação"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Falha ao instalar devido a um problema de rede"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Falha ao instalar. Tente de novo."</string>
     <string name="action_settings" msgid="5729342767795123227">"Configurações"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Preparando o terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Atribuído: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Máximo: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Cancelar"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Reiniciar para aplicar"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Encaminhamento de portas"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configurar o encaminhamento de portas"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"O terminal está tentando abrir uma nova porta"</string>
@@ -49,15 +56,26 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opções de recuperação da partição"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Mudar para a versão inicial"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Remover tudo"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Redefinir terminal"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Os dados serão excluídos"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirmar"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Cancelar"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Fazer backup dos dados em <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"A recuperação falhou porque o backup falhou"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Falha na recuperação"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Não é possível remover o arquivo de backup"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Remover dados de backup"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Limpar <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Configurações"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"O terminal está em execução"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Clique para abrir o terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Fechar"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ro/strings.xml b/android/TerminalApp/res/values-ro/strings.xml
index 0a4e791..1d015a8 100644
--- a/android/TerminalApp/res/values-ro/strings.xml
+++ b/android/TerminalApp/res/values-ro/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instalează terminalul Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Pentru a lansa terminalul Linux, trebuie să descarci aproximativ <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> de date prin rețea.\nVrei să continui?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Descarcă atunci când este disponibilă o conexiune Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Se instalează terminalul Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Terminalul Linux va porni după încheiere"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Nu s-a putut instala din cauza unei probleme de rețea"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Nu s-a instalat. Încearcă din nou."</string>
     <string name="action_settings" msgid="5729342767795123227">"Setări"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Se pregătește terminalul"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"S-au alocat <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> max."</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Anulează"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Repornește să aplici"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Redirecționare de port"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Configurează redirecționarea de port"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminalul încearcă să deschidă un nou port"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opțiuni de recuperare a partițiilor"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Schimbă la versiunea inițială"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Elimină-le pe toate"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Resetează terminalul"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Datele se vor șterge"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Confirmă"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Anulează"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Fă backup datelor în <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Nu s-a putut recupera deoarece backupul nu a reușit"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Nu s-a putut recupera"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Nu se poate elimina fișierul de backup"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Elimină datele din backup"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Curăță <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Eroare ireversibilă"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Nu s-a putut recupera în urma unei erori.\nRepornește aplicația sau încearcă una dintre opțiunile de recuperare."</string>
+    <string name="error_code" msgid="3585291676855383649">"Cod de eroare: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Setări"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminalul rulează"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Dă clic pentru a deschide terminalul"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Închide"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ru/strings.xml b/android/TerminalApp/res/values-ru/strings.xml
index 3fd6ed5..f14c59d 100644
--- a/android/TerminalApp/res/values-ru/strings.xml
+++ b/android/TerminalApp/res/values-ru/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Терминал"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Установка терминала Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Для запуска терминала Linux нужно скачать примерно <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> данных по сети.\nПродолжить?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Скачать только через Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Установка терминала Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"После окончания будет запущен терминал Linux."</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Не удалось выполнить установку из-за ошибки сети."</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Сбой установки. Повторите попытку."</string>
     <string name="action_settings" msgid="5729342767795123227">"Настройки"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Терминал подготавливается."</string>
@@ -37,27 +45,37 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Выделено <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Максимум <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Отмена"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Перезапуск и примен."</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Переадресация портов"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Настроить переадресацию портов"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Терминал пытается открыть новый порт"</string>
     <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Запрашивается разрешение открыть порт <xliff:g id="PORT_NUMBER">%d</xliff:g>."</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Разрешить"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Не разрешать"</string>
-    <string name="settings_recovery_title" msgid="6586840079226383285">"Восстановление"</string>
+    <string name="settings_recovery_title" msgid="6586840079226383285">"Восста­но­вле­ние"</string>
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Варианты восстановления разделов"</string>
-    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Восстановить первоначальную версию"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Перейти к исходной версии"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Удалить все"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Сброс настроек терминала"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Данные будут удалены."</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Подтвердить"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Отмена"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Сохранить резервную копию в <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Не удается восстановить данные из-за ошибки резервного копирования."</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Ошибка восстановления."</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Не получается удалить файл резервной копии."</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Удалить резервную копию"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Удалить из <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Настройки"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Терминал запущен"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Нажмите, чтобы открыть его."</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Закрыть"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-si/strings.xml b/android/TerminalApp/res/values-si/strings.xml
index 9132eeb..e864cd2 100644
--- a/android/TerminalApp/res/values-si/strings.xml
+++ b/android/TerminalApp/res/values-si/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"ටර්මිනලය"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux ටර්මිනලය ස්ථාපනය කරන්න"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux ටර්මිනලය දියත් කිරීමට, ඔබට ජාලය හරහා දත්ත <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> පමණ බාගත කිරීමට අවශ්‍ය වේ.\nඔබ ඉදිරියට යනවා ද?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Wi-Fi ලබා ගත හැකි විට බාගන්න"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ටර්මිනලය ස්ථාපනය කරමින්"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux ටර්මිනලය අවසන් වූ පසු ආරම්භ වනු ඇත"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"ජාල ගැටලුවක් හේතුවෙන් ස්ථාපනය කිරීමට අසමත් විය"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"ස්ථාපනය කිරීමට අසමත් විය. නැවත උත්සාහ කරන්න."</string>
     <string name="action_settings" msgid="5729342767795123227">"සැකසීම්"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"ටර්මිනලය සූදානම් කිරීම"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> පවරන ලදි"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> උපරිමය"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"අවලංගු කරන්න"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"යෙදීමට යළි අරඹන්න"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"පෝටය යොමු කිරීම"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"පෝටය යොමු කිරීම වින්‍යාස කරන්න"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"ටර්මිනලය නව පෝටයක් විවෘත කිරීමට උත්සාහ කරයි"</string>
@@ -53,8 +60,22 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"දත්ත මකනු ඇත"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"තහවුරු කරන්න"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"අවලංගු කරන්න"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g> වෙත දත්ත උපස්ථ කරන්න"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"උපස්ථය අසමත් වූ නිසා ප්‍රතිසාධනය අසමත් විය"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"ප්‍රතිසාධනය අසමත් විය"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"උපස්ථ ගොනුව ඉවත් කළ නොහැක"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"උපස්ථ දත්ත ඉවත් කරන්න"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> පිරිසිදු කරන්න"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"සැකසීම්"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"පර්යන්තය ධාවනය වේ"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"ටර්මිනලය විවෘත කිරීමට ක්ලික් කරන්න"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"වසන්න"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-sk/strings.xml b/android/TerminalApp/res/values-sk/strings.xml
index f5e4ff7..ad48c26 100644
--- a/android/TerminalApp/res/values-sk/strings.xml
+++ b/android/TerminalApp/res/values-sk/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminál"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Inštalácia terminálu systému Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Ak chcete spustiť terminál systému Linux, musíte cez sieť stiahnuť približne <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> dát.\nChcete pokračovať?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Stiahnuť, keď bude k dispozícii Wi‑Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Inštaluje sa terminál systému Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Terminál systému Linux sa spustí po dokončení"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Nepodarilo sa nainštalovať pre problém so sieťou"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Nepodarilo sa nainštalovať. Skúste to znova."</string>
     <string name="action_settings" msgid="5729342767795123227">"Nastavenia"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Terminál sa pripravuje"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Pridelené <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Max. <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Zrušiť"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Vyžaduje sa reštart"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Presmerovanie portov"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Nakonfigurovať presmerovanie portov"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminál sa pokúša otvoriť nový port"</string>
@@ -49,15 +56,26 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Možnosti obnovenia oddielu"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Zmena na pôvodnú verziu"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Odstrániť všetko"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Resetovanie terminálu"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Údaje budú odstránené"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Potvrdiť"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Zrušiť"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Zálohovať údaje do <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Obnovenie sa nepodarilo, pretože sa nepodarilo zálohovať"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Obnovenie sa nepodarilo"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Súbor zálohy sa nepodarilo odstrániť"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Odstrániť údaje zálohy"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Vyčistiť <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Nastavenia"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminál je spustený"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Kliknutím otvorte terminál"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Zavrieť"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-sl/strings.xml b/android/TerminalApp/res/values-sl/strings.xml
index 5701219..74b3f6d 100644
--- a/android/TerminalApp/res/values-sl/strings.xml
+++ b/android/TerminalApp/res/values-sl/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Namestitev terminala Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Če želite zagnati terminal Linux, morate prek omrežja prenesti približno <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> podatkov.\nAli želite nadaljevati?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Prenesi, ko bo na voljo Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Nameščanje terminala Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Terminal Linux se bo zagnal po končani namestitvi"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Namestitev ni uspela zaradi težave z omrežjem"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Namestitev ni uspela. Poskusite znova."</string>
     <string name="action_settings" msgid="5729342767795123227">"Nastavitve"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Pripravljanje terminala"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Dodeljeno: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Največja velikost: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Prekliči"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Znova zaženi za uporabo"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Posredovanje vrat"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfiguriranje posredovanja vrat"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal poskuša odpreti nova vrata"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Podatki bodo izbrisani"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Potrdi"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Prekliči"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Varnostno kopiranje podatkov v <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Obnovitev ni uspela zaradi neuspešnega varnostnega kopiranja"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Obnovitev ni uspela"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Datoteke z varnostno kopijo ni mogoče odstraniti"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Odstranitev varnostno kopiranih podatkov"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Počiščenje poti <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Nepopravljiva napaka"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Obnovitev po napaki ni uspela.\nPoskusite znova zagnati aplikacijo ali uporabiti eno od možnosti obnovitve."</string>
+    <string name="error_code" msgid="3585291676855383649">"Koda napake: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Nastavitve"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal se izvaja"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Kliknite, če želite odpreti terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Zapri"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-sq/strings.xml b/android/TerminalApp/res/values-sq/strings.xml
index afc9e8d..ee42f8a 100644
--- a/android/TerminalApp/res/values-sq/strings.xml
+++ b/android/TerminalApp/res/values-sq/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminali"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Instalo terminalin e Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Për të hapur terminalin e Linux, duhet të shkarkosh afërsisht <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> të dhëna nëpërmjet rrjetit.\nDëshiron të vazhdosh?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Shkarko kur të ofrohet Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Terminali i Linux po instalohet"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Terminali i Linux do të niset pas përfundimit"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Instalimi dështoi për shkak të një problemi të rrjetit"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Instalimi dështoi. Provo përsëri."</string>
     <string name="action_settings" msgid="5729342767795123227">"Cilësimet"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Terminali po përgatitet"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Caktuar: <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maksimumi: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Anulo"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Rinis për të zbatuar"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Transferimi i portës"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfiguro transferimin e portës"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminali po përpiqet të hapë një portë të re"</string>
@@ -49,15 +56,26 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opsionet e rikuperimit të ndarjes"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Ndrysho në versionin fillestar"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Hiqi të gjitha"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Rivendos terminalin"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Të dhënat do të fshihen"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Konfirmo"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Anulo"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Rezervo të dhënat te <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Rikuperimi dështoi për shkak se rezervimi dështoi"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Rikuperimi dështoi"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Skedari i rezervimit nuk mund të hiqet"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Hiq të dhënat e rezervimit"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Pastro <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Cilësimet"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminali po ekzekutohet"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Kliko për të hapur terminalin"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Mbyll"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-sr/strings.xml b/android/TerminalApp/res/values-sr/strings.xml
index 934fc3b..a1d4005 100644
--- a/android/TerminalApp/res/values-sr/strings.xml
+++ b/android/TerminalApp/res/values-sr/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Терминал"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Инсталирајте Linux терминал"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Да бисте покренули Linux терминал, треба да преузмете око <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> података преко мреже.\nЖелите да наставите?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Преузми када WiFi буде доступан"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Инсталира се Linux терминал"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux терминал ће се покренути после завршетка"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Инсталирање није успело због проблема са мрежом"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Инсталирање није успело. Пробајте поново."</string>
     <string name="action_settings" msgid="5729342767795123227">"Подешавања"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Терминал се припрема"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Додељено <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Макс. <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Откажи"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Рестартуј и примени"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Прослеђивање порта"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Конфигуришите прослеђивање порта"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Терминал покушава да отвори нови порт"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Опције опоравка партиција"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Промени на почетну верзију"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Уклоните све"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Ресетујте терминал"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Подаци ће бити избрисани"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Потврди"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Откажи"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Направи резервну копију података на <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Опоравак није успео јер прављење резервне копије није успело"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Опоравак није успео"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Уклањање фајла резервне копије није успело"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Уклоните резервну копију"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Обришите <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Непоправљива грешка"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Опоравак од грешке није успео.\nПробајте да рестартујете апликацију или пробајте једну од опција за враћање."</string>
+    <string name="error_code" msgid="3585291676855383649">"Кôд грешке: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Подешавања"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Терминал је активан"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Кликните да бисте отворили терминал"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Затвори"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-sv/strings.xml b/android/TerminalApp/res/values-sv/strings.xml
index 6fd87a5..692f89c 100644
--- a/android/TerminalApp/res/values-sv/strings.xml
+++ b/android/TerminalApp/res/values-sv/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Installera Linux-terminalen"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Om du vill starta Linux-terminalen måste du ladda ned ungefär <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> data via nätverket.\nVill du fortsätta?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Ladda ned när wifi är tillgängligt"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installerar Linux-terminalen"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux-terminalen startas när processen är klar"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Det gick inte att installera på grund av nätverksproblemet"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Installationen misslyckades. Försök igen."</string>
     <string name="action_settings" msgid="5729342767795123227">"Inställningar"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Terminalen förbereds"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> har tilldelats"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Max <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Avbryt"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Starta om för att tillämpa"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Port­vidare­befordran"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Konfigurera portvidarebefordran"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminalen försöker öppna en ny port"</string>
@@ -49,15 +56,26 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Återställningsalternativ för partition"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Ändra till ursprunglig version"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Ta bort alla"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Återställ terminalen"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Data raderas"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Bekräfta"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Avbryt"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Säkerhetskopiera data till <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Återställningen misslyckades eftersom säkerhetskopieringen misslyckades"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Återställningen misslyckades"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Det går inte att ta bort säkerhetskopian"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Ta bort säkerhetskopierad data"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Rensa <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Inställningar"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminalen körs"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Klicka för att öppna terminalen"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Stäng"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-sw/strings.xml b/android/TerminalApp/res/values-sw/strings.xml
index 50920e9..ca79457 100644
--- a/android/TerminalApp/res/values-sw/strings.xml
+++ b/android/TerminalApp/res/values-sw/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Temino"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Weka temino ya Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Unahitaji kupakua takribani <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> ya data kwenye mtandao ili uwashe temino ya Linux.\nUngependa kuendelea?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Pakua wakati Wi-Fi inapatikana"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Inaweka temino ya Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Temino ya Linux itawashwa baada ya kumaliza"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Imeshindwa kuweka kwenye kifaa kwa sababu ya tatizo la mtandao"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Imeshindwa kuweka kwenye kifaa. Jaribu tena."</string>
     <string name="action_settings" msgid="5729342767795123227">"Mipangilio"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Inaandaa temino"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> zimekabidhiwa"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Kikomo cha <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Acha"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Zima na uwashe utumie"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Kusambaza Mlango Kwingine"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Weka mipangilio ya kusambaza mlango kwingine"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Kituo kinajaribu kufungua mlango mpya"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Chaguo za kurejesha data ya sehemu"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Rudi kwenye Toleo la awali"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Ondoa yote"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Badilisha temino"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Data itafutwa"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Thibitisha"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Acha"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Hifadhi nakala ya data kwenye <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Haikurejesha kwa sababu imeshindwa kuhifadhi nakala"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Haikurejesha"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Imeshindwa kuondoa faili yenye hifadhi nakala"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Ondoa data ya nakala"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Safisha <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Hitilafu Inayozuia Kurejesha"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Imeshindwa kurejea kutoka hali ya hitilafu.\nUnaweza kujaribu kufungua programu upya au ujaribu mojawapo ya chaguo za urejeshaji."</string>
+    <string name="error_code" msgid="3585291676855383649">"Msimbo wa hitilafu: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Mipangilio"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Temino inatumika"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Bofya ili ufungue temino"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Funga"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ta/strings.xml b/android/TerminalApp/res/values-ta/strings.xml
index 07efaeb..e99b837 100644
--- a/android/TerminalApp/res/values-ta/strings.xml
+++ b/android/TerminalApp/res/values-ta/strings.xml
@@ -17,6 +17,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"டெர்மினல்"</string>
+    <string name="terminal_display" msgid="4810127497644015237">"டெர்மினல் டிஸ்ப்ளே"</string>
+    <string name="terminal_input" msgid="4602512831433433551">"கர்சர்"</string>
+    <string name="empty_line" msgid="5012067143408427178">"வெற்று வரி"</string>
     <string name="installer_title_text" msgid="500663060973466805">"Linux டெர்மினலை நிறுவுதல்"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux டெர்மினலைத் தொடங்க, நெட்வொர்க் மூலம் நீங்கள் சுமார் <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> தரவைப் பதிவிறக்க வேண்டும்.\nதொடர விரும்புகிறீர்களா?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"வைஃபை கிடைக்கும்போது பதிவிறக்கு"</string>
@@ -26,6 +29,7 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux டெர்மினலை நிறுவுகிறது"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"நிறைவடைந்ததும் Linux டெர்மினல் தொடங்கப்படும்"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"நெட்வொர்க் சிக்கல் இருப்பதால் நிறுவ முடியவில்லை"</string>
+    <string name="installer_error_no_wifi" msgid="8631584648989718121">"வைஃபை கிடைக்காததால் நிறுவ முடியவில்லை"</string>
     <string name="installer_error_unknown" msgid="1991780204241177455">"நிறுவ முடியவில்லை. மீண்டும் முயலவும்."</string>
     <string name="action_settings" msgid="5729342767795123227">"அமைப்புகள்"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"டெர்மினலைத் தயார்செய்கிறது"</string>
@@ -37,8 +41,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> ஒதுக்கப்பட்டது"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"அதிகபட்சம் <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"ரத்துசெய்"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"பயன்படுத்த தொடங்குக"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"போர்ட் அனுப்புதல்"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"போர்ட் அனுப்புதலை உள்ளமைத்தல்"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"டெர்மினல் புதிய போர்ட்டைத் திறக்க முயல்கிறது"</string>
@@ -53,8 +56,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"தரவு நீக்கப்படும்"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"உறுதிசெய்"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"ரத்துசெய்"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g> இல் உள்ள தரவைக் காப்புப் பிரதி எடுத்தல்"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"காப்புப் பிரதி எடுத்தல் தோல்வியடைந்ததால் மீட்டெடுக்க முடியவில்லை"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"மீட்டெடுக்க முடியவில்லை"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"காப்புப் பிரதி ஃபைலை அகற்ற முடியவில்லை"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"காப்புப் பிரதித் தரவை அகற்றுதல்"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> ஐக் காலியாக்குதல்"</string>
+    <string name="error_title" msgid="7196464038692913778">"சரிசெய்ய முடியாத பிழை"</string>
+    <string name="error_desc" msgid="1939028888570920661">"பிழையைச் சரிசெய்ய முடியவில்லை.\nநீங்கள் ஆப்ஸை மீண்டும் தொடங்க முயலலாம் அல்லது மீட்டெடுப்பு விருப்பங்களில் ஒன்றைப் பயன்படுத்திப் பார்க்கலாம்."</string>
+    <string name="error_code" msgid="3585291676855383649">"பிழைக் குறியீடு: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"அமைப்புகள்"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"டெர்மினல் இயக்கத்தில் உள்ளது"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"டெர்மினலைத் திறக்க கிளிக் செய்யுங்கள்"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"மூடு"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-te/strings.xml b/android/TerminalApp/res/values-te/strings.xml
index 1c670a1..e13f2dc 100644
--- a/android/TerminalApp/res/values-te/strings.xml
+++ b/android/TerminalApp/res/values-te/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"టెర్మినల్"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux టెర్మినల్‌ను ఇన్‌స్టాల్ చేయండి"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux టెర్మినల్‌ను ప్రారంభించడానికి, మీరు నెట్‌వర్క్ ద్వారా దాదాపు <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> డేటాను డౌన్‌లోడ్ చేసుకోవాలి.\nమీరు కొనసాగిస్తారా?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Wi-Fi అందుబాటులో ఉన్నప్పుడు డౌన్‌లోడ్ చేయండి"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux టెర్మినల్‌ను ఇన్‌స్టాల్ చేస్తోంది"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"పూర్తయిన తర్వాత Linux టెర్మినల్ ప్రారంభమవుతుంది"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"నెట్‌వర్క్ సమస్య కారణంగా ఇన్‌స్టాల్ చేయడం విఫలమైంది"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"ఇన్‌స్టాల్ చేయడం విఫలమైంది. మళ్లీ ట్రై చేయండి."</string>
     <string name="action_settings" msgid="5729342767795123227">"సెట్టింగ్‌లు"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"టెర్మినల్‌ను సిద్ధం చేస్తోంది"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> కేటాయించబడింది"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"గరిష్ఠంగా <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"రద్దు చేయండి"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"వర్తించేందుకు రీస్టార్ట్ చేయండి"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"పోర్ట్ ఫార్వర్డింగ్"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"పోర్ట్ ఫార్వర్డింగ్‌ను కాన్ఫిగర్ చేయండి"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"టెర్మినల్ ఒక కొత్త పోర్ట్‌ను తెరవడానికి ట్రై చేస్తోంది"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"డేటా తొలగించబడుతుంది"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"నిర్ధారించండి"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"రద్దు చేయండి"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"<xliff:g id="PATH">/mnt/backup</xliff:g>‌లో డేటాను బ్యాకప్ చేయండి"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"బ్యాకప్ విఫలమైనందున రికవరీ విఫలమైంది"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"రికవరీ విఫలమైంది"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"బ్యాకప్ ఫైల్‌ను తీసివేయడం సాధ్యపడదు"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"బ్యాకప్ డేటాను తీసివేయండి"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"క్లీనప్ <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"రికవరీని అసాధ్యం చేసే ఎర్రర్"</string>
+    <string name="error_desc" msgid="1939028888570920661">"ఎర్రర్‌ను రికవర్ చేయడంలో విఫలమైంది.\nమీరు యాప్‌ను రీస్టార్ట్ చేసి ట్రై చేయవచ్చు లేదా రికవరీ ఆప్షన్‌లలో ఒకదాన్ని ట్రై చేయవచ్చు."</string>
+    <string name="error_code" msgid="3585291676855383649">"ఎర్రర్ కోడ్: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"సెట్టింగ్‌లు"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"టెర్మినల్ రన్ అవుతోంది"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"టెర్మినల్‌ను తెరవడానికి క్లిక్ చేయండి"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"మూసివేయండి"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-th/strings.xml b/android/TerminalApp/res/values-th/strings.xml
index 4cc93a6..0a96ca3 100644
--- a/android/TerminalApp/res/values-th/strings.xml
+++ b/android/TerminalApp/res/values-th/strings.xml
@@ -17,6 +17,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"เทอร์มินัล"</string>
+    <string name="terminal_display" msgid="4810127497644015237">"จอแสดงผลของเทอร์มินัล"</string>
+    <string name="terminal_input" msgid="4602512831433433551">"เคอร์เซอร์"</string>
+    <string name="empty_line" msgid="5012067143408427178">"บรรทัดว่างเปล่า"</string>
     <string name="installer_title_text" msgid="500663060973466805">"ติดตั้งเทอร์มินัล Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"หากต้องการเปิดเทอร์มินัล Linux คุณจะต้องดาวน์โหลดข้อมูลประมาณ <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> ผ่านเครือข่าย\nคุณต้องการดำเนินการต่อไหม"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"ดาวน์โหลดเมื่อมีการเชื่อมต่อ Wi-Fi"</string>
@@ -26,6 +29,7 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"กำลังติดตั้งเทอร์มินัล Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"เทอร์มินัล Linux จะเริ่มต้นหลังจากติดตั้งเสร็จ"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"ติดตั้งไม่สำเร็จเนื่องจากมีปัญหาเครือข่าย"</string>
+    <string name="installer_error_no_wifi" msgid="8631584648989718121">"ติดตั้งไม่สำเร็จเนื่องจากไม่มี Wi-Fi"</string>
     <string name="installer_error_unknown" msgid="1991780204241177455">"ติดตั้งไม่สำเร็จ โปรดลองอีกครั้ง"</string>
     <string name="action_settings" msgid="5729342767795123227">"การตั้งค่า"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"กำลังเตรียมเทอร์มินัล"</string>
@@ -37,8 +41,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"กำหนดขนาด <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> แล้ว"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"สูงสุด <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"ยกเลิก"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"รีสตาร์ทเพื่อใช้"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"การส่งต่อพอร์ต"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"กำหนดค่าการส่งต่อพอร์ต"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"เทอร์มินัลกำลังพยายามเปิดพอร์ตใหม่"</string>
@@ -53,8 +56,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ระบบจะลบข้อมูล"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"ยืนยัน"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"ยกเลิก"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"สำรองข้อมูลไปยัง <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"กู้คืนไม่สำเร็จเนื่องจากสำรองข้อมูลไม่สำเร็จ"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"การกู้คืนไม่สำเร็จ"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"นำไฟล์ข้อมูลสำรองออกไม่ได้"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"นําข้อมูลสํารองออก"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"ล้าง <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"ข้อผิดพลาดที่กู้คืนไม่ได้"</string>
+    <string name="error_desc" msgid="1939028888570920661">"กู้คืนจากข้อผิดพลาดไม่สำเร็จ\nคุณสามารถลองรีสตาร์ทแอปหรือลองใช้ตัวเลือกการกู้คืนได้"</string>
+    <string name="error_code" msgid="3585291676855383649">"รหัสข้อผิดพลาด: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"การตั้งค่า"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"เทอร์มินัลกำลังทำงาน"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"คลิกเพื่อเปิดเทอร์มินัล"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ปิด"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-tl/strings.xml b/android/TerminalApp/res/values-tl/strings.xml
index d8dd2ca..29f316e 100644
--- a/android/TerminalApp/res/values-tl/strings.xml
+++ b/android/TerminalApp/res/values-tl/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"I-install ang terminal ng Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Para ilunsad ang terminal ng Linux, kailangan mong mag-download ng humigit-kumulang <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> na data sa network.\nGusto mo bang magpatuloy?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"I-download kapag available ang Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Ini-install ang terminal ng Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Magsisimula ang terminal ng Linux pagkatapos mag-install"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Hindi na-install dahil sa isyu sa network"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Hindi na-install. Subukan ulit."</string>
     <string name="action_settings" msgid="5729342767795123227">"Mga Setting"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Inihahanda ang terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> ang nakatalaga"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> ang max"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Kanselahin"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"I-restart para gawin"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Pag-forward ng Port"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"I-configure ang pag-forward ng port"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Sinusubukan ng terminal na magbukas ng bagong port"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Made-delete ang data"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Kumpirmahin"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Kanselahin"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Mag-back up ng data sa <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Hindi na-recover dahil hindi gumana ang backup"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Hindi na-recover"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Hindi maalis ang backup file"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Alisin ang backup data"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"I-clean up ang <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Hindi nare-recover na error"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Hindi naka-recover mula sa isang error.\nPuwede mong subukang i-restart ang app, o subukan ang isa sa mga opsyon sa pag-recover."</string>
+    <string name="error_code" msgid="3585291676855383649">"Code ng error: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Mga Setting"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Gumagana ang terminal"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"I-click para buksan ang terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Isara"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-tr/strings.xml b/android/TerminalApp/res/values-tr/strings.xml
index c696eda..5ad93ae 100644
--- a/android/TerminalApp/res/values-tr/strings.xml
+++ b/android/TerminalApp/res/values-tr/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux terminalini yükleyin"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux terminalini başlatmak için ağ üzerinden yaklaşık <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> veri indirmeniz gerekir.\nDevam etmek istiyor musunuz?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Kablosuz bağlantı olduğunda indir"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux terminali yükleniyor"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux terminali, işlem tamamlandıktan sonra başlatılacak"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Ağ sorunu nedeniyle yüklenemedi."</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Yüklenemedi. Tekrar deneyin."</string>
     <string name="action_settings" msgid="5729342767795123227">"Ayarlar"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Terminal hazırlanıyor"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> atandı"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"<xliff:g id="MAX_SIZE">%1$s</xliff:g> maks."</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"İptal"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Uygulamak için yeniden başlatın"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Bağlantı noktası yönlendirme"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Bağlantı noktası yönlendirmeyi yapılandır"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal yeni bir bağlantı noktası açmaya çalışıyor"</string>
@@ -49,15 +56,26 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Bölüm kurtarma seçenekleri"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"İlk sürüme geç"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Tümünü kaldır"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Terminali sıfırla"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Veriler silinecek"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Onayla"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"İptal"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Verileri <xliff:g id="PATH">/mnt/backup</xliff:g> konumuna yedekle"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Yedekleme işlemi başarısız olduğu için kurtarma işlemi tamamlanamadı"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Kurtarma işlemi başarısız oldu"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Yedek dosyası kaldırılamıyor"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Yedek verileri kaldır"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"<xliff:g id="PATH">/mnt/backup</xliff:g> konumundaki verileri temizle"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Ayarlar"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal çalışıyor"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Terminali açmak için tıklayın"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Kapat"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-uk/strings.xml b/android/TerminalApp/res/values-uk/strings.xml
index f5a405d..c883d3a 100644
--- a/android/TerminalApp/res/values-uk/strings.xml
+++ b/android/TerminalApp/res/values-uk/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Термінал"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Установити термінал Linux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Щоб запустити термінал Linux, потрібно завантажити приблизно <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> даних через мережу.\nПродовжити?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Завантажити через Wi-Fi, коли буде доступно"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Встановлення термінала Linux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Після завершення буде запущено термінал Linux"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Не вдалося встановити через проблему з мережею"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Не вдалося встановити. Повторіть спробу."</string>
     <string name="action_settings" msgid="5729342767795123227">"Налаштування"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Підготовка термінала"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Виділено <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Максимальний розмір: <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Скасувати"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Перезапустити, щоб застосувати"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Переадресація порту"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Налаштувати переадресацію порту"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Термінал намагається відкрити новий порт"</string>
@@ -47,17 +54,28 @@
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Відхилити"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Відновлення"</string>
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Способи відновлення розділів"</string>
-    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Зміна на початкову версію"</string>
-    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Видалити всі"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Змінити на початкову версію"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Видалити все"</string>
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Скинути налаштування термінала"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Дані буде видалено"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Підтвердити"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Скасувати"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Створити резервну копію даних у <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Не вдалося відновити, оскільки резервну копію не створено"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Не вдалося відновити"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Не вдалося вилучити файл резервної копії"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Видалити резервну копію даних"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Очистити <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <!-- no translation found for error_title (7196464038692913778) -->
+    <skip />
+    <!-- no translation found for error_desc (1939028888570920661) -->
+    <skip />
+    <!-- no translation found for error_code (3585291676855383649) -->
+    <skip />
     <string name="service_notification_settings" msgid="1437365721184401135">"Налаштування"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Термінал запущено"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Натисніть, щоб відкрити термінал"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Закрити"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-ur/strings.xml b/android/TerminalApp/res/values-ur/strings.xml
index 1ffd3c5..81c051f 100644
--- a/android/TerminalApp/res/values-ur/strings.xml
+++ b/android/TerminalApp/res/values-ur/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"ٹرمینل"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"‫Linux ٹرمینل انسٹال کریں"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"‫Linux ٹرمینل کو شروع کرنے کے لیے، آپ کو نیٹ ورک پر تقریباً <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> ڈیٹا ڈاؤن لوڈ کرنا ہوگا۔\nکیا آپ آگے بڑھیں گے؟"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"‫Wi-Fi دستیاب ہونے پر ڈاؤن لوڈ کریں"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"‫Linux ٹرمینل انسٹال ہو رہا ہے"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"مکمل ہونے کے بعد Linux ٹرمینل شروع کیا جا سکے گا"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"نیٹ ورک میں خرابی کی وجہ سے انسٹال نہیں کیا جا سکا"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"انسٹال نہیں کیا جا سکا۔ دوبارہ کوشش کریں۔"</string>
     <string name="action_settings" msgid="5729342767795123227">"ترتیبات"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"ٹرمینل تیار ہو رہا ہے"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> تفویض کردہ"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"زیادہ سے زیادہ <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"منسوخ کریں"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"لاگو کرنے کے لیے ری سٹارٹ کریں"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"پورٹ فارورڈنگ"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"پورٹ فارورڈنگ کو کنفیگر کریں"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"ٹرمینل ایک نیا پورٹ کھولنے کی کوشش کر رہا ہے"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"ڈیٹا حذف کر دیا جائے گا"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"تصدیق کریں"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"منسوخ کریں"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"‫<xliff:g id="PATH">/mnt/backup</xliff:g> پر ڈیٹا کا بیک اپ لیں"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"بیک اپ ناکام ہونے کی وجہ سے بازیابی ناکام ہو گئی"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"بازیابی ناکام ہو گئی"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"بیک اپ فائل کو ہٹایا نہیں جا سکتا"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"بیک اپ ڈیٹا ہٹائیں"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"‫<xliff:g id="PATH">/mnt/backup</xliff:g> کو ہٹائیں"</string>
+    <string name="error_title" msgid="7196464038692913778">"نا قابل بازیابی کی خرابی"</string>
+    <string name="error_desc" msgid="1939028888570920661">"ایک خرابی سے بازیافت کرنے میں ناکام۔\nآپ ایپ کو ری اسٹارٹ کرنے کی کوشش کر سکتے ہیں یا بازیابی کے اختیارات میں سے ایک کو آزما سکتے ہیں۔"</string>
+    <string name="error_code" msgid="3585291676855383649">"خرابی کا کوڈ: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"ترتیبات"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"ٹرمینل چل رہا ہے"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"ٹرمینل کھولنے کے لیے کلک کریں"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"بند کریں"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-uz/strings.xml b/android/TerminalApp/res/values-uz/strings.xml
index c2208ba..8093ef1 100644
--- a/android/TerminalApp/res/values-uz/strings.xml
+++ b/android/TerminalApp/res/values-uz/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux terminalini oʻrnatish"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Linux terminalini ishga tushirish uchun tarmoq orqali taxminan <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> axborot yuklab olish kerak.\nDavom etilsinmi?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Wi-Fi tarmoqqa ulanganda yuklab olish"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux terminali oʻrnatilmoqda"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux terminali oʻrnatilganidan keyin ishga tushadi"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Tarmoq xatosi sababli oʻrnatilmadi"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Oʻrnatilmadi. Qayta urining."</string>
     <string name="action_settings" msgid="5729342767795123227">"Sozlamalar"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Terminal tayyorlanmoqda"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> ajratilgan"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Maks <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Bekor qilish"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Qoʻllash uchun qayta yoqing"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Portni uzatish"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Portni uzatish sozlamalari"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal yangi port ochishga urinmoqda"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Maʼlumotlar oʻchib ketadi"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Tasdiqlash"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Bekor qilish"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Maʼlumotlarni bu yerga zaxiralash: <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Zaxiralash amalga oshmagani uchun tiklanmadi"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Tiklanmadi"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Zaxira fayli olib tashlanmadi"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Zaxira maʼlumotlarini olib tashlash"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Tozalash: <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Qayta tiklanmaydigan xato"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Xatolikdan tiklanmadi.\nIlovani qayta ishga tushirishingiz yoki tiklash usullaridan birini sinashingiz mumkin."</string>
+    <string name="error_code" msgid="3585291676855383649">"Xatolik kodi: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Sozlamalar"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal ishga tushgan"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"Terminalni ochish uchun bosing"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Yopish"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-vi/strings.xml b/android/TerminalApp/res/values-vi/strings.xml
index 82909db..dd6c5f5 100644
--- a/android/TerminalApp/res/values-vi/strings.xml
+++ b/android/TerminalApp/res/values-vi/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Terminal"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Cài đặt Linux terminal"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Để chạy Linux terminal, bạn cần tải khoảng <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> dữ liệu xuống qua mạng.\nBạn có muốn tiếp tục không?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Tải xuống khi có Wi-Fi"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Đang cài đặt Linux terminal"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux terminal sẽ khởi động sau khi cài đặt xong"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Không cài đặt được do sự cố mạng"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Không cài đặt được. Hãy thử lại."</string>
     <string name="action_settings" msgid="5729342767795123227">"Cài đặt"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Đang chuẩn bị Terminal"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"Ðã phân bổ <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Tối đa <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Huỷ"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Chạy lại để áp dụng"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Chuyển tiếp cổng"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Định cấu hình tính năng chuyển tiếp cổng"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal đang cố mở một cổng mới"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Tuỳ chọn khôi phục phân vùng"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Chuyển về phiên bản ban đầu"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Xoá tất cả"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Đặt lại cửa sổ dòng lệnh"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Dữ liệu sẽ bị xoá"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Xác nhận"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Huỷ"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Sao lưu dữ liệu vào <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Không khôi phục được vì không sao lưu được"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Không khôi phục được"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Không xoá được tệp sao lưu"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Xoá dữ liệu sao lưu"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Dọn dẹp <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Lỗi không thể khôi phục"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Không khôi phục được dữ liệu sau khi xảy ra lỗi.\nBạn có thể thử khởi động lại ứng dụng hoặc thử một trong các tuỳ chọn khôi phục."</string>
+    <string name="error_code" msgid="3585291676855383649">"Mã lỗi: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Cài đặt"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal đang chạy"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Nhấp để mở cửa sổ dòng lệnh"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Đóng"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-zh-rCN/strings.xml b/android/TerminalApp/res/values-zh-rCN/strings.xml
index e1afa9f..266e4b5 100644
--- a/android/TerminalApp/res/values-zh-rCN/strings.xml
+++ b/android/TerminalApp/res/values-zh-rCN/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"终端"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"安装 Linux 终端"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"如需启动 Linux 终端,您需要联网下载大约 <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> 的数据。\n要继续吗?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"连接到 WLAN 时下载"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"正在安装 Linux 终端"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"完成后将启动 Linux 终端"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"由于网络问题,安装失败"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"安装失败。请重试。"</string>
     <string name="action_settings" msgid="5729342767795123227">"设置"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"正在准备终端"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"已分配 <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"最大为 <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"取消"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"重启以应用"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"端口转发"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"配置端口转发"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"终端正在尝试打开新端口"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"数据将被删除"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"确认"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"取消"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"将数据备份到 <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"备份失败,因此无法恢复"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"恢复失败"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"无法移除备份文件"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"移除备份数据"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"清理 <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"不可恢复的错误"</string>
+    <string name="error_desc" msgid="1939028888570920661">"未能从错误中恢复。\n您可以尝试重新启动该应用,或尝试某一恢复选项。"</string>
+    <string name="error_code" msgid="3585291676855383649">"错误代码:<xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"设置"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"终端正在运行"</string>
-    <string name="service_notification_content" msgid="3579923802797824545">"点击即可打开终端"</string>
+    <string name="service_notification_content" msgid="3579923802797824545">"点按即可打开终端"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"关闭"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-zh-rHK/strings.xml b/android/TerminalApp/res/values-zh-rHK/strings.xml
index b234d1b..463b221 100644
--- a/android/TerminalApp/res/values-zh-rHK/strings.xml
+++ b/android/TerminalApp/res/values-zh-rHK/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"終端機"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"安裝 Linux 終端機"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"如要啟動 Linux 終端機,你需要透過網絡下載約 <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> 資料。\n要繼續嗎?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"連接 Wi-Fi 時下載"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"正在安裝 Linux 終端機"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Linux 將於安裝完成後開啟"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"由於網絡發生問題,因此無法安裝"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"無法安裝,請再試一次。"</string>
     <string name="action_settings" msgid="5729342767795123227">"設定"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"正在準備終端機"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"已指派 <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"最多 <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"取消"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"重新啟動即可套用"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"連接埠轉送"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"設定連接埠轉送"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"終端機正在嘗試開啟新的連接埠"</string>
@@ -50,11 +57,22 @@
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"變更至初始版本"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"全部移除"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"重設終端機"</string>
-    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"資料將刪除"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"資料將被刪除"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"確認"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"取消"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"將資料備份至 <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"由於備份失敗,因此無法復原"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"無法復原"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"無法移除備份檔案"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"移除備份資料"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"清理 <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"無法復原的錯誤"</string>
+    <string name="error_desc" msgid="1939028888570920661">"無法從錯誤中復原。\n你可嘗試重新啟動應用程式,或使用其中一個復原選項。"</string>
+    <string name="error_code" msgid="3585291676855383649">"錯誤代碼:<xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"設定"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"終端機執行中"</string>
-    <string name="service_notification_content" msgid="3579923802797824545">"點選即可開啟終端機"</string>
+    <string name="service_notification_content" msgid="3579923802797824545">"按一下即可開啟終端機"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"關閉"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-zh-rTW/strings.xml b/android/TerminalApp/res/values-zh-rTW/strings.xml
index 7447671..83a667b 100644
--- a/android/TerminalApp/res/values-zh-rTW/strings.xml
+++ b/android/TerminalApp/res/values-zh-rTW/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"終端機"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"安裝 Linux 終端機"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"如要啟動 Linux 終端機,必須透過網路下載大約 <xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> 的資料。\n要繼續嗎?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"連上 Wi-Fi 網路時下載"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"正在安裝 Linux 終端機"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"完成後將啟動 Linux 終端機"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"網路發生問題,因此無法安裝"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"無法安裝,請再試一次。"</string>
     <string name="action_settings" msgid="5729342767795123227">"設定"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"正在準備終端機"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"已指派 <xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"最多 <xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"取消"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"重新啟動即可套用"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"通訊埠轉送"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"設定通訊埠轉送"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"終端機正在嘗試開啟新的通訊埠"</string>
@@ -53,8 +60,19 @@
     <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"資料將刪除"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"確認"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"取消"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"將資料備份至 <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"備份失敗,因此無法復原"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"無法復原"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"無法移除備份檔案"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"移除備份資料"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"清除 <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"無法復原的錯誤"</string>
+    <string name="error_desc" msgid="1939028888570920661">"無法從錯誤中復原。\n你可以嘗試重新啟動應用程式,或使用其中一個復原選項。"</string>
+    <string name="error_code" msgid="3585291676855383649">"錯誤代碼:<xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"設定"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"終端機運作中"</string>
     <string name="service_notification_content" msgid="3579923802797824545">"點選即可開啟終端機"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"關閉"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values-zu/strings.xml b/android/TerminalApp/res/values-zu/strings.xml
index 134dbca..a15dcda 100644
--- a/android/TerminalApp/res/values-zu/strings.xml
+++ b/android/TerminalApp/res/values-zu/strings.xml
@@ -17,6 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="5597111707986572208">"Itheminali"</string>
+    <!-- no translation found for terminal_display (4810127497644015237) -->
+    <skip />
+    <!-- no translation found for terminal_input (4602512831433433551) -->
+    <skip />
+    <!-- no translation found for empty_line (5012067143408427178) -->
+    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Faka itheminali yeLinux"</string>
     <string name="installer_desc_text_format" msgid="2734224805682171826">"Ukuze uqalise itheminali yeLinux, udinga ukudawuniloda cishe idatha u-<xliff:g id="EXPECTED_SIZE">%1$s</xliff:g> kunethiwekhi.\nUngathanda ukuqhubeka?"</string>
     <string name="installer_wait_for_wifi_checkbox_text" msgid="487720664098014506">"Dawuniloda lapho i-Wi-Fi itholakala"</string>
@@ -26,6 +32,8 @@
     <string name="installer_notif_title_text" msgid="471160690081159042">"Ifaka itheminali yeLinux"</string>
     <string name="installer_notif_desc_text" msgid="6746098106305899060">"Itheminali yeLinux izoqalwa ngemva kokuqeda"</string>
     <string name="installer_error_network" msgid="3265100678310833813">"Yehlulekile ukufaka ngenxa yenkinga yenethiwekhi"</string>
+    <!-- no translation found for installer_error_no_wifi (8631584648989718121) -->
+    <skip />
     <string name="installer_error_unknown" msgid="1991780204241177455">"Yehlulekile ukufaka. Zama futhi."</string>
     <string name="action_settings" msgid="5729342767795123227">"Amasethingi"</string>
     <string name="vm_creation_message" msgid="6594953532721367502">"Ilungiselela itheminali"</string>
@@ -37,8 +45,7 @@
     <string name="settings_disk_resize_resize_gb_assigned_format" msgid="109301857555401579">"U-<xliff:g id="ASSIGNED_SIZE">%1$s</xliff:g> wabiwe"</string>
     <string name="settings_disk_resize_resize_gb_max_format" msgid="6221210151688630371">"Umkhawulo ka-<xliff:g id="MAX_SIZE">%1$s</xliff:g>"</string>
     <string name="settings_disk_resize_resize_cancel" msgid="2182388126941686562">"Khansela"</string>
-    <!-- no translation found for settings_disk_resize_resize_restart_vm_to_apply (83303619015991908) -->
-    <skip />
+    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="83303619015991908">"Qala kabusha ukusebenzisa"</string>
     <string name="settings_port_forwarding_title" msgid="4867439149919324784">"Ukudlulisela Ngembobo"</string>
     <string name="settings_port_forwarding_sub_title" msgid="6848040752531535488">"Lungiselela ukudlulisela ngembobo"</string>
     <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Itheminali izama ukuvula imbobo entsha"</string>
@@ -49,15 +56,23 @@
     <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Okukhethwa kukho kokubuyisela ukwahlukanisa"</string>
     <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Shintshela Ohlotsheni lokuqala"</string>
     <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Susa konke"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_title (874946981716251094) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_message (6392681199895696206) -->
-    <skip />
+    <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Setha kabusha itheminali"</string>
+    <string name="settings_recovery_reset_dialog_message" msgid="6392681199895696206">"Idatha izosulwa"</string>
     <string name="settings_recovery_reset_dialog_confirm" msgid="431718610013947861">"Qinisekisa"</string>
     <string name="settings_recovery_reset_dialog_cancel" msgid="1666264288208459725">"Khansela"</string>
+    <string name="settings_recovery_reset_dialog_backup_option" msgid="2079431035205584614">"Yenza ikhophi yedatha ku-<xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Ukuthola kuhlulekile ngoba ukwenza isipele kuhlulekile"</string>
+    <string name="settings_recovery_error" msgid="2451912941535666379">"Ukuthola kwehlulekile"</string>
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Ayikwazi ukususa ifayela eliyisipele"</string>
+    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Susa idatha eyisipele"</string>
+    <string name="settings_recovery_remove_backup_sub_title" msgid="212161719832573475">"Hlanza i-<xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
+    <string name="error_title" msgid="7196464038692913778">"Iphutha Elingabuyiseki"</string>
+    <string name="error_desc" msgid="1939028888570920661">"Yehlulekile ukutakula ephutheni.\nUngazama ukuqala kabusha i-app, noma uzame okungakhethwa kukho kokukodwa kokutakula."</string>
+    <string name="error_code" msgid="3585291676855383649">"Ikhodi yephutha: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Amasethingi"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Itheminali iyasebenza"</string>
-    <!-- no translation found for service_notification_content (3579923802797824545) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Chofoza ukuze uvule itheminali"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Vala"</string>
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
+    <skip />
 </resources>
diff --git a/android/TerminalApp/res/values/config.xml b/android/TerminalApp/res/values/config.xml
index 9d2456c..ea762fc 100644
--- a/android/TerminalApp/res/values/config.xml
+++ b/android/TerminalApp/res/values/config.xml
@@ -17,7 +17,6 @@
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="preference_file_key" translatable="false">com.android.virtualization.terminal.PREFERENCE_FILE_KEY</string>
     <string name="preference_disk_size_key" translatable="false">PREFERENCE_DISK_SIZE_KEY</string>
-    <string name="preference_min_disk_size_key" translatable="false">PREFERENCE_MIN_DISK_SIZE_KEY</string>
     <string name="preference_forwarding_ports" translatable="false">PREFERENCE_FORWARDING_PORTS</string>
     <string name="preference_forwarding_port_is_enabled" translatable="false">PREFERENCE_FORWARDING_PORT_IS_ENABLED_</string>
-</resources>
\ No newline at end of file
+</resources>
diff --git a/android/TerminalApp/res/values/strings.xml b/android/TerminalApp/res/values/strings.xml
index 851eaab..da8ca84 100644
--- a/android/TerminalApp/res/values/strings.xml
+++ b/android/TerminalApp/res/values/strings.xml
@@ -132,4 +132,7 @@
     <string name="service_notification_content">Click to open the terminal</string>
     <!-- Notification action button for closing the virtual machine [CHAR LIMIT=20] -->
     <string name="service_notification_quit_action">Close</string>
+
+    <!-- VirGL is the name of hardware acceleration for VM, the name is supposed not to be translated. [CHAR LIMIT=20] -->
+    <string name="virgl_enabled">VirGL is enabled</string>
 </resources>
diff --git a/android/compos_verify/verify.rs b/android/compos_verify/verify.rs
index a3f18d5..b94ebbc 100644
--- a/android/compos_verify/verify.rs
+++ b/android/compos_verify/verify.rs
@@ -124,6 +124,7 @@
         &idsig_manifest_ext_apk,
         &VmParameters {
             name: String::from("ComposVerify"),
+            os: String::from("microdroid"),
             cpu_topology: VmCpuTopology::OneCpu, // This VM runs very little work at boot
             debug_mode: args.debug,
             ..Default::default()
diff --git a/android/composd/aidl/android/system/composd/IIsolatedCompilationService.aidl b/android/composd/aidl/android/system/composd/IIsolatedCompilationService.aidl
index dde75e1..3748899 100644
--- a/android/composd/aidl/android/system/composd/IIsolatedCompilationService.aidl
+++ b/android/composd/aidl/android/system/composd/IIsolatedCompilationService.aidl
@@ -48,5 +48,6 @@
      * callback, unless the returned ICompilationTask is cancelled. The caller should maintain
      * a reference to the ICompilationTask until compilation completes or is cancelled.
      */
-    ICompilationTask startTestCompile(ApexSource apexSource, ICompilationTaskCallback callback);
+    ICompilationTask startTestCompile(
+            ApexSource apexSource, ICompilationTaskCallback callback, String os);
 }
diff --git a/android/composd/src/instance_manager.rs b/android/composd/src/instance_manager.rs
index 9e94035..cb1f7e4 100644
--- a/android/composd/src/instance_manager.rs
+++ b/android/composd/src/instance_manager.rs
@@ -46,11 +46,12 @@
         self.start_instance(CURRENT_INSTANCE_DIR, vm_parameters)
     }
 
-    pub fn start_test_instance(&self, prefer_staged: bool) -> Result<CompOsInstance> {
+    pub fn start_test_instance(&self, prefer_staged: bool, os: &str) -> Result<CompOsInstance> {
         let mut vm_parameters = new_vm_parameters()?;
         vm_parameters.name = String::from("ComposdTest");
         vm_parameters.debug_mode = true;
         vm_parameters.prefer_staged = prefer_staged;
+        vm_parameters.os = os.to_owned();
         self.start_instance(TEST_INSTANCE_DIR, vm_parameters)
     }
 
diff --git a/android/composd/src/service.rs b/android/composd/src/service.rs
index 49cfd3a..3cc40af 100644
--- a/android/composd/src/service.rs
+++ b/android/composd/src/service.rs
@@ -60,6 +60,7 @@
         &self,
         apex_source: ApexSource,
         callback: &Strong<dyn ICompilationTaskCallback>,
+        os: &str,
     ) -> binder::Result<Strong<dyn ICompilationTask>> {
         check_permissions()?;
         let prefer_staged = match apex_source {
@@ -67,7 +68,7 @@
             ApexSource::PreferStaged => true,
             _ => unreachable!("Invalid ApexSource {:?}", apex_source),
         };
-        to_binder_result(self.do_start_test_compile(prefer_staged, callback))
+        to_binder_result(self.do_start_test_compile(prefer_staged, callback, os))
     }
 }
 
@@ -93,9 +94,12 @@
         &self,
         prefer_staged: bool,
         callback: &Strong<dyn ICompilationTaskCallback>,
+        os: &str,
     ) -> Result<Strong<dyn ICompilationTask>> {
-        let comp_os =
-            self.instance_manager.start_test_instance(prefer_staged).context("Starting CompOS")?;
+        let comp_os = self
+            .instance_manager
+            .start_test_instance(prefer_staged, os)
+            .context("Starting CompOS")?;
 
         let target_dir_name = TEST_ARTIFACTS_SUBDIR.to_owned();
         let task = OdrefreshTask::start(
diff --git a/android/composd_cmd/composd_cmd.rs b/android/composd_cmd/composd_cmd.rs
index 6d096a1..6281bd0 100644
--- a/android/composd_cmd/composd_cmd.rs
+++ b/android/composd_cmd/composd_cmd.rs
@@ -46,6 +46,10 @@
         /// If any APEX is staged, prefer the staged version.
         #[clap(long)]
         prefer_staged: bool,
+
+        /// OS for the VM.
+        #[clap(long, default_value = "microdroid")]
+        os: String,
     },
 }
 
@@ -56,7 +60,7 @@
 
     match action {
         Actions::StagedApexCompile {} => run_staged_apex_compile()?,
-        Actions::TestCompile { prefer_staged } => run_test_compile(prefer_staged)?,
+        Actions::TestCompile { prefer_staged, os } => run_test_compile(prefer_staged, &os)?,
     }
 
     println!("All Ok!");
@@ -116,9 +120,9 @@
     run_async_compilation(|service, callback| service.startStagedApexCompile(callback))
 }
 
-fn run_test_compile(prefer_staged: bool) -> Result<()> {
+fn run_test_compile(prefer_staged: bool, os: &str) -> Result<()> {
     let apex_source = if prefer_staged { ApexSource::PreferStaged } else { ApexSource::NoStaged };
-    run_async_compilation(|service, callback| service.startTestCompile(apex_source, callback))
+    run_async_compilation(|service, callback| service.startTestCompile(apex_source, callback, os))
 }
 
 fn run_async_compilation<F>(start_compile_fn: F) -> Result<()>
diff --git a/android/virtmgr/src/aidl.rs b/android/virtmgr/src/aidl.rs
index 1cae344..9a733b6 100644
--- a/android/virtmgr/src/aidl.rs
+++ b/android/virtmgr/src/aidl.rs
@@ -573,41 +573,42 @@
                 .or_binder_exception(ExceptionCode::SECURITY)?;
         }
 
-        // Check if partition images are labeled incorrectly. This is to prevent random images
-        // which are not protected by the Android Verified Boot (e.g. bits downloaded by apps) from
-        // being loaded in a pVM. This applies to everything but the instance image in the raw
-        // config, and everything but the non-executable, generated partitions in the app
-        // config.
-        config
-            .disks
-            .iter()
-            .flat_map(|disk| disk.partitions.iter())
-            .filter(|partition| {
-                if is_app_config {
-                    !is_safe_app_partition(&partition.label)
-                } else {
-                    !is_safe_raw_partition(&partition.label)
-                }
-            })
-            .try_for_each(check_label_for_partition)
-            .or_service_specific_exception(-1)?;
+        let kernel = maybe_clone_file(&config.kernel)?;
+        let initrd = maybe_clone_file(&config.initrd)?;
+
+        if config.protectedVm {
+            // Fail fast with a meaningful error message in case device doesn't support pVMs.
+            check_protected_vm_is_supported()?;
+
+            // In a protected VM, we require custom kernels to come from a trusted source
+            // (b/237054515).
+            check_label_for_kernel_files(&kernel, &initrd).or_service_specific_exception(-1)?;
+
+            // Check if partition images are labeled incorrectly. This is to prevent random images
+            // which are not protected by the Android Verified Boot (e.g. bits downloaded by apps)
+            // from being loaded in a pVM. This applies to everything but the instance image in the
+            // raw config, and everything but the non-executable, generated partitions in the app
+            // config.
+            config
+                .disks
+                .iter()
+                .flat_map(|disk| disk.partitions.iter())
+                .filter(|partition| {
+                    if is_app_config {
+                        !is_safe_app_partition(&partition.label)
+                    } else {
+                        !is_safe_raw_partition(&partition.label)
+                    }
+                })
+                .try_for_each(check_label_for_partition)
+                .or_service_specific_exception(-1)?;
+        }
 
         // Check if files for payloads and bases are NOT coming from /vendor and /odm, as they may
         // have unstable interfaces.
         // TODO(b/316431494): remove once Treble interfaces are stabilized.
         check_partitions_for_files(config).or_service_specific_exception(-1)?;
 
-        let kernel = maybe_clone_file(&config.kernel)?;
-        let initrd = maybe_clone_file(&config.initrd)?;
-
-        if config.protectedVm {
-            // In a protected VM, we require custom kernels to come from a trusted source
-            // (b/237054515).
-            check_label_for_kernel_files(&kernel, &initrd).or_service_specific_exception(-1)?;
-            // Fail fast with a meaningful error message in case device doesn't support pVMs.
-            check_protected_vm_is_supported()?;
-        }
-
         let zero_filler_path = temporary_directory.join("zero.img");
         write_zero_filler(&zero_filler_path)
             .context("Failed to make composite image")
diff --git a/android/virtmgr/src/crosvm.rs b/android/virtmgr/src/crosvm.rs
index b0944fc..46f4e80 100644
--- a/android/virtmgr/src/crosvm.rs
+++ b/android/virtmgr/src/crosvm.rs
@@ -1022,6 +1022,13 @@
         command.arg("--params").arg("console=hvc0");
     }
 
+    // Move the PCI MMIO regions to near the end of the low-MMIO space.
+    // This is done to accommodate a limitation in a partner's hypervisor.
+    #[cfg(target_arch = "aarch64")]
+    command
+        .arg("--pci")
+        .arg("mem=[start=0x70000000,size=0x2000000],cam=[start=0x72000000,size=0x1000000]");
+
     command.arg("--mem").arg(memory_mib.to_string());
 
     if let Some(cpus) = config.cpus {
diff --git a/build/apex/Android.bp b/build/apex/Android.bp
index 4759c19..6541764 100644
--- a/build/apex/Android.bp
+++ b/build/apex/Android.bp
@@ -182,12 +182,6 @@
         "true": ["virtualizationservice.xml"],
         default: unset,
     }),
-    required: select(release_flag("RELEASE_AVF_SUPPORT_CUSTOM_VM_WITH_PARAVIRTUALIZED_DEVICES"), {
-        true: [
-            "default-permissions_com.android.virt.xml",
-        ],
-        default: [],
-    }),
 }
 
 apex_defaults {
diff --git a/build/apex/permissions/Android.bp b/build/apex/permissions/Android.bp
index d773df6..678a4f2 100644
--- a/build/apex/permissions/Android.bp
+++ b/build/apex/permissions/Android.bp
@@ -23,9 +23,3 @@
     src: "features_com.android.virt.xml",
     soc_specific: true,
 }
-
-prebuilt_etc {
-    name: "default-permissions_com.android.virt.xml",
-    sub_dir: "default-permissions",
-    src: "default-permissions_com.android.virt.xml",
-}
diff --git a/build/apex/permissions/default-permissions_com.android.virt.xml b/build/apex/permissions/default-permissions_com.android.virt.xml
deleted file mode 100644
index ac15708..0000000
--- a/build/apex/permissions/default-permissions_com.android.virt.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
-<!--
-    Copyright (C) 2024 The Android Open Source Project
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License
--->
-
-<!--
-    This file contains permissions to be granted by default. Default
-    permissions are granted to special platform components and to apps
-    that are approved to get default grants. The special components
-    are apps that are expected tto work out-of-the-box as they provide
-    core use cases such as default dialer, default email, etc. These
-    grants are managed by the platform. The apps that are additionally
-    approved for default grants are ones that provide carrier specific
-    functionality, ones legally required at some location, ones providing
-    alternative disclosure and opt-out UI, ones providing highlight features
-    of a dedicated device, etc. This file contains only the latter exceptions.
-    Fixed permissions cannot be controlled by the user and need a special
-    approval. Typically these are to ensure either legally mandated functions
-    or the app is considered a part of the OS.
--->
-<exceptions>
-    <!-- This is an example of an exception:
-    <exception
-        package="foo.bar.permission"
-      <permission name="android.permission.READ_CONTACTS" fixed="true"/>
-      <permission name="android.permission.READ_CALENDAR" fixed="false"/>
-    </exception>
-    -->
-    <exception package="com.android.virtualization.terminal">
-        <permission name="android.permission.POST_NOTIFICATIONS" fixed="true"/>
-    </exception>
-</exceptions>
diff --git a/build/debian/build.sh b/build/debian/build.sh
index 59a98b6..1e43b60 100755
--- a/build/debian/build.sh
+++ b/build/debian/build.sh
@@ -97,6 +97,7 @@
 	if [[ "$arch" == "x86_64" ]]; then
 		packages+=(
 			libguestfs-tools
+			linux-image-generic
 		)
 	fi
 	DEBIAN_FRONTEND=noninteractive \
@@ -144,7 +145,7 @@
 build_ttyd() {
 	local ttyd_version=1.7.7
 	local url="https://github.com/tsl0922/ttyd/archive/refs/tags/${ttyd_version}.tar.gz"
-	cp -r $(dirname $0)/ttyd ${workdir}/ttyd
+	cp -r "$(dirname "$0")/ttyd" "${workdir}/ttyd"
 
 	pushd "${workdir}" > /dev/null
 	wget "${url}" -O - | tar xz
@@ -152,7 +153,7 @@
 	pushd "$workdir/ttyd-${ttyd_version}" > /dev/null
 	bash -c "env BUILD_TARGET=${arch} ./scripts/cross-build.sh"
 	mkdir -p "${dst}/files/usr/local/bin/ttyd"
-	cp /tmp/stage/${arch}-linux-musl/bin/ttyd "${dst}/files/usr/local/bin/ttyd/AVF"
+	cp "/tmp/stage/${arch}-linux-musl/bin/ttyd" "${dst}/files/usr/local/bin/ttyd/AVF"
 	chmod 777 "${dst}/files/usr/local/bin/ttyd/AVF"
 	mkdir -p "${dst}/files/usr/share/doc/ttyd"
 	cp LICENSE "${dst}/files/usr/share/doc/ttyd/copyright"
@@ -161,8 +162,10 @@
 }
 
 copy_android_config() {
-	local src="$(dirname "$0")/fai_config"
-	local dst="${config_space}"
+	local src
+	local dst
+	src="$(dirname "$0")/fai_config"
+	dst="${config_space}"
 
 	cp -R "${src}"/* "${dst}"
 	cp "$(dirname "$0")/image.yaml" "${resources_dir}"
@@ -181,14 +184,21 @@
 
 extract_partitions() {
 	root_partition_num=1
+	bios_partition_num=14
 	efi_partition_num=15
 
 	loop=$(losetup -f --show --partscan $built_image)
-	dd if=${loop}p$root_partition_num of=root_part
-	dd if=${loop}p$efi_partition_num of=efi_part
-	losetup -d ${loop}
+	dd if="${loop}p$root_partition_num" of=root_part
+	if [[ "$arch" == "x86_64" ]]; then
+		dd if="${loop}p$bios_partition_num" of=bios_part
+	fi
+	dd if="${loop}p$efi_partition_num" of=efi_part
+	losetup -d "${loop}"
 
 	sed -i "s/{root_part_guid}/$(sfdisk --part-uuid $built_image $root_partition_num)/g" vm_config.json
+	if [[ "$arch" == "x86_64" ]]; then
+		sed -i "s/{bios_part_guid}/$(sfdisk --part-uuid $built_image $bios_partition_num)/g" vm_config.json
+	fi
 	sed -i "s/{efi_part_guid}/$(sfdisk --part-uuid $built_image $efi_partition_num)/g" vm_config.json
 }
 
@@ -217,27 +227,28 @@
 fdisk -l "${built_image}"
 images=()
 
-cp $(dirname $0)/vm_config.json.${arch} vm_config.json
+cp "$(dirname "$0")/vm_config.json.${arch}" vm_config.json
+
+extract_partitions
 
 if [[ "$arch" == "aarch64" ]]; then
-	extract_partitions
 	images+=(
 		root_part
 		efi_part
 	)
-fi
-
 # TODO(b/365955006): remove these lines when uboot supports x86_64 EFI application
-if [[ "$arch" == "x86_64" ]]; then
+elif [[ "$arch" == "x86_64" ]]; then
 	virt-get-kernel -a "${built_image}"
 	mv vmlinuz* vmlinuz
 	mv initrd.img* initrd.img
 	images+=(
-		"${built_image}"
+		bios_part
+		root_part
+		efi_part
 		vmlinuz
 		initrd.img
 	)
 fi
 
 # --sparse option isn't supported in apache-commons-compress
-tar czv -f images.tar.gz ${images[@]} vm_config.json
+tar czv -f images.tar.gz "${images[@]}" vm_config.json
diff --git a/build/debian/fai_config/scripts/AVF/10-systemd b/build/debian/fai_config/scripts/AVF/10-systemd
index a514299..94838bc 100755
--- a/build/debian/fai_config/scripts/AVF/10-systemd
+++ b/build/debian/fai_config/scripts/AVF/10-systemd
@@ -10,3 +10,5 @@
 ln -s /etc/systemd/system/forwarder_guest_launcher.service $target/etc/systemd/system/multi-user.target.wants/forwarder_guest_launcher.service
 ln -s /etc/systemd/system/virtiofs_internal.service $target/etc/systemd/system/multi-user.target.wants/virtiofs_internal.service
 ln -s /etc/systemd/system/backup_mount.service $target/etc/systemd/system/multi-user.target.wants/backup_mount.service
+
+sed -i 's/#LLMNR=yes/LLMNR=no/' $target/etc/systemd/resolved.conf
diff --git a/build/debian/vm_config.json.x86_64 b/build/debian/vm_config.json.x86_64
index d338080..496e684 100644
--- a/build/debian/vm_config.json.x86_64
+++ b/build/debian/vm_config.json.x86_64
@@ -2,8 +2,26 @@
     "name": "debian",
     "disks": [
         {
-            "image": "$PAYLOAD_DIR/image.raw",
-            "partitions": [],
+            "partitions": [
+                {
+                    "label": "ROOT",
+                    "path": "$PAYLOAD_DIR/root_part",
+                    "writable": true,
+                    "guid": "{root_part_guid}"
+                },
+                {
+                    "label": "BIOS",
+                    "path": "$PAYLOAD_DIR/bios_part",
+                    "writable": true,
+                    "guid": "{bios_part_guid}"
+                },
+                {
+                    "label": "EFI",
+                    "path": "$PAYLOAD_DIR/efi_part",
+                    "writable": false,
+                    "guid": "{efi_part_guid}"
+                }
+            ],
             "writable": true
         }
     ],
diff --git a/build/microdroid/bootconfig.arm64 b/build/microdroid/bootconfig.arm64
index b1e6d56..7509a2c 100644
--- a/build/microdroid/bootconfig.arm64
+++ b/build/microdroid/bootconfig.arm64
@@ -1 +1 @@
-androidboot.boot_devices = 10000.pci
+androidboot.boot_devices = 72000000.pci
diff --git a/docs/custom_vm.md b/docs/custom_vm.md
index eaff2a4..7597131 100644
--- a/docs/custom_vm.md
+++ b/docs/custom_vm.md
@@ -42,4 +42,8 @@
 (or `localhost:6080` if port forwarding is enabled.)
 
 `weston` with VNC backend might be another option, but it isn't available in
-Debian package repository for bookworm.
\ No newline at end of file
+Debian package repository for bookworm.
+
+## Hardware accelration
+If the file `/sdcard/linux/virglrenderer` exists on the device, it enables VirGL for VM.
+This requires enabling ANGLE for the Terminal app. (https://chromium.googlesource.com/angle/angle.git/+/HEAD/doc/DevSetupAndroid.md)
diff --git a/guest/forwarder_guest_launcher/src/main.rs b/guest/forwarder_guest_launcher/src/main.rs
index 1da37b4..f6944d6 100644
--- a/guest/forwarder_guest_launcher/src/main.rs
+++ b/guest/forwarder_guest_launcher/src/main.rs
@@ -35,6 +35,7 @@
 }
 
 const NON_PREVILEGED_PORT_RANGE_START: i32 = 1024;
+const TTYD_PORT: i32 = 7681;
 const TCPSTATES_IP_4: i8 = 4;
 const TCPSTATES_STATE_CLOSE: &str = "CLOSE";
 const TCPSTATES_STATE_LISTEN: &str = "LISTEN";
@@ -108,6 +109,10 @@
     Ok(())
 }
 
+fn is_forwardable_port(port: i32) -> bool {
+    port >= NON_PREVILEGED_PORT_RANGE_START && port != TTYD_PORT
+}
+
 async fn report_active_ports(
     mut client: DebianServiceClient<Channel>,
 ) -> Result<(), Box<dyn std::error::Error>> {
@@ -130,7 +135,7 @@
         .map(|x| x.socket)
         .filter(|x| x.is_ipv4())
         .map(|x| x.port().into())
-        .filter(|x| *x >= NON_PREVILEGED_PORT_RANGE_START) // Ignore privileged ports
+        .filter(|x| is_forwardable_port(*x))
         .collect();
     send_active_ports_report(listening_ports.clone(), &mut client).await?;
 
@@ -140,7 +145,7 @@
         if row.ip != TCPSTATES_IP_4 {
             continue;
         }
-        if row.lport < NON_PREVILEGED_PORT_RANGE_START {
+        if !is_forwardable_port(row.lport) {
             continue;
         }
         if row.rport > 0 {
diff --git a/guest/pvmfw/platform.dts b/guest/pvmfw/platform.dts
index c3ecd0e..643a5e4 100644
--- a/guest/pvmfw/platform.dts
+++ b/guest/pvmfw/platform.dts
@@ -355,11 +355,11 @@
 		dma-coherent;
 		memory-region = <&swiotlb>;
 		ranges = <
-			0x3000000 0x0 0x02000000 0x0 0x02000000 0x00 0x02000000
+			0x3000000 0x0 0x70000000 0x0 0x70000000 0x00 0x02000000
 			0x3000000 PLACEHOLDER2   PLACEHOLDER2   PLACEHOLDER2
 		>;
 		bus-range = <0x00 0x00>;
-		reg = <0x00 0x10000 0x00 0x1000000>;
+		reg = <0x00 0x72000000 0x00 0x1000000>;
 		interrupt-map = <
 			0x0800 0x0 0x0 1 &intc 0 0 GIC_SPI (IRQ_BASE + 0) IRQ_TYPE_LEVEL_HIGH
 			0x1000 0x0 0x0 1 &intc 0 0 GIC_SPI (IRQ_BASE + 1) IRQ_TYPE_LEVEL_HIGH
diff --git a/guest/vmbase_example/src/layout.rs b/guest/vmbase_example/src/layout.rs
index 50ecb7e..55c7283 100644
--- a/guest/vmbase_example/src/layout.rs
+++ b/guest/vmbase_example/src/layout.rs
@@ -19,8 +19,8 @@
 use log::info;
 use vmbase::{layout, memory::PAGE_SIZE};
 
-/// The first 1 GiB of memory are used for MMIO.
-pub const DEVICE_REGION: MemoryRegion = MemoryRegion::new(0, 0x40000000);
+pub const DEVICE_REGION: MemoryRegion =
+    MemoryRegion::new(layout::crosvm::MMIO_START, layout::crosvm::MMIO_END);
 
 /// Writable data region for the stack.
 pub fn boot_stack_range() -> Range<VirtualAddress> {
diff --git a/libs/libcompos_common/compos_client.rs b/libs/libcompos_common/compos_client.rs
index 316eaa9..6872582 100644
--- a/libs/libcompos_common/compos_client.rs
+++ b/libs/libcompos_common/compos_client.rs
@@ -58,6 +58,8 @@
 pub struct VmParameters {
     /// The name of VM for identifying.
     pub name: String,
+    /// The OS of VM.
+    pub os: String,
     /// Whether the VM should be debuggable.
     pub debug_mode: bool,
     /// CPU topology of the VM. Defaults to 1 vCPU.
@@ -129,6 +131,7 @@
 
         let config = VirtualMachineConfig::AppConfig(VirtualMachineAppConfig {
             name: parameters.name.clone(),
+            osName: parameters.os.clone(),
             apk: Some(apk_fd),
             idsig: Some(idsig_fd),
             instanceId: instance_id,
diff --git a/libs/libvmbase/src/layout/crosvm.rs b/libs/libvmbase/src/layout/crosvm.rs
index d859b20..39a8147 100644
--- a/libs/libvmbase/src/layout/crosvm.rs
+++ b/libs/libvmbase/src/layout/crosvm.rs
@@ -21,10 +21,13 @@
 /// The start address of MMIO space.
 pub const MMIO_START: usize = 0x0;
 /// The end address of MMIO space.
-pub const MMIO_END: usize = 0x4000_0000;
+pub const MMIO_END: usize = PVMFW_START;
 /// MMIO range.
 pub const MMIO_RANGE: Range<usize> = MMIO_START..MMIO_END;
 
+/// Start pvmfw region.
+pub const PVMFW_START: usize = 0x7fc00000;
+
 /// The start of the system's contiguous "main" memory.
 pub const MEM_START: usize = 0x8000_0000;
 
diff --git a/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.java b/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.java
index 3c0461d..42c31e3 100644
--- a/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.java
+++ b/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.java
@@ -33,6 +33,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -88,7 +89,7 @@
     }
 
     @After
-    public void tearDown() {
-        InstallUtils.deleteInstallation(mTargetContext);
+    public void tearDown() throws IOException {
+        InstalledImage.getDefault(mTargetContext).uninstallFully();
     }
 }
diff --git a/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_golden.dts b/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_golden.dts
index 795c50f..095eb54 100644
--- a/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_golden.dts
+++ b/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_golden.dts
@@ -104,8 +104,8 @@
                 dma-coherent;
                 interrupt-map = <0x800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x04 0x04 0x1000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x05 0x04 0x1800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x06 0x04 0x2000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x07 0x04 0x2800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x08 0x04 0x3000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x09 0x04 0x3800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x0a 0x04 0x4000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x0b 0x04 0x4800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x0c 0x04>;
                 interrupt-map-mask = <0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07>;
-                ranges = <0x3000000 0x00 0x2000000 0x00 0x2000000 0x00 0x2000000 0x43000000 0x00 0x90800000 0x00 0x90800000 0xff 0x6f800000>;
-                reg = <0x00 0x10000 0x00 0x1000000>;
+                ranges = <0x3000000 0x00 0x70000000 0x00 0x70000000 0x00 0x2000000 0x43000000 0x00 0x90800000 0x00 0x90800000 0xff 0x6f800000>;
+                reg = <0x00 0x72000000 0x00 0x1000000>;
         };
 
         pclk@3M {
diff --git a/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_protected_golden.dts b/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_protected_golden.dts
index 5761c15..f2ebdf9 100644
--- a/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_protected_golden.dts
+++ b/tests/hostside/java/com/android/microdroid/test/goldens/dt_dump_protected_golden.dts
@@ -105,8 +105,8 @@
                 interrupt-map = <0x800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x04 0x04 0x1000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x05 0x04 0x1800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x06 0x04 0x2000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x07 0x04 0x2800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x08 0x04 0x3000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x09 0x04 0x3800 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x0a 0x04 0x4000 0x00 0x00 0x01 0x01 0x00 0x00 0x00 0x0b 0x04>;
                 interrupt-map-mask = <0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07 0xf800 0x00 0x00 0x07>;
                 memory-region = <0x02>;
-                ranges = <0x3000000 0x00 0x2000000 0x00 0x2000000 0x00 0x2000000 0x43000000 0x00 0x91600000 0x00 0x91600000 0xff 0x6ea00000>;
-                reg = <0x00 0x10000 0x00 0x1000000>;
+                ranges = <0x3000000 0x00 0x70000000 0x00 0x70000000 0x00 0x2000000 0x43000000 0x00 0x91600000 0x00 0x91600000 0xff 0x6ea00000>;
+                reg = <0x00 0x72000000 0x00 0x1000000>;
         };
 
         pclk@3M {