Merge "[test][dice] Add security_version to fake service VM DICE chain" into main
diff --git a/android/TerminalApp/AndroidManifest.xml b/android/TerminalApp/AndroidManifest.xml
index 7dab58d..726004c 100644
--- a/android/TerminalApp/AndroidManifest.xml
+++ b/android/TerminalApp/AndroidManifest.xml
@@ -54,7 +54,9 @@
             android:label="@string/settings_port_forwarding_title" />
         <activity android:name=".SettingsRecoveryActivity"
             android:label="@string/settings_recovery_title" />
-        <activity android:name=".ErrorActivity" />
+        <activity android:name=".ErrorActivity"
+            android:label="@string/error_title"
+            android:process=":error" />
         <property
             android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED"
             android:value="true" />
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/BaseActivity.java b/android/TerminalApp/java/com/android/virtualization/terminal/BaseActivity.java
index d6521be..d6ca1e6 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/BaseActivity.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/BaseActivity.java
@@ -39,6 +39,15 @@
                             NotificationManager.IMPORTANCE_DEFAULT);
             notificationManager.createNotificationChannel(channel);
         }
+
+        if (!(this instanceof ErrorActivity)) {
+            Thread currentThread = Thread.currentThread();
+            if (!(currentThread.getUncaughtExceptionHandler()
+                    instanceof TerminalExceptionHandler)) {
+                currentThread.setUncaughtExceptionHandler(
+                        new TerminalExceptionHandler(getApplicationContext()));
+            }
+        }
     }
 
     @Override
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/CertificateUtils.java b/android/TerminalApp/java/com/android/virtualization/terminal/CertificateUtils.java
index fa5c382..e3d1a67 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/CertificateUtils.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/CertificateUtils.java
@@ -62,9 +62,8 @@
             }
             return ((KeyStore.PrivateKeyEntry) ks.getEntry(ALIAS, null));
         } catch (Exception e) {
-            Log.e(TAG, "cannot generate or get key", e);
+            throw new RuntimeException("cannot generate or get key", e);
         }
-        return null;
     }
 
     private static void createKey()
@@ -95,7 +94,7 @@
                             + end_cert;
             writer.write(output.getBytes());
         } catch (IOException | CertificateEncodingException e) {
-            Log.d(TAG, "cannot write cert", e);
+            throw new RuntimeException("cannot write certs", e);
         }
     }
 }
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/ConfigJson.java b/android/TerminalApp/java/com/android/virtualization/terminal/ConfigJson.java
index bd1af49..a0fca82 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/ConfigJson.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/ConfigJson.java
@@ -76,6 +76,7 @@
     private SharedPathJson[] sharedPath;
     private DisplayJson display;
     private GpuJson gpu;
+    private boolean auto_memory_balloon;
 
     /** Parses JSON file at jsonPath */
     static ConfigJson from(Context context, Path jsonPath) {
@@ -92,12 +93,7 @@
         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);
+        rules.put("\\$APP_DATA_DIR", context.getDataDir().toString());
 
         try (BufferedReader br = new BufferedReader(r)) {
             return br.lines()
@@ -150,7 +146,8 @@
                 .setBootloaderPath(bootloader)
                 .setKernelPath(kernel)
                 .setInitrdPath(initrd)
-                .useNetwork(network);
+                .useNetwork(network)
+                .useAutoMemoryBalloon(auto_memory_balloon);
 
         if (input != null) {
             builder.useTouch(input.touchscreen)
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/DebianServiceImpl.java b/android/TerminalApp/java/com/android/virtualization/terminal/DebianServiceImpl.java
index d167da3..9cf6093 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/DebianServiceImpl.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/DebianServiceImpl.java
@@ -30,6 +30,8 @@
 import com.android.virtualization.terminal.proto.ReportVmActivePortsRequest;
 import com.android.virtualization.terminal.proto.ReportVmActivePortsResponse;
 import com.android.virtualization.terminal.proto.ReportVmIpAddrResponse;
+import com.android.virtualization.terminal.proto.ShutdownQueueOpeningRequest;
+import com.android.virtualization.terminal.proto.ShutdownRequestItem;
 
 import io.grpc.stub.StreamObserver;
 
@@ -41,6 +43,7 @@
     private final PortsStateManager mPortsStateManager;
     private PortsStateManager.Listener mPortsStateListener;
     private final DebianServiceCallback mCallback;
+    private Runnable mShutdownRunnable;
 
     static {
         System.loadLibrary("forwarder_host_jni");
@@ -93,6 +96,28 @@
         responseObserver.onCompleted();
     }
 
+    public boolean shutdownDebian() {
+        if (mShutdownRunnable == null) {
+            Log.d(TAG, "mShutdownRunnable is not ready.");
+            return false;
+        }
+        mShutdownRunnable.run();
+        return true;
+    }
+
+    @Override
+    public void openShutdownRequestQueue(
+            ShutdownQueueOpeningRequest request,
+            StreamObserver<ShutdownRequestItem> responseObserver) {
+        Log.d(TAG, "openShutdownRequestQueue");
+        mShutdownRunnable =
+                () -> {
+                    responseObserver.onNext(ShutdownRequestItem.newBuilder().build());
+                    responseObserver.onCompleted();
+                    mShutdownRunnable = null;
+                };
+    }
+
     @Keep
     private static class ForwarderHostCallback {
         private StreamObserver<ForwardingRequestItem> mResponseObserver;
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/InstallerService.java b/android/TerminalApp/java/com/android/virtualization/terminal/InstallerService.java
index ac05d78..66ab414 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/InstallerService.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/InstallerService.java
@@ -41,7 +41,6 @@
 import java.net.SocketException;
 import java.net.UnknownHostException;
 import java.nio.file.Path;
-import java.util.Arrays;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -75,6 +74,7 @@
                         this, /* requestCode= */ 0, intent, PendingIntent.FLAG_IMMUTABLE);
         mNotification =
                 new Notification.Builder(this, this.getPackageName())
+                        .setSilent(true)
                         .setSmallIcon(R.drawable.ic_launcher_foreground)
                         .setContentTitle(getString(R.string.installer_notif_title_text))
                         .setContentText(getString(R.string.installer_notif_desc_text))
@@ -82,7 +82,9 @@
                         .setContentIntent(pendingIntent)
                         .build();
 
-        mExecutorService = Executors.newSingleThreadExecutor();
+        mExecutorService =
+                Executors.newSingleThreadExecutor(
+                        new TerminalThreadFactory(getApplicationContext()));
 
         mConnectivityManager = getSystemService(ConnectivityManager.class);
         Network defaultNetwork = mConnectivityManager.getBoundNetworkForProcess();
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java b/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
index 397a546..316c8c4 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
@@ -32,6 +32,7 @@
 import android.os.Bundle;
 import android.os.ConditionVariable;
 import android.os.Environment;
+import android.os.SystemClock;
 import android.provider.Settings;
 import android.util.Log;
 import android.view.KeyEvent;
@@ -67,6 +68,8 @@
 import java.security.PrivateKey;
 import java.security.cert.X509Certificate;
 import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 public class MainActivity extends BaseActivity
         implements VmLauncherService.VmLauncherServiceCallback, AccessibilityStateChangeListener {
@@ -74,9 +77,11 @@
     static final String KEY_DISK_SIZE = "disk_size";
     private static final String VM_ADDR = "192.168.0.2";
     private static final int TTYD_PORT = 7681;
+    private static final int TERMINAL_CONNECTION_TIMEOUT_MS = 20_000;
     private static final int REQUEST_CODE_INSTALLER = 0x33;
     private static final int FONT_SIZE_DEFAULT = 13;
 
+    private ExecutorService mExecutorService;
     private InstalledImage mImage;
     private X509Certificate[] mCertificates;
     private PrivateKey mPrivateKey;
@@ -141,6 +146,11 @@
                             updateModifierKeysVisibility();
                             return insets;
                         });
+
+        mExecutorService =
+                Executors.newSingleThreadExecutor(
+                        new TerminalThreadFactory(getApplicationContext()));
+
         // if installer is launched, it will be handled in onActivityResult
         if (!launchInstaller) {
             if (!Environment.isExternalStorageManager()) {
@@ -323,15 +333,12 @@
                         handler.proceed();
                     }
                 });
-        new Thread(
-                        () -> {
-                            waitUntilVmStarts();
-                            runOnUiThread(
-                                    () ->
-                                            mTerminalView.loadUrl(
-                                                    getTerminalServiceUrl().toString()));
-                        })
-                .start();
+        mExecutorService.execute(
+                () -> {
+                    // TODO(b/376793781): Remove polling
+                    waitUntilVmStarts();
+                    runOnUiThread(() -> mTerminalView.loadUrl(getTerminalServiceUrl().toString()));
+                });
     }
 
     private static void waitUntilVmStarts() {
@@ -341,17 +348,37 @@
         } catch (UnknownHostException e) {
             // this can never happen.
         }
-        try {
-            while (!addr.isReachable(10000)) {}
-        } catch (IOException e) {
-            // give up on network error
-            throw new RuntimeException(e);
+        long startTime = SystemClock.elapsedRealtime();
+        while (true) {
+            int remainingTime =
+                    TERMINAL_CONNECTION_TIMEOUT_MS
+                            - (int) (SystemClock.elapsedRealtime() - startTime);
+
+            if (Thread.interrupted()) {
+                Log.d(TAG, "the waiting thread is interrupted");
+                return;
+            }
+            if (remainingTime <= 0) {
+                throw new RuntimeException("Connection to terminal timeout");
+            }
+            try {
+                // Note: this quits immediately if VM is unreachable.
+                if (addr.isReachable(remainingTime)) {
+                    return;
+                }
+            } catch (IOException e) {
+                // give up on network error
+                throw new RuntimeException(e);
+            }
         }
-        return;
     }
 
     @Override
     protected void onDestroy() {
+        if (mExecutorService != null) {
+            mExecutorService.shutdown();
+        }
+
         getSystemService(AccessibilityManager.class).removeAccessibilityStateChangeListener(this);
         VmLauncherService.stop(this);
         super.onDestroy();
@@ -471,6 +498,7 @@
         Icon icon = Icon.createWithResource(getResources(), R.drawable.ic_launcher_foreground);
         Notification notification =
                 new Notification.Builder(this, this.getPackageName())
+                        .setSilent(true)
                         .setSmallIcon(R.drawable.ic_launcher_foreground)
                         .setContentTitle(
                                 getResources().getString(R.string.service_notification_title))
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt
index b893d9e..8ea4b25 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt
@@ -21,6 +21,7 @@
 import android.icu.util.Measure
 import android.icu.util.MeasureUnit
 import android.os.Bundle
+import android.os.Environment
 import android.text.SpannableString
 import android.text.Spanned
 import android.text.TextUtils
@@ -35,9 +36,8 @@
 import java.util.regex.Pattern
 
 class SettingsDiskResizeActivity : AppCompatActivity() {
-    // TODO(b/382191950): Calculate the maxDiskSizeMb based on the device storage usage
-    private val maxDiskSizeMb: Long = 16 shl 10
     private val numberPattern: Pattern = Pattern.compile("[\\d]*[\\٫.,]?[\\d]+")
+    private val defaultMaxDiskSizeMb: Long = 16 shl 10
 
     private var diskSizeStepMb: Long = 0
     private var diskSizeMb: Long = 0
@@ -72,6 +72,10 @@
         val image = InstalledImage.getDefault(this)
         diskSizeMb = bytesToMb(image.getSize())
         val minDiskSizeMb = bytesToMb(image.getSmallestSizePossible()).coerceAtMost(diskSizeMb)
+        val usableSpaceMb =
+            bytesToMb(Environment.getDataDirectory().getUsableSpace()) and
+                (diskSizeStepMb - 1).inv()
+        val maxDiskSizeMb = defaultMaxDiskSizeMb.coerceAtMost(diskSizeMb + usableSpaceMb)
 
         diskSizeText = findViewById<TextView>(R.id.settings_disk_resize_resize_gb_assigned)!!
         val diskMaxSizeText = findViewById<TextView>(R.id.settings_disk_resize_resize_gb_max)
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActiveAdapter.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActiveAdapter.kt
new file mode 100644
index 0000000..c46effa
--- /dev/null
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActiveAdapter.kt
@@ -0,0 +1,58 @@
+/*
+ * 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.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.google.android.material.materialswitch.MaterialSwitch
+
+class SettingsPortForwardingActiveAdapter(private val mPortsStateManager: PortsStateManager) :
+    SettingsPortForwardingBaseAdapter<SettingsPortForwardingActiveAdapter.ViewHolder>() {
+
+    override fun getItems(): ArrayList<SettingsPortForwardingItem> {
+        val enabledPorts = mPortsStateManager.getEnabledPorts()
+        return mPortsStateManager
+            .getActivePorts()
+            .map { SettingsPortForwardingItem(it, enabledPorts.contains(it)) }
+            .toCollection(ArrayList())
+    }
+
+    class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+        val enabledSwitch: MaterialSwitch =
+            view.findViewById(R.id.settings_port_forwarding_active_item_enabled_switch)
+        val port: TextView = view.findViewById(R.id.settings_port_forwarding_active_item_port)
+    }
+
+    override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): ViewHolder {
+        val view =
+            LayoutInflater.from(viewGroup.context)
+                .inflate(R.layout.settings_port_forwarding_active_item, viewGroup, false)
+        return ViewHolder(view)
+    }
+
+    override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {
+        val port = mItems[position].port
+        viewHolder.port.text = port.toString()
+        viewHolder.enabledSwitch.contentDescription = viewHolder.port.text
+        viewHolder.enabledSwitch.isChecked = mItems[position].enabled
+        viewHolder.enabledSwitch.setOnCheckedChangeListener { _, isChecked ->
+            mPortsStateManager.updateEnabledPort(port, isChecked)
+        }
+    }
+}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActivity.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActivity.kt
index d64c267..27d6ce7 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActivity.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActivity.kt
@@ -15,34 +15,149 @@
  */
 package com.android.virtualization.terminal
 
+import android.content.DialogInterface
 import android.os.Bundle
+import android.text.Editable
+import android.text.TextWatcher
+import android.widget.EditText
+import android.widget.ImageButton
+import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.app.AppCompatActivity
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+
+private const val PORT_RANGE_MIN: Int = 1024
+private const val PORT_RANGE_MAX: Int = 65535
 
 class SettingsPortForwardingActivity : AppCompatActivity() {
     private lateinit var mPortsStateManager: PortsStateManager
-    private lateinit var mAdapter: SettingsPortForwardingAdapter
+    private lateinit var mPortsStateListener: Listener
+    private lateinit var mActivePortsAdapter: SettingsPortForwardingActiveAdapter
+    private lateinit var mInactivePortsAdapter: SettingsPortForwardingInactiveAdapter
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.settings_port_forwarding)
 
         mPortsStateManager = PortsStateManager.getInstance(this)
-        mAdapter = SettingsPortForwardingAdapter(mPortsStateManager)
 
-        val recyclerView: RecyclerView = findViewById(R.id.settings_port_forwarding_recycler_view)
-        recyclerView.layoutManager = LinearLayoutManager(this)
-        recyclerView.adapter = mAdapter
+        mActivePortsAdapter = SettingsPortForwardingActiveAdapter(mPortsStateManager)
+        val activeRecyclerView: RecyclerView =
+            findViewById(R.id.settings_port_forwarding_active_recycler_view)
+        activeRecyclerView.layoutManager = LinearLayoutManager(this)
+        activeRecyclerView.adapter = mActivePortsAdapter
+
+        mInactivePortsAdapter = SettingsPortForwardingInactiveAdapter(mPortsStateManager, this)
+        val inactiveRecyclerView: RecyclerView =
+            findViewById(R.id.settings_port_forwarding_inactive_recycler_view)
+        inactiveRecyclerView.layoutManager = LinearLayoutManager(this)
+        inactiveRecyclerView.adapter = mInactivePortsAdapter
+
+        mPortsStateListener = Listener()
+
+        val addButton = findViewById<ImageButton>(R.id.settings_port_forwarding_inactive_add_button)
+        addButton.setOnClickListener {
+            val dialog =
+                MaterialAlertDialogBuilder(this)
+                    .setTitle(R.string.settings_port_forwarding_dialog_title)
+                    .setView(R.layout.settings_port_forwarding_inactive_add_dialog)
+                    .setPositiveButton(R.string.settings_port_forwarding_dialog_save) {
+                        dialogInterface,
+                        _ ->
+                        val alertDialog = dialogInterface as AlertDialog
+                        val editText =
+                            alertDialog.findViewById<EditText>(
+                                R.id.settings_port_forwarding_inactive_add_dialog_text
+                            )!!
+                        val port = editText.text.toString().toInt()
+                        mPortsStateManager.updateEnabledPort(port, true)
+                    }
+                    .setNegativeButton(R.string.settings_port_forwarding_dialog_cancel, null)
+                    .create()
+            dialog.show()
+
+            val positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE)
+            positiveButton.setEnabled(false)
+            val editText =
+                dialog.findViewById<EditText>(
+                    R.id.settings_port_forwarding_inactive_add_dialog_text
+                )!!
+            editText.addTextChangedListener(
+                object : TextWatcher {
+                    override fun beforeTextChanged(
+                        s: CharSequence?,
+                        start: Int,
+                        count: Int,
+                        after: Int,
+                    ) {}
+
+                    override fun afterTextChanged(s: Editable?) {}
+
+                    override fun onTextChanged(
+                        s: CharSequence?,
+                        start: Int,
+                        before: Int,
+                        count: Int,
+                    ) {
+                        val port =
+                            try {
+                                s.toString().toInt()
+                            } catch (e: NumberFormatException) {
+                                editText.setError(
+                                    getString(
+                                        R.string.settings_port_forwarding_dialog_error_invalid_input
+                                    )
+                                )
+                                positiveButton.setEnabled(false)
+                                return@onTextChanged
+                            }
+                        if (port > PORT_RANGE_MAX || port < PORT_RANGE_MIN) {
+                            editText.setError(
+                                getString(
+                                    R.string
+                                        .settings_port_forwarding_dialog_error_invalid_port_range
+                                )
+                            )
+                            positiveButton.setEnabled(false)
+                        } else if (
+                            mPortsStateManager.getActivePorts().contains(port) ||
+                                mPortsStateManager.getEnabledPorts().contains(port)
+                        ) {
+                            editText.setError(
+                                getString(
+                                    R.string.settings_port_forwarding_dialog_error_existing_port
+                                )
+                            )
+                            positiveButton.setEnabled(false)
+                        } else {
+                            positiveButton.setEnabled(true)
+                        }
+                    }
+                }
+            )
+        }
+    }
+
+    private fun refreshAdapters() {
+        mActivePortsAdapter.refreshItems()
+        mInactivePortsAdapter.refreshItems()
     }
 
     override fun onResume() {
         super.onResume()
-        mAdapter.registerPortsStateListener()
+        mPortsStateManager.registerListener(mPortsStateListener)
+        refreshAdapters()
     }
 
     override fun onPause() {
-        mAdapter.unregisterPortsStateListener()
+        mPortsStateManager.unregisterListener(mPortsStateListener)
         super.onPause()
     }
+
+    private inner class Listener : PortsStateManager.Listener {
+        override fun onPortsStateUpdated(oldActivePorts: Set<Int>, newActivePorts: Set<Int>) {
+            refreshAdapters()
+        }
+    }
 }
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingAdapter.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingAdapter.kt
deleted file mode 100644
index 8282910..0000000
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingAdapter.kt
+++ /dev/null
@@ -1,111 +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 android.view.LayoutInflater
-import android.view.View
-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 mPortsStateManager: PortsStateManager) :
-    RecyclerView.Adapter<SettingsPortForwardingAdapter.ViewHolder>() {
-
-    private var mItems: SortedList<SettingsPortForwardingItem>
-    private val mPortsStateListener: Listener
-
-    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())
-        mPortsStateListener = Listener()
-    }
-
-    fun registerPortsStateListener() {
-        mPortsStateManager.registerListener(mPortsStateListener)
-        mItems.replaceAll(getCurrentSettingsPortForwardingItem())
-    }
-
-    fun unregisterPortsStateListener() {
-        mPortsStateManager.unregisterListener(mPortsStateListener)
-    }
-
-    private fun getCurrentSettingsPortForwardingItem(): ArrayList<SettingsPortForwardingItem> {
-        val enabledPorts = mPortsStateManager.getEnabledPorts()
-        return mPortsStateManager
-            .getActivePorts()
-            .map { SettingsPortForwardingItem(it, enabledPorts.contains(it)) }
-            .toCollection(ArrayList())
-    }
-
-    class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
-        val enabledSwitch: MaterialSwitch =
-            view.findViewById(R.id.settings_port_forwarding_item_enabled_switch)
-        val port: TextView = view.findViewById(R.id.settings_port_forwarding_item_port)
-    }
-
-    override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): ViewHolder {
-        val view =
-            LayoutInflater.from(viewGroup.context)
-                .inflate(R.layout.settings_port_forwarding_item, viewGroup, false)
-        return ViewHolder(view)
-    }
-
-    override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {
-        val port = mItems[position].port
-        viewHolder.port.text = port.toString()
-        viewHolder.enabledSwitch.contentDescription = viewHolder.port.text
-        viewHolder.enabledSwitch.isChecked = mItems[position].enabled
-        viewHolder.enabledSwitch.setOnCheckedChangeListener { _, isChecked ->
-            mPortsStateManager.updateEnabledPort(port, isChecked)
-        }
-    }
-
-    override fun getItemCount() = mItems.size()
-
-    private inner class Listener : PortsStateManager.Listener {
-        override fun onPortsStateUpdated(oldActivePorts: Set<Int>, newActivePorts: Set<Int>) {
-            mItems.replaceAll(getCurrentSettingsPortForwardingItem())
-        }
-    }
-}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingBaseAdapter.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingBaseAdapter.kt
new file mode 100644
index 0000000..4595372
--- /dev/null
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingBaseAdapter.kt
@@ -0,0 +1,62 @@
+/*
+ * 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 androidx.recyclerview.widget.RecyclerView
+import androidx.recyclerview.widget.SortedList
+import androidx.recyclerview.widget.SortedListAdapterCallback
+
+abstract class SettingsPortForwardingBaseAdapter<T : RecyclerView.ViewHolder>() :
+    RecyclerView.Adapter<T>() {
+    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
+                    }
+                },
+            )
+    }
+
+    override fun getItemCount() = mItems.size()
+
+    abstract fun getItems(): ArrayList<SettingsPortForwardingItem>
+
+    fun refreshItems() {
+        mItems.replaceAll(getItems())
+    }
+}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingInactiveAdapter.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingInactiveAdapter.kt
new file mode 100644
index 0000000..d572129
--- /dev/null
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingInactiveAdapter.kt
@@ -0,0 +1,64 @@
+/*
+ * 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.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageButton
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+
+class SettingsPortForwardingInactiveAdapter(
+    private val mPortsStateManager: PortsStateManager,
+    private val mContext: Context,
+) : SettingsPortForwardingBaseAdapter<SettingsPortForwardingInactiveAdapter.ViewHolder>() {
+
+    override fun getItems(): ArrayList<SettingsPortForwardingItem> {
+        return mPortsStateManager
+            .getEnabledPorts()
+            .subtract(mPortsStateManager.getActivePorts())
+            .map { SettingsPortForwardingItem(it, true) }
+            .toCollection(ArrayList())
+    }
+
+    class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+        val closeButton: ImageButton =
+            view.findViewById(R.id.settings_port_forwarding_inactive_item_close_button)
+        val port: TextView = view.findViewById(R.id.settings_port_forwarding_inactive_item_port)
+    }
+
+    override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): ViewHolder {
+        val view =
+            LayoutInflater.from(viewGroup.context)
+                .inflate(R.layout.settings_port_forwarding_inactive_item, viewGroup, false)
+        return ViewHolder(view)
+    }
+
+    override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {
+        val port = mItems[position].port
+        viewHolder.port.text = port.toString()
+        viewHolder.closeButton.contentDescription =
+            mContext.getString(
+                R.string.settings_port_forwarding_other_enabled_port_close_button,
+                port,
+            )
+        viewHolder.closeButton.setOnClickListener { _ ->
+            mPortsStateManager.updateEnabledPort(port, false)
+        }
+    }
+}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/TerminalExceptionHandler.java b/android/TerminalApp/java/com/android/virtualization/terminal/TerminalExceptionHandler.java
new file mode 100644
index 0000000..4ab2b77
--- /dev/null
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/TerminalExceptionHandler.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 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.content.Context;
+import android.util.Log;
+
+public class TerminalExceptionHandler implements Thread.UncaughtExceptionHandler {
+    private static final String TAG = "TerminalExceptionHandler";
+
+    private final Context mContext;
+
+    public TerminalExceptionHandler(Context context) {
+        mContext = context;
+    }
+
+    @Override
+    public void uncaughtException(Thread thread, Throwable throwable) {
+        Exception exception;
+        if (throwable instanceof Exception) {
+            exception = (Exception) throwable;
+        } else {
+            exception = new Exception(throwable);
+        }
+        try {
+            ErrorActivity.start(mContext, exception);
+        } catch (Exception ex) {
+            Log.wtf(TAG, "Failed to launch error activity for an exception", exception);
+        }
+
+        thread.getDefaultUncaughtExceptionHandler().uncaughtException(thread, throwable);
+    }
+}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/TerminalThreadFactory.java b/android/TerminalApp/java/com/android/virtualization/terminal/TerminalThreadFactory.java
new file mode 100644
index 0000000..5ee535d
--- /dev/null
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/TerminalThreadFactory.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 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.content.Context;
+
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadFactory;
+
+public class TerminalThreadFactory implements ThreadFactory {
+    private final Context mContext;
+
+    public TerminalThreadFactory(Context context) {
+        mContext = context;
+    }
+
+    @Override
+    public Thread newThread(Runnable r) {
+        Thread thread = Executors.defaultThreadFactory().newThread(r);
+        thread.setUncaughtExceptionHandler(new TerminalExceptionHandler(mContext));
+        return thread;
+    }
+}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.java b/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.java
index a82c688..f262f1f 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.java
@@ -20,9 +20,11 @@
 
 import android.app.Notification;
 import android.app.NotificationManager;
+import android.app.PendingIntent;
 import android.app.Service;
 import android.content.Context;
 import android.content.Intent;
+import android.graphics.drawable.Icon;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -54,7 +56,6 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Objects;
-import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -144,14 +145,23 @@
     @Override
     public int onStartCommand(Intent intent, int flags, int startId) {
         if (Objects.equals(intent.getAction(), ACTION_STOP_VM_LAUNCHER_SERVICE)) {
-            stopSelf();
+
+            if (mDebianService != null && mDebianService.shutdownDebian()) {
+                // During shutdown, change the notification content to indicate that it's closing
+                Notification notification = createNotificationForTerminalClose();
+                getSystemService(NotificationManager.class).notify(this.hashCode(), notification);
+            } else {
+                // If there is no Debian service or it fails to shutdown, just stop the service.
+                stopSelf();
+            }
             return START_NOT_STICKY;
         }
         if (mVirtualMachine != null) {
             Log.d(TAG, "VM instance is already started");
             return START_NOT_STICKY;
         }
-        mExecutorService = Executors.newCachedThreadPool();
+        mExecutorService =
+                Executors.newCachedThreadPool(new TerminalThreadFactory(getApplicationContext()));
 
         InstalledImage image = InstalledImage.getDefault(this);
         ConfigJson json = ConfigJson.from(this, image.getConfigPath());
@@ -170,9 +180,7 @@
             android.os.Trace.endSection();
             android.os.Trace.beginAsyncSection("debianBoot", 0);
         } catch (VirtualMachineException e) {
-            Log.e(TAG, "cannot create runner", e);
-            stopSelf();
-            return START_NOT_STICKY;
+            throw new RuntimeException("cannot create runner", e);
         }
         mVirtualMachine = runner.getVm();
         mResultReceiver =
@@ -202,6 +210,32 @@
         return START_NOT_STICKY;
     }
 
+    private Notification createNotificationForTerminalClose() {
+        Intent stopIntent = new Intent();
+        stopIntent.setClass(this, VmLauncherService.class);
+        stopIntent.setAction(VmLauncherService.ACTION_STOP_VM_LAUNCHER_SERVICE);
+        PendingIntent stopPendingIntent =
+                PendingIntent.getService(
+                        this,
+                        0,
+                        stopIntent,
+                        PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
+        Icon icon = Icon.createWithResource(getResources(), R.drawable.ic_launcher_foreground);
+        String stopActionText =
+                getResources().getString(R.string.service_notification_force_quit_action);
+        String stopNotificationTitle =
+                getResources().getString(R.string.service_notification_close_title);
+        return new Notification.Builder(this, this.getPackageName())
+                .setSmallIcon(R.drawable.ic_launcher_foreground)
+                .setContentTitle(stopNotificationTitle)
+                .setOngoing(true)
+                .setSilent(true)
+                .addAction(
+                        new Notification.Action.Builder(icon, stopActionText, stopPendingIntent)
+                                .build())
+                .build();
+    }
+
     private boolean overrideConfigIfNecessary(VirtualMachineCustomImageConfig.Builder builder) {
         boolean changed = false;
         // TODO: check if ANGLE is enabled for the app.
@@ -293,12 +327,15 @@
 
     public static void stop(Context context) {
         Intent i = getMyIntent(context);
-        context.stopService(i);
+        i.setAction(VmLauncherService.ACTION_STOP_VM_LAUNCHER_SERVICE);
+        context.startService(i);
     }
 
     @Override
     public void onDestroy() {
-        mPortNotifier.stop();
+        if (mPortNotifier != null) {
+            mPortNotifier.stop();
+        }
         getSystemService(NotificationManager.class).cancelAll();
         stopDebianServer();
         if (mVirtualMachine != null) {
diff --git a/android/TerminalApp/res/drawable/ic_add.xml b/android/TerminalApp/res/drawable/ic_add.xml
new file mode 100644
index 0000000..ebe9284
--- /dev/null
+++ b/android/TerminalApp/res/drawable/ic_add.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--  Copyright 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.
+ -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960"
+    android:tint="?attr/colorControlNormal">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M440,520L200,520L200,440L440,440L440,200L520,200L520,440L760,440L760,520L520,520L520,760L440,760L440,520Z"/>
+</vector>
diff --git a/android/TerminalApp/res/drawable/ic_close.xml b/android/TerminalApp/res/drawable/ic_close.xml
new file mode 100644
index 0000000..e21c19c
--- /dev/null
+++ b/android/TerminalApp/res/drawable/ic_close.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--  Copyright 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.
+ -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960"
+    android:tint="?attr/colorControlNormal">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M256,760L200,704L424,480L200,256L256,200L480,424L704,200L760,256L536,480L760,704L704,760L480,536L256,760Z"/>
+</vector>
diff --git a/android/TerminalApp/res/layout/settings_port_forwarding.xml b/android/TerminalApp/res/layout/settings_port_forwarding.xml
index 2d21962..880ac44 100644
--- a/android/TerminalApp/res/layout/settings_port_forwarding.xml
+++ b/android/TerminalApp/res/layout/settings_port_forwarding.xml
@@ -14,7 +14,9 @@
      limitations under the License.
  -->
 
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical"
@@ -31,9 +33,55 @@
         android:hyphenationFrequency="full"
         android:layout_marginBottom="24dp"/>
 
+    <TextView
+        android:layout_height="wrap_content"
+        android:layout_width="wrap_content"
+        android:text="@string/settings_port_forwarding_active_ports_title"
+        android:textSize="24sp"
+        android:hyphenationFrequency="full"
+        android:layout_marginBottom="24dp"/>
+
     <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/settings_port_forwarding_recycler_view"
+        android:id="@+id/settings_port_forwarding_active_recycler_view"
         android:layout_marginHorizontal="16dp"
+        android:layout_marginBottom="24dp"
         android:layout_width="match_parent"
-        android:layout_height="match_parent" />
+        android:layout_height="wrap_content" />
+
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="24dp">
+
+        <TextView
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="@string/settings_port_forwarding_other_enabled_ports_title"
+            android:textSize="24sp"
+            android:hyphenationFrequency="full"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toStartOf="parent" />
+
+        <ImageButton
+            android:id="@+id/settings_port_forwarding_inactive_add_button"
+            android:src="@drawable/ic_add"
+            android:background="@android:color/transparent"
+            android:contentDescription="@string/settings_port_forwarding_other_enabled_port_add_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginHorizontal="16dp"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/settings_port_forwarding_inactive_recycler_view"
+        android:layout_marginHorizontal="16dp"
+        android:layout_marginBottom="24dp"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
 </LinearLayout>
diff --git a/android/TerminalApp/res/layout/settings_port_forwarding_item.xml b/android/TerminalApp/res/layout/settings_port_forwarding_active_item.xml
similarity index 81%
rename from android/TerminalApp/res/layout/settings_port_forwarding_item.xml
rename to android/TerminalApp/res/layout/settings_port_forwarding_active_item.xml
index 8a57b41..2a74146 100644
--- a/android/TerminalApp/res/layout/settings_port_forwarding_item.xml
+++ b/android/TerminalApp/res/layout/settings_port_forwarding_active_item.xml
@@ -19,21 +19,26 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:minHeight="48dp"
     app:layout_constraintCircleRadius="@dimen/material_emphasis_medium">
 
     <TextView
-        android:id="@+id/settings_port_forwarding_item_port"
+        android:id="@+id/settings_port_forwarding_active_item_port"
         android:layout_height="wrap_content"
         android:layout_width="match_parent"
+        android:textSize="16sp"
+        android:layout_marginTop="8dp"
+        android:layout_marginBottom="8dp"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintStart_toStartOf="parent"/>
 
     <com.google.android.material.materialswitch.MaterialSwitch
-        android:id="@+id/settings_port_forwarding_item_enabled_switch"
+        android:id="@+id/settings_port_forwarding_active_item_enabled_switch"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent" />
 
-</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/android/TerminalApp/res/layout/settings_port_forwarding_inactive_add_dialog.xml b/android/TerminalApp/res/layout/settings_port_forwarding_inactive_add_dialog.xml
new file mode 100644
index 0000000..84fb611
--- /dev/null
+++ b/android/TerminalApp/res/layout/settings_port_forwarding_inactive_add_dialog.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--  Copyright 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.
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:padding="16dp">
+
+    <EditText
+        android:id="@+id/settings_port_forwarding_inactive_add_dialog_text"
+        android:hint="@string/settings_port_forwarding_dialog_textview_hint"
+        android:importantForAutofill="no"
+        android:inputType="number"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+
+</LinearLayout>
diff --git a/android/TerminalApp/res/layout/settings_port_forwarding_item.xml b/android/TerminalApp/res/layout/settings_port_forwarding_inactive_item.xml
similarity index 74%
copy from android/TerminalApp/res/layout/settings_port_forwarding_item.xml
copy to android/TerminalApp/res/layout/settings_port_forwarding_inactive_item.xml
index 8a57b41..3e0d53b 100644
--- a/android/TerminalApp/res/layout/settings_port_forwarding_item.xml
+++ b/android/TerminalApp/res/layout/settings_port_forwarding_inactive_item.xml
@@ -19,21 +19,28 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:minHeight="48dp"
     app:layout_constraintCircleRadius="@dimen/material_emphasis_medium">
 
     <TextView
-        android:id="@+id/settings_port_forwarding_item_port"
+        android:id="@+id/settings_port_forwarding_inactive_item_port"
         android:layout_height="wrap_content"
         android:layout_width="match_parent"
+        android:textSize="16sp"
+        android:layout_marginTop="8dp"
+        android:layout_marginBottom="8dp"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintStart_toStartOf="parent"/>
 
-    <com.google.android.material.materialswitch.MaterialSwitch
-        android:id="@+id/settings_port_forwarding_item_enabled_switch"
+    <ImageButton
+        android:id="@+id/settings_port_forwarding_inactive_item_close_button"
+        android:src="@drawable/ic_close"
+        android:background="@android:color/transparent"
+        android:contentDescription="@null"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/android/TerminalApp/res/values-af/strings.xml b/android/TerminalApp/res/values-af/strings.xml
index 0e4309e..b5b47d9 100644
--- a/android/TerminalApp/res/values-af/strings.xml
+++ b/android/TerminalApp/res/values-af/strings.xml
@@ -17,88 +17,65 @@
 <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>
-    <string name="terminal_display" msgid="4810127497644015237">"Terminaalskerm"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Skermpyltjie"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Leë reël"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Installeer"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installeer tans"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Netwerkfout. Gaan verbinding na en probeer weer."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linus-terminaal word tans geïnstalleer"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Stop tans terminaal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminaal het omgeval"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Verander grootte van skyf"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Verander grootte / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Skyfgrootte is gestel"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminaal probeer om ’n nuwe poort oop te maak"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Poort versoek om oop te wees: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Aanvaar"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Weier"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Herwin"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Stel terminaal terug"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <string name="error_code" msgid="3585291676855383649">"Foutkode: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 289d2b9..aa97b52 100644
--- a/android/TerminalApp/res/values-am/strings.xml
+++ b/android/TerminalApp/res/values-am/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ጫን"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"በመጫን ላይ"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"የአውታረ መረብ ስህተት። ግንኙነት ይፈትሹ እና እንደገና ይሞክሩ።"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ተርሚናልን በመጫን ላይ"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"ተርሚናልን ዳግም አስጀምር"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ምትኬ ስላልተሳካ መልሶ ማግኘት አልተሳካም"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"መልሶ ማግኘት አልተሳካም"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"የመጠባበቂያ ፋይልን ማስወገድ አይቻልም"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ምትኬ ውሂብን አስወግድ"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"ተርሚናሉን ለመክፈት ጠቅ ያድርጉ"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ዝጋ"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 e8f7fc5..5f9ad2e 100644
--- a/android/TerminalApp/res/values-ar/strings.xml
+++ b/android/TerminalApp/res/values-ar/strings.xml
@@ -17,88 +17,62 @@
 <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">"شاشة الوحدة الطرفية"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"المؤشر"</string>
-    <string name="empty_line" msgid="5012067143408427178">"سطر فارغ"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"تثبيت"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"جارٍ التثبيت"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"حدث خطأ في الشبكة. يُرجى التحقُّق من الاتصال وإعادة المحاولة."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"جارٍ تثبيت الوحدة الطرفية بنظام التشغيل Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"جارٍ إيقاف Terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"تعطَّل Terminal"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"إعادة ضبط الوحدة الطرفية"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"تعذّر الاسترداد بسبب عدم نجاح عملية الاحتفاظ بنسخة احتياطية"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"تعذّر الاسترداد"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"تتعذّر إزالة ملف النسخة الاحتياطية"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"إزالة بيانات النسخة الاحتياطية"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"انقر لفتح الوحدة الطرفية"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"إغلاق"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 5c0c6b5..ce4f6ab 100644
--- a/android/TerminalApp/res/values-as/strings.xml
+++ b/android/TerminalApp/res/values-as/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ইনষ্টল কৰক"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"ইনষ্টল কৰি থকা হৈছে"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"নেটৱৰ্কৰ আসোঁৱাহ। সংযোগ পৰীক্ষা কৰক আৰু পুনৰ চেষ্টা কৰক।"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux টাৰ্মিনেল ইনষ্টল কৰি থকা হৈছে"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"টাৰ্মিনেল ৰিছেট কৰক"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"বেকআপ ল\'ব পৰা নগ\'ল বাবে পুনৰুদ্ধাৰ কৰিব পৰা নগ’ল"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"পুনৰুদ্ধাৰ কৰিব পৰা নগ’ল"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"বেকআপ লোৱা ফাইল আঁতৰাব নোৱাৰি"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"বেকআপ লোৱা ডেটা আঁতৰাওক"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"টাৰ্মিনেলটো খুলিবলৈ ক্লিক কৰক"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"বন্ধ কৰক"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 b255b43..f816d81 100644
--- a/android/TerminalApp/res/values-az/strings.xml
+++ b/android/TerminalApp/res/values-az/strings.xml
@@ -17,88 +17,62 @@
 <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 displeyi"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Boş sətir"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Quraşdırın"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Quraşdırılır"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Şəbəkə xətası. Bağlantını yoxlayıb yenidən cəhd edin."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux terminalı quraşdırılır"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Terminal dayandırılır"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal çökdü"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Disk ölçüsü dəyişdirilməsi"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Yenidən ölçüləndirin / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Disk ölçüsü ayarlandı"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal yeni port açmağa çalışır"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Portun açıq olması tələb edildi: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Qəbul edin"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Rədd edin"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Bərpa"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Terminalı sıfırlayın"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 9a7da82..e454a8b 100644
--- a/android/TerminalApp/res/values-b+sr+Latn/strings.xml
+++ b/android/TerminalApp/res/values-b+sr+Latn/strings.xml
@@ -17,88 +17,62 @@
 <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">"Prikaz terminala"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Prazan red"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instaliraj"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Instalira se"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Greška na mreži. Proverite vezu i probajte ponovo."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instalira se Linux terminal"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Terminal se zaustavlja"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal je otkazao"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Promena veličine diska"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Promenite veličinu / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Veličina diska je podešena"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal pokušava da otvori novi port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port čije je otvaranje traženo: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Prihvati"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Odbij"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Oporavak"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Resetujte terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 5aea50e..6b982ca 100644
--- a/android/TerminalApp/res/values-be/strings.xml
+++ b/android/TerminalApp/res/values-be/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Усталяваць"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Ідзе ўсталяванне"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Памылка сеткі. Праверце падключэнне і паўтарыце спробу."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Ідзе ўсталяванне тэрмінала Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"Скінуць тэрмінал"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Аднавіць не ўдалося: рэзервовая копія не створана"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"Не ўдалося аднавіць"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Не ўдаецца выдаліць файл рэзервовай копіі"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Выдаліць даныя рэзервовай копіі"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Націсніце, каб адкрыць тэрмінал"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Закрыць"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 1761bf1..e987a06 100644
--- a/android/TerminalApp/res/values-bg/strings.xml
+++ b/android/TerminalApp/res/values-bg/strings.xml
@@ -20,85 +20,55 @@
     <string name="terminal_display" msgid="4810127497644015237">"Екран на Терминал"</string>
     <string name="terminal_input" msgid="4602512831433433551">"Курсор"</string>
     <string name="empty_line" msgid="5012067143408427178">"Празен ред"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
-    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Инсталиране на терминала на Linux"</string>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Инсталиране"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Инсталира се"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Грешка в мрежата. Проверете връзката и опитайте отново."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Терминалът на Linux се инсталира"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
-    <skip />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"Нулиране на терминала"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Възстановяването не бе успешно, защото създаването на резервно копие не бе успешно"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"Възстановяването не бе успешно"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Файлът с резервното копие не може да се премахне"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Премахване на резервното копие на данните"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Кликнете, за да отворите терминала"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Затваряне"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 1a967ec..a0f37dd 100644
--- a/android/TerminalApp/res/values-bn/strings.xml
+++ b/android/TerminalApp/res/values-bn/strings.xml
@@ -17,88 +17,65 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ইনস্টল করুন"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"ইনস্টল করা হচ্ছে"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"নেটওয়ার্কের সমস্যা। কানেকশন চেক করে আবার চেষ্টা করুন।"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux টার্মিনাল ইনস্টল করা হচ্ছে"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"টার্মিনাল রিসেট করুন"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ব্যাকআপ কাজ না করায় আগের অবস্থায় ফেরানো যায়নি"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"আগের অবস্থায় ফেরানো যায়নি"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ব্যাকআপ ফাইল সরানো যায়নি"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ব্যাকআপ ডেটা সরান"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"টার্মিনাল খুলতে ক্লিক করুন"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"বন্ধ করুন"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 f4d000c..db6833f 100644
--- a/android/TerminalApp/res/values-bs/strings.xml
+++ b/android/TerminalApp/res/values-bs/strings.xml
@@ -17,88 +17,65 @@
 <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">"Ekran terminala"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Prazan red"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instaliraj"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Instaliranje"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Greška na mreži. Provjeriti vezu i pokušajte ponovo."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instaliranje Linux terminala"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Zaustavljanje terminala"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal je pao"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Promjena veličine diska"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Promijenite veličinu / rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Veličina diska je postavljena"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal pokušava otvoriti novi priključak"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Priključak je zatražio otvaranje: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Prihvati"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Odbij"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Oporavak"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opcije za oporavak particije"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Promijeni u početnu verziju"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Ukloni sve"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Poništite terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <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">"Postavke"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal je pokrenut"</string>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 80ad29b..8fcb422 100644
--- a/android/TerminalApp/res/values-ca/strings.xml
+++ b/android/TerminalApp/res/values-ca/strings.xml
@@ -17,88 +17,62 @@
 <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">"Pantalla del terminal"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Cursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Línia buida"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instal·la"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Instal·lant"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Error de la xarxa. Comprova la connexió i torna-ho a provar."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"S\'està instal·lant el terminal de Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"S\'està aturant el terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"El terminal s\'ha bloquejat"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Canvia la mida del disc"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Canvia la mida / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Mida del disc definida"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"El terminal està provant d\'obrir un port nou"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port que se sol·licita obrir: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Accepta"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Denega"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Recuperació"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Restableix el terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 fcd661d..376a89d 100644
--- a/android/TerminalApp/res/values-cs/strings.xml
+++ b/android/TerminalApp/res/values-cs/strings.xml
@@ -17,88 +17,62 @@
 <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">"Zobrazení terminálu"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kurzor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Prázdný řádek"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instalovat"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Instalování"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Chyba sítě. Zkontrolujte připojení a zkuste to znovu."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instalace terminálu Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Ukončování terminálu"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminál selhal"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Změna velikosti disku"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Změnit velikost"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Velikost disku nastavena"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminál se pokouší otevřít nový port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Vyžádáno otevření portu: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Přijmout"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Zamítnout"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Obnovení"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Možnosti obnovení oddílu"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Změnit na původní verzi"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Odstranit vše"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Resetovat terminál"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 bd01cf3..dddfaaf 100644
--- a/android/TerminalApp/res/values-da/strings.xml
+++ b/android/TerminalApp/res/values-da/strings.xml
@@ -17,88 +17,62 @@
 <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">"Terminalskærm"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Markør"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Tom linje"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Installer"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installerer"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Netværksfejl. Tjek forbindelsen, og prøv igen."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-terminalen installeres"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Stopper terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminalen er gået ned"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Tilpas diskens størrelse"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Tilpas størrelse/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Diskstørrelsen er angivet"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminalen forsøger at åbne en ny port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Porten, der anmodes om at være åben: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Acceptér"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Afvis"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Gendannelse"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Nulstil terminalen"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 63c59f0..2d6eadc 100644
--- a/android/TerminalApp/res/values-de/strings.xml
+++ b/android/TerminalApp/res/values-de/strings.xml
@@ -17,88 +17,65 @@
 <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">"Terminalanzeige"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Cursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Leere Zeile"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Installieren"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Wird installiert"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Netzwerkfehler. Prüfe die Verbindung und versuche es noch einmal."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-Terminal wird installiert"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Terminal wird beendet"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal ist abgestürzt"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Größe des Laufwerks anpassen"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Größe anpassen / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Größe des Laufwerks wurde festgelegt"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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">"Wieder­herstellung"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Terminal zurücksetzen"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <string name="error_code" msgid="3585291676855383649">"Fehlercode: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Einstellungen"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminal wird ausgeführt"</string>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 d445ec8..f25d4cb 100644
--- a/android/TerminalApp/res/values-el/strings.xml
+++ b/android/TerminalApp/res/values-el/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Εγκατάσταση"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Εγκατάσταση"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Σφάλμα δικτύου. Ελέγξτε τη σύνδεση και δοκιμάστε ξανά."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Γίνεται εγκατάσταση τερματικού Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"Επαναφορά τερματικού"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Αποτυχία ανάκτησης λόγω αποτυχίας δημιουργίας αντιγράφου ασφαλείας"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"Αποτυχία ανάκτησης"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Δεν είναι δυνατή η κατάργηση του αρχείου αντιγράφου ασφαλείας"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Κατάργηση δεδομένων αντιγράφου ασφαλείας"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Κάντε κλικ για άνοιγμα του τερματικού"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Κλείσιμο"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 5168e3c..90f282e 100644
--- a/android/TerminalApp/res/values-en-rAU/strings.xml
+++ b/android/TerminalApp/res/values-en-rAU/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Install"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installing"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Network error. Check connection and retry."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installing Linux terminal"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Stopping terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal crashed"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Disk resize"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Resize/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Disk size set"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal is trying to open a new port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port requested to be open: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Accept"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Deny"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Recovery"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Reset terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 b605681..49c8af1 100644
--- a/android/TerminalApp/res/values-en-rCA/strings.xml
+++ b/android/TerminalApp/res/values-en-rCA/strings.xml
@@ -20,57 +20,55 @@
     <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="double_tap_to_edit_text" msgid="7380095045491399890">"Double-tap to go to cursor"</string>
     <string name="installer_title_text" msgid="500663060973466805">"Install Linux terminal"</string>
-    <string name="installer_desc_text_format" msgid="5935117404303982823">"To launch 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="5812378362605046639">"Download using Wi-Fi only"</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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Install"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installing"</string>
-    <string name="installer_install_network_error_message" msgid="6483202005746623398">"Failed to install due to a network error. Check your connection and try again."</string>
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Network error. Check connection and retry."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installing Linux terminal"</string>
-    <string name="installer_notif_desc_text" msgid="2353770076549425837">"Linux terminal will start after the installation is finished"</string>
-    <string name="installer_error_network" msgid="5627330072955876676">"Failed to install due to a network issue"</string>
-    <string name="installer_error_no_wifi" msgid="1180164894845030969">"Failed to install because Wi-Fi is not available"</string>
-    <string name="installer_error_unknown" msgid="5657920711470180224">"Failed to install. Please try again"</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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Stopping terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal crashed"</string>
-    <string name="settings_disk_resize_title" msgid="8648082439414122069">"Disk resize"</string>
-    <string name="settings_disk_resize_sub_title" msgid="568100064927028058">"Resize the root partition size"</string>
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Disk Resize"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Resize / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Disk size set"</string>
     <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>
-    <string name="settings_disk_resize_resize_restart_vm_to_apply" msgid="6651018335906339973">"Apply"</string>
-    <string name="settings_disk_resize_resize_confirm_dialog_message" msgid="6906352501525496328">"Terminal will be restarted to resize disk"</string>
-    <string name="settings_disk_resize_resize_confirm_dialog_confirm" msgid="7347432999245803583">"Confirm"</string>
-    <string name="settings_port_forwarding_title" msgid="4911743992816071205">"Port forwarding"</string>
+    <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="6950621555592547524">"Terminal is requesting to open a new port"</string>
-    <string name="settings_port_forwarding_notification_content" msgid="5072621159244211971">"Port requested: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal is trying to open a new port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port requested to be open: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Accept"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Deny"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Recovery"</string>
-    <string name="settings_recovery_sub_title" msgid="3906996270508262595">"Partition recovery options"</string>
-    <string name="settings_recovery_reset_title" msgid="5388842560910568731">"Reset to initial version"</string>
-    <string name="settings_recovery_reset_sub_title" msgid="1079896907344675995">"Remove all data"</string>
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Reset terminal"</string>
-    <string name="settings_recovery_reset_dialog_message" msgid="851530339815113000">"Data will be removed"</string>
-    <string name="settings_recovery_reset_dialog_confirm" msgid="6916237820754131902">"Reset"</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="9034741074141274096">"Failed to recover due to a backup error"</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="2447990797766248691">"Failed to remove backup data"</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="7791375988320242059">"Remove <xliff:g id="PATH">/mnt/backup</xliff:g>"</string>
-    <string name="error_title" msgid="405150657301906598">"Unrecoverable error"</string>
-    <string name="error_desc" msgid="1984714179775053347">"Failed to recover from an error.\nYou can try restarting terminal or try one of the recovery options."</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="5772901142342308273">"Click to open terminal"</string>
+    <string name="service_notification_content" msgid="3579923802797824545">"Click to open the terminal"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Close"</string>
-    <string name="virgl_enabled" msgid="5242525588039698086">"<xliff:g id="ID_1">VirGL</xliff:g> is enabled"</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 5168e3c..90f282e 100644
--- a/android/TerminalApp/res/values-en-rGB/strings.xml
+++ b/android/TerminalApp/res/values-en-rGB/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Install"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installing"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Network error. Check connection and retry."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installing Linux terminal"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Stopping terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal crashed"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Disk resize"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Resize/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Disk size set"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal is trying to open a new port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port requested to be open: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Accept"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Deny"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Recovery"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Reset terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 5168e3c..90f282e 100644
--- a/android/TerminalApp/res/values-en-rIN/strings.xml
+++ b/android/TerminalApp/res/values-en-rIN/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Install"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installing"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Network error. Check connection and retry."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installing Linux terminal"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Stopping terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal crashed"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Disk resize"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Resize/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Disk size set"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal is trying to open a new port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port requested to be open: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Accept"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Deny"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Recovery"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Reset terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 545d0af..1cbed7d 100644
--- a/android/TerminalApp/res/values-es-rUS/strings.xml
+++ b/android/TerminalApp/res/values-es-rUS/strings.xml
@@ -17,88 +17,62 @@
 <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">"Pantalla de la terminal"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Cursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Línea vacía"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instalar"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Instalando"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Error de red. Comprueba la conexión y vuelve a intentarlo."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instalando la terminal de Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Deteniendo la terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Se produjo un error en la terminal"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Cambiar el tamaño del disco"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Cambiar el tamaño/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Se estableció el tamaño del disco"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"La terminal está intentando abrir un puerto nuevo"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Puerto solicitado para abrir: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Aceptar"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Rechazar"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Recuperación"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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 la versión inicial"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Quitar todos"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Restablecer terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 60b6ba4..a0bc767 100644
--- a/android/TerminalApp/res/values-es/strings.xml
+++ b/android/TerminalApp/res/values-es/strings.xml
@@ -17,88 +17,62 @@
 <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">"Pantalla del terminal"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Cursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Línea vacía"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instalar"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Instalando"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Error de red. Comprueba la conexión y vuelve a intentarlo."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instalando terminal de Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Deteniendo terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Fallo del terminal"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Cambiar tamaño de disco"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Cambiar tamaño/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Tamaño de disco definido"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"El terminal está intentando abrir un nuevo puerto"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Puerto que se solicita que esté abierto: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Aceptar"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Denegar"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Recuperación"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Restablecer terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 d7dd8bf..1d25c0a 100644
--- a/android/TerminalApp/res/values-et/strings.xml
+++ b/android/TerminalApp/res/values-et/strings.xml
@@ -17,88 +17,62 @@
 <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">"Terminali ekraan"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Tühi rida"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Installi"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installimine"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Võrgu viga. Kontrollige ühendust ja proovige uuesti."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linuxi terminali installimine"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Terminali peatamine"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal jooksis kokku"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Ketta suuruse muutmine"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Suuruse muutmine / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Ketta suurus on määratud"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal üritab uut porti avada"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port, mille avamist taotleti: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Nõustu"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Keela"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Taastamine"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Sektsiooni taastevalikud"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Muutke algsele versioonile"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Eemaldage kõik"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Terminali lähtestamine"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 1807ab9..2601142 100644
--- a/android/TerminalApp/res/values-eu/strings.xml
+++ b/android/TerminalApp/res/values-eu/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <string name="terminal_display" msgid="4810127497644015237">"Terminalaren pantaila"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kurtsorea"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Lerro hutsa"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instalatu"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Instalatzen"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Sareko errorea. Egiaztatu konektatuta zaudela eta saiatu berriro."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-en terminala instalatzen"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Terminala geldiarazten"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminalak huts egin du"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Aldatu diskoaren tamaina"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Aldatu tamaina / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Ezarri da diskoaren tamaina"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Onartu"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Ukatu"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Berreskuratzea"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Berrezarri terminala"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 7248bc2..ea7b9e1 100644
--- a/android/TerminalApp/res/values-fa/strings.xml
+++ b/android/TerminalApp/res/values-fa/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"نصب"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"درحال نصب"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"خطای شبکه. اتصال را بررسی و سپس دوباره امتحان کنید."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"درحال نصب پایانه Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"تغییر اندازه دیسک"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"تغییر اندازه / روت فایل سیستم"</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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"بازنشانی پایانه"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"بازیابی انجام نشد چون فایل پشتیبان مشکل داشت"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"بازیابی انجام نشد"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"فایل پشتیبان حذف نشد"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"حذف داده‌های پشتیبان"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"برای باز کردن پایانه، کلیک کنید"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"بستن"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 2702419..219a3fd 100644
--- a/android/TerminalApp/res/values-fi/strings.xml
+++ b/android/TerminalApp/res/values-fi/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <string name="terminal_display" msgid="4810127497644015237">"Terminaalinäyttö"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kohdistin"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Tyhjä rivi"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Asenna"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Asennetaan"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Verkkovirhe. Tarkista yhteys ja yritä uudelleen."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-päätettä asennetaan"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Pysäytetään terminaalia"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminaali kaatui"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Muuta levyn kokoa"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Muuta kokoa / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Levyn koko asetettu"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Pääte yrittää avata uuden portin"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Avattavaksi pyydetty portti: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Hyväksy"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Hylkää"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Palautus"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Nollaa terminaali"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 121d9c9..ce5ffae 100644
--- a/android/TerminalApp/res/values-fr-rCA/strings.xml
+++ b/android/TerminalApp/res/values-fr-rCA/strings.xml
@@ -17,88 +17,62 @@
 <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">"Écran du terminal"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Curseur"</string>
-    <string name="empty_line" msgid="5012067143408427178">"La ligne est vide"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Installer"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installation…"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Erreur de réseau. Vérifiez la connexion et réessayez."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installation du terminal Linux en cours…"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Arrêt du terminal en cours…"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Le terminal a planté"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Redimensionnement du disque"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Redimensionnement/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Taille du disque définie"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Le terminal tente d\'ouvrir un nouveau port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port dont l\'ouverture est demandée : <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Accepter"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Refuser"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Récupération"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Options de récupération de partition"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Passer à la version initiale"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Tout retirer"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Réinitialiser le terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 b2015c4..412b98a 100644
--- a/android/TerminalApp/res/values-fr/strings.xml
+++ b/android/TerminalApp/res/values-fr/strings.xml
@@ -17,88 +17,65 @@
 <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">"Affichage du terminal"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Curseur"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Ligne vide"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Installer"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installation…"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Erreur réseau. Vérifiez la connexion et réessayez."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installation du terminal Linux…"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Arrêt du terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Le terminal a planté"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Redimensionnement du disque"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Redimensionner/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Taille du disque définie"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Le terminal essaie d\'ouvrir un nouveau port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Demande d\'ouverture du port suivant : <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Accepter"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Refuser"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Récupération"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Options de récupération de la partition"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Revenir à la version initiale"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Tout supprimer"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Réinitialiser le terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <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">"Terminal en cours d\'exécution"</string>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 5e21fd6..61ffa17 100644
--- a/android/TerminalApp/res/values-gl/strings.xml
+++ b/android/TerminalApp/res/values-gl/strings.xml
@@ -17,88 +17,62 @@
 <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">"Pantalla do terminal"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Cursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Liña baleira"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instalar"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Instalando"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Produciuse un erro da rede. Comproba a conexión e téntao de novo."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instalando terminal de Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Parando terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Produciuse un fallo no terminal"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Cambiar tamaño do disco"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Cambia o tamaño/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Definiuse o tamaño do disco"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"O terminal está tentando abrir outro porto"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Porto que se solicitou abrir: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Aceptar"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Denegar"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Recuperación"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Restablecer o terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 280b509..0d74ec0 100644
--- a/android/TerminalApp/res/values-gu/strings.xml
+++ b/android/TerminalApp/res/values-gu/strings.xml
@@ -17,88 +17,65 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ઇન્સ્ટૉલ કરો"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"ઇન્સ્ટૉલ કરી રહ્યાં છીએ"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"નેટવર્ક ભૂલ. કનેક્શન ચેક કરો અને ફરી પ્રયાસ કરો."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ટર્મિનલ ઇન્સ્ટૉલ કરી રહ્યાં છીએ"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"ટર્મિનલ રીસેટ કરો"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"બૅકઅપ નિષ્ફળ જવાને લીધે રિકવરી નિષ્ફળ રહી"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"રિકવરી નિષ્ફળ રહી"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"બૅકઅપ ફાઇલ કાઢી શકતા નથી"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"બૅકઅપ ડેટા કાઢી નાખો"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"ટર્મિનલ ખોલવા માટે ક્લિક કરો"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"બંધ કરો"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 7357b7f..5fcc177 100644
--- a/android/TerminalApp/res/values-hi/strings.xml
+++ b/android/TerminalApp/res/values-hi/strings.xml
@@ -20,85 +20,55 @@
     <string name="terminal_display" msgid="4810127497644015237">"टर्मिनल डिसप्ले"</string>
     <string name="terminal_input" msgid="4602512831433433551">"कर्सर."</string>
     <string name="empty_line" msgid="5012067143408427178">"खाली लाइन"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
-    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux टर्मिनल ऐप्लिकेशन इंस्टॉल करें"</string>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"इंस्टॉल करें"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"इंस्टॉल हो रहा"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"नेटवर्क की गड़बड़ी हुई. इंटरनेट कनेक्शन की जांच करें और फिर से कोशिश करें."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux टर्मिनल ऐप्लिकेशन इंस्टॉल हो रहा है"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
-    <skip />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <skip />
+    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"टर्मिनल को रोका जा रहा है"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"टर्मिनल क्रैश हो गया"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"टर्मिनल रीसेट करें"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"बैकअप पूरा न होने की वजह से, रिकवर नहीं किया जा सका"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"रिकवर नहीं किया जा सका"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"बैकअप फ़ाइल को हटाया नहीं जा सकता"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"बैकअप डेटा हटाएं"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"टर्मिनल खोलने के लिए क्लिक करें"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"बंद करें"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 2fcb2b5..686492c 100644
--- a/android/TerminalApp/res/values-hr/strings.xml
+++ b/android/TerminalApp/res/values-hr/strings.xml
@@ -17,88 +17,65 @@
 <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">"Zaslon terminala"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Pokazivač"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Prazan redak"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instaliraj"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Instaliranje"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Mrežna pogreška. Provjerite vezu i pokušajte ponovo."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instaliranje Linux terminala"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Zaustavljanje terminala"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal se srušio"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Promjena veličine diska"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Promjena veličine/rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Veličina diska je postavljena"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal pokušava otvoriti novi priključak"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Zatraženo je otvaranje priključka: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Prihvati"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Odbij"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Oporavak"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Poništavanje terminala"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <string name="error_code" msgid="3585291676855383649">"Kôd pogreške: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 5f28e74..892de69 100644
--- a/android/TerminalApp/res/values-hu/strings.xml
+++ b/android/TerminalApp/res/values-hu/strings.xml
@@ -20,85 +20,55 @@
     <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
-    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux-terminál telepítése"</string>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Telepítés"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Telepítés…"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Hálózati hiba. Ellenőrizze a kapcsolatot, majd próbálja újra."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-terminál telepítése…"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
-    <skip />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <skip />
+    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"A terminál leállítása…"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"A terminál összeomlott"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Lemez átméretezése"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Átméretezés/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Lemezméret beállítva"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"A Terminal új portot próbál megnyitni"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"A megnyitni kívánt port: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Elfogadás"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Elutasítás"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Helyreállítás"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Terminál visszaállítása"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 549a5b8..5a2f90d 100644
--- a/android/TerminalApp/res/values-hy/strings.xml
+++ b/android/TerminalApp/res/values-hy/strings.xml
@@ -17,88 +17,65 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Տեղադրել"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Տեղադրվում է"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Ցանցի սխալ։ Ստուգեք կապը և նորից փորձեք։"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Լինուքս տերմինալը տեղադրվում է"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"Տերմինալի վերակայում"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Պահուստավորման խափանման պատճառով չհաջողվեց վերականգնել"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"Չհաջողվեց վերականգնել"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Հնարավոր չէ հեռացնել պահուստային կրկնօրինակի ֆայլը"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Հեռացնել պահուստավորված տվյալները"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Սեղմեք՝ տերմինալը բացելու համար"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Փակել"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 3586e33..068a693 100644
--- a/android/TerminalApp/res/values-in/strings.xml
+++ b/android/TerminalApp/res/values-in/strings.xml
@@ -17,88 +17,62 @@
 <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">"Tampilan terminal"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Baris kosong"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instal"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Menginstal"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Error jaringan. Periksa koneksi dan coba lagi."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Menginstal terminal Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Menghentikan terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal error"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Ubah Ukuran Disk"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Ubah ukuran / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Ukuran disk ditetapkan"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal mencoba membuka port baru"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port yang diminta untuk dibuka: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Terima"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Tolak"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Pemulihan"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Reset terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 6f2fb13..e50b1b6 100644
--- a/android/TerminalApp/res/values-is/strings.xml
+++ b/android/TerminalApp/res/values-is/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <string name="terminal_display" msgid="4810127497644015237">"Skjár útstöðvar"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Bendill"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Auð lína"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Setja upp"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Setur upp"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Netkerfisvilla. Athugaðu tenginguna og reyndu aftur."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Setur upp Linux-útstöð"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Stöðvar tengi"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Tengi hrundi"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Breyta stærð disks"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Breyta stærð / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Stærð disks stillt"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Útstöð er að reyna að opna nýtt tengi"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Tengi sem beðið er um að sé opið: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Samþykkja"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Hafna"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Endurheimt"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Endurstilla útstöð"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 279c7e1..1f99326 100644
--- a/android/TerminalApp/res/values-it/strings.xml
+++ b/android/TerminalApp/res/values-it/strings.xml
@@ -20,85 +20,58 @@
     <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
-    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Installa terminale Linux"</string>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Installa"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installazione"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Errore di rete. Controlla la connessione e riprova."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installazione del terminale Linux in corso…"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
-    <skip />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <skip />
+    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Arresto del terminale in corso…"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Arresto anomalo del terminale"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Ridimensionamento disco"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Ridimensiona/rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Dimensioni disco impostate"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Il terminale sta tentando di aprire una nuova porta"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Porta di cui è stata richiesta l\'apertura: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Accetta"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Rifiuta"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Ripristino"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opzioni ripristino partizione"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Torna alla versione iniziale"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Rimuovi tutto"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Reimposta il terminale"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <string name="error_code" msgid="3585291676855383649">"Codice di errore: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <string name="service_notification_settings" msgid="1437365721184401135">"Impostazioni"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Il terminale è in esecuzione"</string>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 a57f95a..5c1037d 100644
--- a/android/TerminalApp/res/values-iw/strings.xml
+++ b/android/TerminalApp/res/values-iw/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"התקנה"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"בתהליך התקנה"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"שגיאה בחיבור לרשת. צריך לבדוק את החיבור ולנסות שוב."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"מתבצעת התקנה של טרמינל Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"אתחול הטרמינל"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"השחזור נכשל כי הגיבוי נכשל"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"השחזור נכשל"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"אי אפשר להסיר את קובץ הגיבוי"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"הסרת נתוני הגיבוי"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"צריך ללחוץ כדי לפתוח את הטרמינל"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"סגירה"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 25aa19f..e4a9cd7 100644
--- a/android/TerminalApp/res/values-ja/strings.xml
+++ b/android/TerminalApp/res/values-ja/strings.xml
@@ -20,85 +20,55 @@
     <string name="terminal_display" msgid="4810127497644015237">"ターミナルの表示"</string>
     <string name="terminal_input" msgid="4602512831433433551">"カーソル"</string>
     <string name="empty_line" msgid="5012067143408427178">"空の行"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
-    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux ターミナルをインストールする"</string>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"インストール"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"インストール中"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"ネットワーク エラーです。接続を確認し、もう一度お試しください。"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ターミナルのインストール"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
-    <skip />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"ターミナルのリセット"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"バックアップに失敗したため、復元できませんでした"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"復元できませんでした"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"バックアップ ファイルを削除できません"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"バックアップ データの削除"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"クリックするとターミナルが開きます"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"閉じる"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 d09021d..44ad145 100644
--- a/android/TerminalApp/res/values-ka/strings.xml
+++ b/android/TerminalApp/res/values-ka/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ინსტალაცია"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"ინსტალირდება"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"ქსელის შეცდომა. შეამოწმეთ კავშირი და ცადეთ ხელახლა."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"მიმდინარეობს Linux ტერმინალის ინსტალაცია"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"ტერმინალის გადაყენება"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"აღდგენა ვერ მოხერხდა, რადგან სარეზერვო კოპირება ვერ განხორციელდა"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"აღდგენა ვერ მოხერხდა"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"სარეზერვო ასლის ფაილის ამოშლა ვერ ხერხდება"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"სარეზერვო ასლის მონაცემების ამოშლა"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"დააწკაპუნეთ ტერმინალის გასახსნელად"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"დახურვა"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 5058ea2..2e906c3 100644
--- a/android/TerminalApp/res/values-kk/strings.xml
+++ b/android/TerminalApp/res/values-kk/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Орнату"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Орнатылып жатыр"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Желі қатесі орын алды. Байланысты тексеріңіз де, қайталап көріңіз."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux терминалы орнатылып жатыр"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"Терминалды бастапқы күйге қайтару"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Қалпына келтірілмеді, себебі сақтық көшірме жасалмады."</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"Қалпына келтірілмеді."</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Сақтық көшірме файлы өшірілмеді."</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Сақтық көшірме дерегін өшіру"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Терминалды ашу үшін басыңыз."</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Жабу"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 289032d..2513b4e 100644
--- a/android/TerminalApp/res/values-km/strings.xml
+++ b/android/TerminalApp/res/values-km/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ដំឡើង"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"កំពុងដំឡើង"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"មានបញ្ហាបណ្ដាញ។ ពិនិត្យមើលការតភ្ជាប់ រួចព្យាយាមម្ដងទៀត។"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"កំពុងដំឡើងទែមីណាល់ Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"កំណត់ទែមីណាល់ឡើងវិញ"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ការស្ដារឡើងវិញមិនបានសម្រេច ដោយសារការបម្រុងទុកមិនបានសម្រេច"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"ការស្ដារឡើងវិញមិនបានសម្រេច"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"មិនអាចដកឯកសារបម្រុង​ទុកចេញបានទេ"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ដកទិន្នន័យបម្រុងទុកចេញ"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"ចុចដើម្បីបើកទែមីណាល់"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"បិទ"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 c451ab6..3fc63d2 100644
--- a/android/TerminalApp/res/values-kn/strings.xml
+++ b/android/TerminalApp/res/values-kn/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"ಇನ್‌ಸ್ಟಾಲ್"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"ನೆಟ್‌ವರ್ಕ್ ದೋಷ. ಕನೆಕ್ಷನ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ಟರ್ಮಿನಲ್ ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"ಟರ್ಮಿನಲ್‌ ಅನ್ನು ರೀಸೆಟ್‌ ಮಾಡಿ"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ಬ್ಯಾಕಪ್‌ ವಿಫಲವಾದ ಕಾರಣ ರಿಕವರಿ ವಿಫಲವಾಗಿದೆ"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"ರಿಕವರಿ ವಿಫಲವಾಗಿದೆ"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ಬ್ಯಾಕಪ್‌ ಫೈಲ್‌ ಅನ್ನು ತೆಗೆದುಹಾಕಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ಬ್ಯಾಕಪ್‌ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"ಟರ್ಮಿನಲ್‌ ಅನ್ನು ತೆರೆಯಲು ಕ್ಲಿಕ್‌ ಮಾಡಿ"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ಮುಚ್ಚಿರಿ"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 c853c1a..077fbcd 100644
--- a/android/TerminalApp/res/values-ko/strings.xml
+++ b/android/TerminalApp/res/values-ko/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"설치"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"설치 중"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"네트워크 오류입니다. 연결을 확인한 후 다시 시도해 주세요."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux 터미널 설치 중"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"터미널 재설정"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"백업에 실패하여 복구할 수 없음"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"복구 실패"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"백업 파일을 삭제할 수 없음"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"백업 데이터 삭제"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"터미널을 열려면 클릭하세요."</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"닫기"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 9d6d7ef..09fc0e1 100644
--- a/android/TerminalApp/res/values-ky/strings.xml
+++ b/android/TerminalApp/res/values-ky/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Орнотуу"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Орнотулууда"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Тармакта ката кетти. Байланышты текшерип, кайра аракет кылыңыз."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux терминалы орнотулууда"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"Терминалды баштапкы абалга келтирүү"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Камдык көчүрмө сакталбагандыктан калыбына келтирилген жок"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"Калыбына келтирилген жок"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Камдык көчүрмө файлы өчпөй жатат"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Маалыматтын камдык көчүрмөсүн өчүрүү"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Терминалды ачуу үчүн чыкылдатыңыз"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Жабуу"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 d7233f5..0b15498 100644
--- a/android/TerminalApp/res/values-lo/strings.xml
+++ b/android/TerminalApp/res/values-lo/strings.xml
@@ -20,85 +20,55 @@
     <string name="terminal_display" msgid="4810127497644015237">"ຈໍສະແດງຜົນ Terminal"</string>
     <string name="terminal_input" msgid="4602512831433433551">"ເຄີເຊີ"</string>
     <string name="empty_line" msgid="5012067143408427178">"ແຖວຫວ່າງເປົ່າ"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
-    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"ຕິດຕັ້ງເທີມິນອນ Linux"</string>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ຕິດຕັ້ງ"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"ກຳລັງຕິດຕັ້ງ"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"ເຄືອຂ່າຍຜິດພາດ. ກວດສອບການເຊື່ອມຕໍ່ແລ້ວລອງໃໝ່."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"ກຳລັງຕິດຕັ້ງເທີມິນອນ Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
-    <skip />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"ຣີເຊັດເທີມິນອນ"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ການກູ້ຄືນບໍ່ສຳເລັດຍ້ອນການສຳຮອງຂໍ້ມູນບໍ່ສຳເລັດ"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"ການກູ້ຄືນບໍ່ສຳເລັດ"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ບໍ່ສາມາດລຶບໄຟລ໌ສຳຮອງຂໍ້ມູນອອກໄດ້"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ລຶບການສຳຮອງຂໍ້ມູນອອກ"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"ຄລິກເພື່ອເປີດເທີມິນອນ"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ປິດ"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 2152608..96c144b 100644
--- a/android/TerminalApp/res/values-lt/strings.xml
+++ b/android/TerminalApp/res/values-lt/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <string name="terminal_display" msgid="4810127497644015237">"Terminalo ekranas"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Žymeklis"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Tuščia eilutė"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Įdiegti"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Diegiama"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Tinklo klaida. Patikrinkite ryšį ir bandykite dar kartą."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Diegiamas „Linux“ terminalas"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Terminalas sustabdomas"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminalas užstrigo"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Disko dydžio keitimas"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Dydžio keitimas / „Rootfs“"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Disko dydis nustatytas"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminalas bando atidaryti naują prievadą"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Prievadas, dėl kurio atidarymo pateikta užklausa: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Sutikti"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Atmesti"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Atkūrimas"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Skaidinio atkūrimo parinktys"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Keitimas į pradinę versiją"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Pašalinti viską"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Terminalo nustatymas iš naujo"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 a6bd003..253da6d 100644
--- a/android/TerminalApp/res/values-lv/strings.xml
+++ b/android/TerminalApp/res/values-lv/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <string name="terminal_display" msgid="4810127497644015237">"Termināļa displejs"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kursors"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Tukša rinda"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instalēt"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Instalē"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Tīkla kļūda. Pārbaudiet savienojumu un mēģiniet vēlreiz."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Notiek Linux termināļa instalēšana…"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Notiek termināļa apturēšana."</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminālis avarēja."</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Diska lieluma mainīšana"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Mainīt lielumu / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Diska lielums ir iestatīts."</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminālis mēģina atvērt jaunu portu"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Ports, kura atvēršana pieprasīta: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Piekrist"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Noraidīt"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Atkopšana"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Termināļa atiestatīšana"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 ffc6f49..0fb2296 100644
--- a/android/TerminalApp/res/values-mk/strings.xml
+++ b/android/TerminalApp/res/values-mk/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Инсталирај"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Се инсталира"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Грешка на мрежата. Проверете ја врската и обидете се повторно."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-терминалот се инсталира"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"Ресетирајте го терминалот"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Враќањето не успеа поради неуспешен бекап"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"Враќањето не успеа"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Не може да се отстрани датотеката со бекап"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Отстранете ги податоците од бекапот"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Кликнете за да го отворите терминалот"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Затвори"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 0d941f4..0911d01 100644
--- a/android/TerminalApp/res/values-ml/strings.xml
+++ b/android/TerminalApp/res/values-ml/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ഇൻസ്റ്റാൾ ചെയ്യൂ"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"ഇൻസ്റ്റാൾ ചെയ്യുന്നു"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"നെറ്റ്‌വർക്ക് പിശക്. കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ടെർമിനൽ ഇൻസ്റ്റാൾ ചെയ്യുന്നു"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"ടെർമിനൽ റീസെറ്റ് ചെയ്യുക"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ബാക്കപ്പ് ചെയ്യാനാകാത്തതിനാൽ വീണ്ടെടുക്കാനായില്ല"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"വീണ്ടെടുക്കാനായില്ല"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ബാക്കപ്പ് ഫയൽ നീക്കം ചെയ്യാനാകില്ല"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ബാക്കപ്പ് ഡാറ്റ നീക്കം ചെയ്യുക"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"ടെർമിനൽ തുറക്കാൻ ക്ലിക്ക് ചെയ്യുക"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"അടയ്ക്കുക"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 46a9ef2..23cb782 100644
--- a/android/TerminalApp/res/values-mn/strings.xml
+++ b/android/TerminalApp/res/values-mn/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Суулгах"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Суулгаж байна"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Сүлжээний алдаа гарлаа. Холболтыг шалгаж, дахин оролдоно уу."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux терминалыг суулгаж байна"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"Терминалыг шинэчлэх"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Нөөцлөлт амжилтгүй болсон тул сэргээж чадсангүй"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"Сэргээж чадсангүй"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
-    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Нөөц өгөгдлийг устгах"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Терминалыг нээхийн тулд товшино уу"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Хаах"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 4b0533e..e084c1e 100644
--- a/android/TerminalApp/res/values-mr/strings.xml
+++ b/android/TerminalApp/res/values-mr/strings.xml
@@ -17,88 +17,65 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"इंस्टॉल करा"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"इंस्टॉल करत आहे"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"नेटवर्क एरर. कनेक्शन तपासून पुन्हा प्रयत्न करा."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux टर्मिनल इंस्टॉल करत आहे"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"टर्मिनल रीसेट करा"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"बॅकअप घेता आला नसल्यामुळे, रिकव्हरी करता आली नाही"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"रिकव्हरी करता आली नाही"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"बॅकअप फाइल काढून टाकू शकत नाही"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"बॅकअप डेटा काढून टाका"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"टर्मिनल उघडण्यासाठी क्लिक करा"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"बंद करा"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 94a0afb..b845724 100644
--- a/android/TerminalApp/res/values-ms/strings.xml
+++ b/android/TerminalApp/res/values-ms/strings.xml
@@ -17,88 +17,62 @@
 <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">"Paparan terminal"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Baris kosong"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Pasang"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Memasang"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Ralat rangkaian. Semak sambungan dan cuba lagi."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Memasang terminal Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Menghentikan terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal ranap"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Ubah Saiz Cakera"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Ubah saiz / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Set saiz cakera"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal sedang cuba membuka port baharu"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port diminta untuk dibuka : <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Terima"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Tolak"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Pemulihan"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Pilihan pemulihan Pemetakan"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Tukar kepada Versi awal"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Alih keluar semua"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Tetapkan semula terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 6fea239..d76b98d 100644
--- a/android/TerminalApp/res/values-my/strings.xml
+++ b/android/TerminalApp/res/values-my/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ထည့်သွင်းရန်"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"ထည့်သွင်းနေသည်"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"ကွန်ရက် အမှားအယွင်း။ ချိတ်ဆက်မှုကို စစ်ဆေးပြီး ထပ်စမ်းကြည့်ပါ။"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux တာမီနယ်ကို ထည့်သွင်းနေသည်"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"တာမီနယ်ကို ပြင်ဆင်သတ်မှတ်ခြင်း"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
-    <string name="settings_recovery_error" msgid="2451912941535666379">"ပြန်လည်ရယူမှု မအောင်မြင်ပါ"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"တာမီနယ်ဖွင့်ရန် နှိပ်ပါ"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ပိတ်ရန်"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 f7a17b8..d0adf2f 100644
--- a/android/TerminalApp/res/values-nb/strings.xml
+++ b/android/TerminalApp/res/values-nb/strings.xml
@@ -17,88 +17,62 @@
 <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">"Terminalskjerm"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Markør"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Tom linje"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Installer"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installerer"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Nettverksfeil. Sjekk tilkoblingen og prøv på nytt."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installerer Linux-terminalen"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Stopper terminalen"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminalen krasjet"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Endre diskstørrelse"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Endre størrelse / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Diskstørrelsen er angitt"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminalen prøver å åpne en ny port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Porten som er forespurt åpnet: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Godta"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Avvis"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Gjenoppretting"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Tilbakestill terminalen"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 6b44555..a7806a6 100644
--- a/android/TerminalApp/res/values-ne/strings.xml
+++ b/android/TerminalApp/res/values-ne/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"इन्स्टल गर्नुहोस्"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"इन्स्टल गरिँदै छ"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"नेटवर्कसम्बन्धी त्रुटि। कनेक्सन जाँच गर्नुहोस् र फेरि प्रयास गर्नुहोस्।"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux टर्मिनल इन्स्टल गरिँदै छ"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"टर्मिनल रिसेट गर्नुहोस्"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ब्याकअप गर्न नसकिएकाले रिकभर गर्न सकिएन"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"रिकभर गर्न सकिएन"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ब्याकअप फाइल हटाउन सकिएन"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ब्याकअप डेटा हटाउनुहोस्"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"यो टर्मिनल खोल्न क्लिक गर्नुहोस्"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"बन्द गर्नुहोस्"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 4b47434..e012578 100644
--- a/android/TerminalApp/res/values-nl/strings.xml
+++ b/android/TerminalApp/res/values-nl/strings.xml
@@ -20,85 +20,55 @@
     <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
-    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux-terminal installeren"</string>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Installeren"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installeren"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Netwerkfout. Check de verbinding en probeer het opnieuw."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux-terminal installeren"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
-    <skip />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <skip />
+    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Terminal stoppen"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal gecrasht"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Formaat van schijf aanpassen"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Formaat aanpassen/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Schijfgrootte ingesteld"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal probeert een nieuwe poort te openen"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Poort die moet worden geopend: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Accepteren"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Weigeren"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Herstel"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Herstelopties voor partities"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Wijzigen naar eerste versie"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Alles verwijderen"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Terminal resetten"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 c1e8941..2324313 100644
--- a/android/TerminalApp/res/values-or/strings.xml
+++ b/android/TerminalApp/res/values-or/strings.xml
@@ -17,88 +17,65 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ଇନଷ୍ଟଲ କରନ୍ତୁ"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"ଇନଷ୍ଟଲ କରାଯାଉଛି"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"ନେଟୱାର୍କ ତ୍ରୁଟି। କନେକ୍ସନ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ଟର୍ମିନାଲକୁ ଇନଷ୍ଟଲ କରାଯାଉଛି"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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">"ଟର୍ମିନାଲ କ୍ରାସ ହୋଇଛି"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"ଟର୍ମିନାଲ ରିସେଟ କରନ୍ତୁ"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ବେକଅପ ବିଫଳ ହୋଇଥିବା ଯୋଗୁଁ ରିକଭରି ବିଫଳ ହୋଇଛି"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"ରିକଭରି ବିଫଳ ହୋଇଛି"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ବେକଅପ ଫାଇଲକୁ କାଢ଼ି ଦିଆଯାଇପାରିବ ନାହିଁ"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ବେକଅପ ଡାଟାକୁ କାଢ଼ି ଦିଅନ୍ତୁ"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"ଟର୍ମିନାଲ ଖୋଲିବାକୁ କ୍ଲିକ କରନ୍ତୁ"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ବନ୍ଦ କରନ୍ତୁ"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 cad7822..9d895cc 100644
--- a/android/TerminalApp/res/values-pa/strings.xml
+++ b/android/TerminalApp/res/values-pa/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ਸਥਾਪਤ ਕਰੋ"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"ਸਥਾਪਤ ਹੋ ਰਹੀ ਹੈ"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"ਨੈੱਟਵਰਕ ਗੜਬੜ। ਕਨੈਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰ ਕੇ ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ਟਰਮੀਨਲ ਐਪ ਸਥਾਪਤ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"ਟਰਮੀਨਲ ਨੂੰ ਰੀਸੈੱਟ ਕਰੋ"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"ਮੁੜ-ਹਾਸਲ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ, ਕਿਉਂਕਿ ਬੈਕਅੱਪ ਅਸਫਲ ਰਿਹਾ"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"ਮੁੜ-ਹਾਸਲ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"ਬੈਕਅੱਪ ਫ਼ਾਈਲ ਹਟਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"ਬੈਕਅੱਪ ਡਾਟਾ ਹਟਾਓ"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"ਟਰਮੀਨਲ ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ ਕਲਿੱਕ ਕਰੋ"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ਬੰਦ ਕਰੋ"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 8cac85b..2124dac 100644
--- a/android/TerminalApp/res/values-pl/strings.xml
+++ b/android/TerminalApp/res/values-pl/strings.xml
@@ -17,88 +17,62 @@
 <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">"Ekran terminala"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Pusty wiersz"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Zainstaluj"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Instaluję"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Błąd sieci. Sprawdź połączenie i spróbuj ponownie."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instaluję terminal Linuxa"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Zatrzymuję terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal uległ awarii"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Zmień rozmiar dysku"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Zmień rozmiar / rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Rozmiar dysku został ustawiony"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal próbuje otworzyć nowy port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port, który ma być otwarty: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Zaakceptuj"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Odrzuć"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Odzyskiwanie"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opcje odzyskiwania partycji"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Zmień na wersję początkową"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Usuń wszystko"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Zresetuj terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 0e0395a..a221586 100644
--- a/android/TerminalApp/res/values-pt-rPT/strings.xml
+++ b/android/TerminalApp/res/values-pt-rPT/strings.xml
@@ -17,88 +17,62 @@
 <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">"Ecrã do terminal"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Cursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Linha vazia"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instalar"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"A instalar…"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Erro de rede. Verifique a ligação e tente novamente."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"A instalar o terminal do Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"A parar o terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"O terminal falhou"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Redimensionamento do disco"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Redimensionamento/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Tamanho do disco definido"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"O terminal está a tentar abrir uma nova porta"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Porta com pedido de abertura: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Aceitar"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Recusar"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Recuperação"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Opções de recuperação de partições"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Altere para a versão inicial"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Remova tudo"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Reponha o terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 9fe771f..52523a7 100644
--- a/android/TerminalApp/res/values-pt/strings.xml
+++ b/android/TerminalApp/res/values-pt/strings.xml
@@ -17,88 +17,65 @@
 <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">"Tela do terminal"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Cursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Linha vazia"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instalar"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Instalando"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Erro de rede. Verifique a conexão e tente de novo."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Instalando terminal Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Interrompendo o terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"O terminal falhou"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Redimensionamento de disco"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Redimensionar / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Tamanho do disco definido"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"O terminal está tentando abrir uma nova porta"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Porta a ser aberta: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Aceitar"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Negar"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Recuperação"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Redefinir terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <string name="error_code" msgid="3585291676855383649">"Código do erro: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 79395db..1d015a8 100644
--- a/android/TerminalApp/res/values-ro/strings.xml
+++ b/android/TerminalApp/res/values-ro/strings.xml
@@ -17,88 +17,62 @@
 <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">"Afișaj terminal"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Cursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Linie goală"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instalează"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Se instalează"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Eroare de rețea. Verifică-ți conexiunea și încearcă din nou."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Se instalează terminalul Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Se oprește terminalul"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminalul s-a blocat"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Redimensionarea discului"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Redimensionează / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Dimensiunea discului este setată"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminalul încearcă să deschidă un nou port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Portul solicitat să fie deschis: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Acceptă"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Refuză"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Recuperare"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Resetează terminalul"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 01b006e..f14c59d 100644
--- a/android/TerminalApp/res/values-ru/strings.xml
+++ b/android/TerminalApp/res/values-ru/strings.xml
@@ -17,88 +17,65 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Установить"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Установка"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Ошибка сети. Проверьте подключение и повторите попытку."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Установка терминала Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"Сброс настроек терминала"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Не удается восстановить данные из-за ошибки резервного копирования."</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"Ошибка восстановления."</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
+    <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 />
-    <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Удалить данные резервного копирования"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
-    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Нажмите, чтобы открыть его."</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Закрыть"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 c1966d7..e864cd2 100644
--- a/android/TerminalApp/res/values-si/strings.xml
+++ b/android/TerminalApp/res/values-si/strings.xml
@@ -17,88 +17,65 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ස්ථාපනය කරන්න"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"ස්ථාපනය කරමින්"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"ජාල දෝෂයකි. සම්බන්ධතාවය පරීක්ෂා කර යළි උත්සාහ කරන්න."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux ටර්මිනලය ස්ථාපනය කරමින්"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"ටර්මිනලය යළි සකසන්න"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"උපස්ථය අසමත් වූ නිසා ප්‍රතිසාධනය අසමත් විය"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"ප්‍රතිසාධනය අසමත් විය"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"උපස්ථ ගොනුව ඉවත් කළ නොහැක"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"උපස්ථ දත්ත ඉවත් කරන්න"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"ටර්මිනලය විවෘත කිරීමට ක්ලික් කරන්න"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"වසන්න"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 3b206c5..ad48c26 100644
--- a/android/TerminalApp/res/values-sk/strings.xml
+++ b/android/TerminalApp/res/values-sk/strings.xml
@@ -17,88 +17,65 @@
 <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">"Zobrazenie terminálu"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kurzor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Prázdny riadok"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Inštalovať"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Inštaluje sa"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Chyba siete. Skontrolujte pripojenie a skúste to znova."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Inštaluje sa terminál systému Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Terminál sa zastavuje"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminál spadol"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Zmena veľkosti disku"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Zmeniť veľkosť / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Veľkosť disku je nastavená"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminál sa pokúša otvoriť nový port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Vyžaduje sa otvorenie portu: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Prijať"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Zamietnuť"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Obnovenie"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Resetovanie terminálu"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <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">"Nastavenia"</string>
     <string name="service_notification_title" msgid="2918088850910713393">"Terminál je spustený"</string>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 9cd43b4..74b3f6d 100644
--- a/android/TerminalApp/res/values-sl/strings.xml
+++ b/android/TerminalApp/res/values-sl/strings.xml
@@ -17,88 +17,62 @@
 <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">"Prikaz terminala"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kazalec"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Prazna vrstica"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Namesti"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Nameščanje"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Omrežna napaka. Preverite povezavo in poskusite znova."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Nameščanje terminala Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Ustavljanje terminala"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal se je zrušil"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Spreminjanje velikosti diska"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Spreminjanje velikosti/korenski datotečni sistem"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Velikost diska je nastavljena"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal poskuša odpreti nova vrata"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Zahtevano je odprtje teh vrat: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Sprejmi"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Zavrni"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Obnovitev"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Možnosti obnovitve particije"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Spremeni v začetno različico"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Odstrani vse"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Ponastavitev terminala"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 1739698..ee42f8a 100644
--- a/android/TerminalApp/res/values-sq/strings.xml
+++ b/android/TerminalApp/res/values-sq/strings.xml
@@ -17,88 +17,65 @@
 <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>
-    <string name="terminal_display" msgid="4810127497644015237">"Ekrani i terminalit"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kursori"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Rresht bosh"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Instalo"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Po instalohet"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Gabim në rrjet. Kontrollo lidhjen dhe provo përsëri."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Terminali i Linux po instalohet"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Terminali po ndalohet"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminali u ndërpre aksidentalisht"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Ndryshimi i përmasave të diskut"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Ndrysho përmasat / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Madhësia e diskut u caktua"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminali po përpiqet të hapë një portë të re"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Porta që kërkohet të hapet: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Prano"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Refuzo"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Rikuperimi"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Rivendos terminalin"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <string name="error_code" msgid="3585291676855383649">"Kodi i gabimit: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 ef1ad71..a1d4005 100644
--- a/android/TerminalApp/res/values-sr/strings.xml
+++ b/android/TerminalApp/res/values-sr/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Инсталирај"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Инсталира се"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Грешка на мрежи. Проверите везу и пробајте поново."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Инсталира се Linux терминал"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"Ресетујте терминал"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Опоравак није успео јер прављење резервне копије није успело"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"Опоравак није успео"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Уклањање фајла резервне копије није успело"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Уклоните резервну копију"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Кликните да бисте отворили терминал"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Затвори"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 ee53d3d..692f89c 100644
--- a/android/TerminalApp/res/values-sv/strings.xml
+++ b/android/TerminalApp/res/values-sv/strings.xml
@@ -17,88 +17,65 @@
 <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">"Terminalskärm"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Markör"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Tom rad"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Installera"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Installerar"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Nätverksfel. Kontrollera anslutningen och försök igen."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Installerar Linux-terminalen"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Stoppar terminalen"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminalen kraschade"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Ändra diskstorlek"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Ändra storlek/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Diskstorlek har angetts"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminalen försöker öppna en ny port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port som begärs att öppnas: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Godkänn"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Neka"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Återställning"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Återställ terminalen"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <string name="error_code" msgid="3585291676855383649">"Felkod: <xliff:g id="ERROR_CODE">%s</xliff:g>"</string>
     <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 0021e54..ca79457 100644
--- a/android/TerminalApp/res/values-sw/strings.xml
+++ b/android/TerminalApp/res/values-sw/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <string name="terminal_display" msgid="4810127497644015237">"Skrini ya kituo"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kiteuzi"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Mstari usio na chochote"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Weka"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Inaweka"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Hitilafu ya mtandao. Angalia muunganisho kisha ujaribu tena."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Inaweka temino ya Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Inafunga temino"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Temino imeacha kufanya kazi"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Kubadilisha Ukubwa wa Diski"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Badilisha ukubwa / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Ukubwa wa diski umewekwa"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Kituo kinajaribu kufungua mlango mpya"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Umeomba mlango ufunguliwe: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Kubali"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Kataa"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Kurejesha"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Badilisha temino"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 8c8d8f6..e99b837 100644
--- a/android/TerminalApp/res/values-ta/strings.xml
+++ b/android/TerminalApp/res/values-ta/strings.xml
@@ -20,85 +20,55 @@
     <string name="terminal_display" msgid="4810127497644015237">"டெர்மினல் டிஸ்ப்ளே"</string>
     <string name="terminal_input" msgid="4602512831433433551">"கர்சர்"</string>
     <string name="empty_line" msgid="5012067143408427178">"வெற்று வரி"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
-    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"Linux டெர்மினலை நிறுவுதல்"</string>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"நிறுவு"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"நிறுவுகிறது"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"நெட்வொர்க் பிழை. இணைப்பைச் சரிபார்த்து மீண்டும் முயலவும்."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux டெர்மினலை நிறுவுகிறது"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
-    <skip />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <skip />
+    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"டெர்மினல் நிறுத்தப்படுகிறது"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"டெர்மினல் சிதைவடைந்தது"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"டெர்மினலை மீட்டமைத்தல்"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"காப்புப் பிரதி எடுத்தல் தோல்வியடைந்ததால் மீட்டெடுக்க முடியவில்லை"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"மீட்டெடுக்க முடியவில்லை"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"காப்புப் பிரதி ஃபைலை அகற்ற முடியவில்லை"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"காப்புப் பிரதித் தரவை அகற்றுதல்"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"டெர்மினலைத் திறக்க கிளிக் செய்யுங்கள்"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"மூடு"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 3288895..e13f2dc 100644
--- a/android/TerminalApp/res/values-te/strings.xml
+++ b/android/TerminalApp/res/values-te/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ఇన్‌స్టాల్ చేయి"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"ఇన్‌స్టాల్ చేస్తోంది"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"నెట్‌వర్క్ ఎర్రర్. కనెక్షన్‌ను చెక్ చేసి, మళ్లీ ట్రై చేయండి."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux టెర్మినల్‌ను ఇన్‌స్టాల్ చేస్తోంది"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"టెర్మినల్‌ను రీసెట్ చేయండి"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"బ్యాకప్ విఫలమైనందున రికవరీ విఫలమైంది"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"రికవరీ విఫలమైంది"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"బ్యాకప్ ఫైల్‌ను తీసివేయడం సాధ్యపడదు"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"బ్యాకప్ డేటాను తీసివేయండి"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"టెర్మినల్‌ను తెరవడానికి క్లిక్ చేయండి"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"మూసివేయండి"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 e86bc06..0a96ca3 100644
--- a/android/TerminalApp/res/values-th/strings.xml
+++ b/android/TerminalApp/res/values-th/strings.xml
@@ -20,85 +20,55 @@
     <string name="terminal_display" msgid="4810127497644015237">"จอแสดงผลของเทอร์มินัล"</string>
     <string name="terminal_input" msgid="4602512831433433551">"เคอร์เซอร์"</string>
     <string name="empty_line" msgid="5012067143408427178">"บรรทัดว่างเปล่า"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
-    <skip />
     <string name="installer_title_text" msgid="500663060973466805">"ติดตั้งเทอร์มินัล Linux"</string>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"ติดตั้ง"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"กำลังติดตั้ง"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"ข้อผิดพลาดเกี่ยวกับเครือข่าย ตรวจสอบการเชื่อมต่อแล้วลองอีกครั้ง"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"กำลังติดตั้งเทอร์มินัล Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
-    <skip />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"รีเซ็ตเทอร์มินัล"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"กู้คืนไม่สำเร็จเนื่องจากสำรองข้อมูลไม่สำเร็จ"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"การกู้คืนไม่สำเร็จ"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"นำไฟล์ข้อมูลสำรองออกไม่ได้"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"นําข้อมูลสํารองออก"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"คลิกเพื่อเปิดเทอร์มินัล"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"ปิด"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 a4a01b8..29f316e 100644
--- a/android/TerminalApp/res/values-tl/strings.xml
+++ b/android/TerminalApp/res/values-tl/strings.xml
@@ -17,88 +17,62 @@
 <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">"Display ng terminal"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Cursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Walang lamang linya"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"I-install"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Ini-install"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Error sa network. Tingnan ang koneksyon at subukan ulit."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Ini-install ang terminal ng Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Hinihinto ang terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Nag-crash ang terminal"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"I-resize ang Disk"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"I-resize / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Nakatakda na ang laki ng disk"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Sinusubukan ng terminal na magbukas ng bagong port"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port na na-request na maging bukas: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Tanggapin"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Tanggihan"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Pag-recover"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Mga opsyon sa Pag-recover ng Partition"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Baguhin sa inisyal na bersyon"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Alisin lahat"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"I-reset ang terminal"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 8879086..5ad93ae 100644
--- a/android/TerminalApp/res/values-tr/strings.xml
+++ b/android/TerminalApp/res/values-tr/strings.xml
@@ -17,88 +17,65 @@
 <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 ekranı"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"İmleç"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Boş satır"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Yükle"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Yükleniyor"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Ağ hatası. Bağlantıyı kontrol edip tekrar deneyin."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux terminali yükleniyor"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Terminal durduruluyor"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal kilitlendi"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Diski yeniden boyutlandır"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Yeniden boyutlandır/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Disk boyutu ayarlandı"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal yeni bir bağlantı noktası açmaya çalışıyor"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Açılması istenen bağlantı noktası: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Kabul et"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Reddet"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Kurtarma"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Terminali sıfırla"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <string name="error_code" msgid="3585291676855383649">"Hata 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 çalışıyor"</string>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 e6c5809..c883d3a 100644
--- a/android/TerminalApp/res/values-uk/strings.xml
+++ b/android/TerminalApp/res/values-uk/strings.xml
@@ -17,88 +17,65 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Установити"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Встановлення"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Помилка мережі. Перевірте з’єднання й повторіть спробу."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Встановлення термінала Linux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"Скинути налаштування термінала"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"Не вдалося відновити, оскільки резервну копію не створено"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"Не вдалося відновити"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"Не вдалося вилучити файл резервної копії"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"Видалити резервну копію даних"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
+    <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_title (405150657301906598) -->
+    <!-- no translation found for error_desc (1939028888570920661) -->
     <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
+    <!-- no translation found for error_code (3585291676855383649) -->
     <skip />
-    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"Натисніть, щоб відкрити термінал"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"Закрити"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 9813c7c..81c051f 100644
--- a/android/TerminalApp/res/values-ur/strings.xml
+++ b/android/TerminalApp/res/values-ur/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"انسٹال کریں"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"انسٹال کیا جا رہا ہے"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"نیٹ ورک کی خرابی۔ کنکشن چیک کریں اور دوبارہ کوشش کریں۔"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"‫Linux ٹرمینل انسٹال ہو رہا ہے"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"ٹرمینل ری سیٹ کریں"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"بیک اپ ناکام ہونے کی وجہ سے بازیابی ناکام ہو گئی"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"بازیابی ناکام ہو گئی"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"بیک اپ فائل کو ہٹایا نہیں جا سکتا"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"بیک اپ ڈیٹا ہٹائیں"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"ٹرمینل کھولنے کے لیے کلک کریں"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"بند کریں"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 56f6429..8093ef1 100644
--- a/android/TerminalApp/res/values-uz/strings.xml
+++ b/android/TerminalApp/res/values-uz/strings.xml
@@ -17,88 +17,62 @@
 <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 displeyi"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Kursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Boʻsh qator"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Oʻrnatish"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Oʻrnatilmoqda"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Tarmoq xatosi. Aloqani tekshirib, qayta urining."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Linux terminali oʻrnatilmoqda"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Terminal toʻxtatilmoqda"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal ishdan chiqdi"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Disk hajmini oʻzgartirish"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Hajmini oʻzgartirish / Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Disk hajmi belgilandi"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal yangi port ochishga urinmoqda"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Port ochishga ruxsat soʻraldi: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Qabul qilish"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Rad etish"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Tiklash"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <string name="settings_recovery_sub_title" msgid="1067782421529340576">"Disk boʻlimini tiklash opsiyalari"</string>
+    <string name="settings_recovery_reset_title" msgid="8785305518694186025">"Dastlabki versiyaga oʻzgartirish"</string>
+    <string name="settings_recovery_reset_sub_title" msgid="5656572074090728544">"Hammasini tozalash"</string>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Terminalni asliga qaytarish"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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>
-    <!-- no translation found for service_notification_content (5772901142342308273) -->
-    <skip />
+    <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 (5242525588039698086) -->
+    <!-- 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 42de35b..dd6c5f5 100644
--- a/android/TerminalApp/res/values-vi/strings.xml
+++ b/android/TerminalApp/res/values-vi/strings.xml
@@ -17,88 +17,62 @@
 <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">"Màn hình cửa sổ dòng lệnh"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Con trỏ"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Dòng trống"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Cài đặt"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Đang cài đặt"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Lỗi mạng. Hãy kiểm tra trạng thái kết nối rồi thử lại."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Đang cài đặt Linux terminal"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Đang dừng Terminal"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Terminal gặp sự cố"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Đổi kích thước ổ đĩa"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Đổi kích thước/Rootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Đã đặt dung lượng ổ đĩa"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Terminal đang cố mở một cổng mới"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Cổng được yêu cầu mở: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Chấp nhận"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Từ chối"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Khôi phục"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Đặt lại cửa sổ dòng lệnh"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- 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 4220096..266e4b5 100644
--- a/android/TerminalApp/res/values-zh-rCN/strings.xml
+++ b/android/TerminalApp/res/values-zh-rCN/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"安装"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"正在安装"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"网络错误。请检查网络连接,然后重试。"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"正在安装 Linux 终端"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"重置终端"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"备份失败,因此无法恢复"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"恢复失败"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"无法移除备份文件"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"移除备份数据"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"点按即可打开终端"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"关闭"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 7cd3a93..463b221 100644
--- a/android/TerminalApp/res/values-zh-rHK/strings.xml
+++ b/android/TerminalApp/res/values-zh-rHK/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"安裝"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"正在安裝"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"網絡錯誤。請檢查網絡連線,然後重試。"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"正在安裝 Linux 終端機"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"重設終端機"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"由於備份失敗,因此無法復原"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"無法復原"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"無法移除備份檔案"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"移除備份資料"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"按一下即可開啟終端機"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"關閉"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 dc86f3f..83a667b 100644
--- a/android/TerminalApp/res/values-zh-rTW/strings.xml
+++ b/android/TerminalApp/res/values-zh-rTW/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"安裝"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"安裝中"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"網路發生錯誤。請檢查連線狀況,然後再試一次。"</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"正在安裝 Linux 終端機"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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_dialog_title" msgid="874946981716251094">"重設終端機"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <string name="settings_recovery_error_due_to_backup" msgid="2129959464075410607">"備份失敗,因此無法復原"</string>
     <string name="settings_recovery_error" msgid="2451912941535666379">"無法復原"</string>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <string name="settings_recovery_error_during_removing_backup" msgid="6515615177661212463">"無法移除備份檔案"</string>
     <string name="settings_recovery_remove_backup_title" msgid="1540850288876158899">"移除備份資料"</string>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <skip />
+    <string name="service_notification_content" msgid="3579923802797824545">"點選即可開啟終端機"</string>
     <string name="service_notification_quit_action" msgid="4888327875869277455">"關閉"</string>
-    <!-- no translation found for virgl_enabled (5242525588039698086) -->
+    <!-- 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 b6ff037..a15dcda 100644
--- a/android/TerminalApp/res/values-zu/strings.xml
+++ b/android/TerminalApp/res/values-zu/strings.xml
@@ -17,88 +17,62 @@
 <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>
-    <string name="terminal_display" msgid="4810127497644015237">"Isibonisi setheminali"</string>
-    <string name="terminal_input" msgid="4602512831433433551">"Icursor"</string>
-    <string name="empty_line" msgid="5012067143408427178">"Umugqa ongenalutho"</string>
-    <!-- no translation found for double_tap_to_edit_text (7380095045491399890) -->
+    <!-- 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>
-    <!-- no translation found for installer_desc_text_format (5935117404303982823) -->
-    <skip />
-    <!-- no translation found for installer_wait_for_wifi_checkbox_text (5812378362605046639) -->
-    <skip />
+    <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>
     <string name="installer_install_button_enabled_text" msgid="6142090640081511103">"Faka"</string>
     <string name="installer_install_button_disabled_text" msgid="8651445004125422467">"Iyafaka"</string>
-    <!-- no translation found for installer_install_network_error_message (6483202005746623398) -->
-    <skip />
+    <string name="installer_install_network_error_message" msgid="2450409107529774410">"Iphutha lenethiwekhi. Hlola uxhumo bese uyazama futhi."</string>
     <string name="installer_notif_title_text" msgid="471160690081159042">"Ifaka itheminali yeLinux"</string>
-    <!-- no translation found for installer_notif_desc_text (2353770076549425837) -->
+    <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 />
-    <!-- no translation found for installer_error_network (5627330072955876676) -->
-    <skip />
-    <!-- no translation found for installer_error_no_wifi (1180164894845030969) -->
-    <skip />
-    <!-- no translation found for installer_error_unknown (5657920711470180224) -->
-    <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>
     <string name="vm_stop_message" msgid="3978349856095529255">"Itheminali yokumisa"</string>
     <string name="vm_error_message" msgid="5231867246177661525">"Itheminali iphahlazekile"</string>
-    <!-- no translation found for settings_disk_resize_title (8648082439414122069) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_sub_title (568100064927028058) -->
-    <skip />
+    <string name="settings_disk_resize_title" msgid="1545791169419914600">"Shintsha Usayizi Wediski"</string>
+    <string name="settings_disk_resize_sub_title" msgid="149418971610906138">"Shintsha usayizi / IRootfs"</string>
     <string name="settings_disk_resize_resize_message" msgid="5990475712303845087">"Usayizi wediski usethiwe"</string>
     <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 (6651018335906339973) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_message (6906352501525496328) -->
-    <skip />
-    <!-- no translation found for settings_disk_resize_resize_confirm_dialog_confirm (7347432999245803583) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_title (4911743992816071205) -->
-    <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>
-    <!-- no translation found for settings_port_forwarding_notification_title (6950621555592547524) -->
-    <skip />
-    <!-- no translation found for settings_port_forwarding_notification_content (5072621159244211971) -->
-    <skip />
+    <string name="settings_port_forwarding_notification_title" msgid="2822798067500254704">"Itheminali izama ukuvula imbobo entsha"</string>
+    <string name="settings_port_forwarding_notification_content" msgid="2167103177775323330">"Imbobo icelwe ukuba ivulwe: <xliff:g id="PORT_NUMBER">%d</xliff:g>"</string>
     <string name="settings_port_forwarding_notification_accept" msgid="3571520986524038185">"Yamukela"</string>
     <string name="settings_port_forwarding_notification_deny" msgid="636848749634710403">"Yenqaba"</string>
     <string name="settings_recovery_title" msgid="6586840079226383285">"Ukuthola"</string>
-    <!-- no translation found for settings_recovery_sub_title (3906996270508262595) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_title (5388842560910568731) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_sub_title (1079896907344675995) -->
-    <skip />
+    <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>
     <string name="settings_recovery_reset_dialog_title" msgid="874946981716251094">"Setha kabusha itheminali"</string>
-    <!-- no translation found for settings_recovery_reset_dialog_message (851530339815113000) -->
-    <skip />
-    <!-- no translation found for settings_recovery_reset_dialog_confirm (6916237820754131902) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_due_to_backup (9034741074141274096) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_error_during_removing_backup (2447990797766248691) -->
-    <skip />
+    <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>
-    <!-- no translation found for settings_recovery_remove_backup_sub_title (7791375988320242059) -->
-    <skip />
-    <!-- no translation found for error_title (405150657301906598) -->
-    <skip />
-    <!-- no translation found for error_desc (1984714179775053347) -->
-    <skip />
+    <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 (5772901142342308273) -->
-    <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 (5242525588039698086) -->
+    <!-- no translation found for virgl_enabled (5466273280705345122) -->
     <skip />
 </resources>
diff --git a/android/TerminalApp/res/values/strings.xml b/android/TerminalApp/res/values/strings.xml
index 20fd95d..40c354e 100644
--- a/android/TerminalApp/res/values/strings.xml
+++ b/android/TerminalApp/res/values/strings.xml
@@ -89,6 +89,10 @@
     <string name="settings_port_forwarding_active_ports_title">Listening ports</string>
     <!-- Title for other enabled ports setting in port forwarding [CHAR LIMIT=none] -->
     <string name="settings_port_forwarding_other_enabled_ports_title">Saved allowed ports</string>
+    <!-- Description of add button for other enabled ports. Used for talkback. [CHAR LIMIT=16] -->
+    <string name="settings_port_forwarding_other_enabled_port_add_button">Add</string>
+    <!-- Description of close button for other enabled ports. Used for talkback. [CHAR LIMIT=16] -->
+    <string name="settings_port_forwarding_other_enabled_port_close_button">Delete <xliff:g id="port_number" example="8000">%d</xliff:g></string>
 
     <!-- Dialog title for enabling a new port [CHAR LIMIT=none] -->
     <string name="settings_port_forwarding_dialog_title">Allow a new port</string>
@@ -98,6 +102,12 @@
     <string name="settings_port_forwarding_dialog_save">Save</string>
     <!-- Dialog cancel action for enabling a new port [CHAR LIMIT=16] -->
     <string name="settings_port_forwarding_dialog_cancel">Cancel</string>
+    <!-- Dialog error message for non number format input [CHAR LIMIT=none] -->
+    <string name="settings_port_forwarding_dialog_error_invalid_input">Please enter a number</string>
+    <!-- Dialog error message for invalid port number [CHAR LIMIT=none] -->
+    <string name="settings_port_forwarding_dialog_error_invalid_port_range">Invalid port number</string>
+    <!-- Dialog error message for existing port [CHAR LIMIT=none] -->
+    <string name="settings_port_forwarding_dialog_error_existing_port">Port already exists</string>
 
     <!-- Notification title for a new active port [CHAR LIMIT=none] -->
     <string name="settings_port_forwarding_notification_title">Terminal is requesting to open a new port</string>
@@ -140,7 +150,7 @@
     <!-- Error page that shows error page [CHAR LIMIT=none] -->
     <string name="error_title">Unrecoverable error</string>
     <!-- Error page that shows error page [CHAR LIMIT=none] -->
-    <string name="error_desc">Failed to recover from an error.\nYou can try restarting terminal or try one of the recovery options.</string>
+    <string name="error_desc">Failed to recover from an error.\nYou can try restarting terminal or try one of the recovery options.\nIf all attempts fail, wipe all data by turning on/off Linux terminal from developer options."</string>
     <!-- Error page that shows detailed error code (error reason) for bugreport. [CHAR LIMIT=none] -->
     <string name="error_code">Error code: <xliff:g id="error_code" example="ACCESS_DENIED">%s</xliff:g></string>
 
@@ -153,6 +163,11 @@
     <!-- Notification action button for closing the virtual machine [CHAR LIMIT=20] -->
     <string name="service_notification_quit_action">Close</string>
 
+    <!-- Notification title for foreground service notification during closing [CHAR LIMIT=none] -->
+    <string name="service_notification_close_title">Terminal is closing</string>
+    <!-- Notification action button for force-closing the virtual machine [CHAR LIMIT=30] -->
+    <string name="service_notification_force_quit_action">Force close</string>
+
     <!-- This string is for toast message to notify that VirGL is enabled. [CHAR LIMIT=40] -->
     <string name="virgl_enabled"><xliff:g>VirGL</xliff:g> is enabled</string>
 </resources>
diff --git a/android/fd_server/src/main.rs b/android/fd_server/src/main.rs
index d4744e4..7779ccd 100644
--- a/android/fd_server/src/main.rs
+++ b/android/fd_server/src/main.rs
@@ -109,7 +109,8 @@
 }
 
 fn main() -> Result<()> {
-    // SAFETY: nobody has taken ownership of the inherited FDs yet.
+    // SAFETY: This is very early in the process. Nobody has taken ownership of the inherited FDs
+    // yet.
     unsafe { rustutils::inherited_fd::init_once()? };
 
     android_logger::init_once(
diff --git a/android/virtmgr/src/aidl.rs b/android/virtmgr/src/aidl.rs
index 0f81f3d..15a80a6 100644
--- a/android/virtmgr/src/aidl.rs
+++ b/android/virtmgr/src/aidl.rs
@@ -18,7 +18,7 @@
 use crate::atom::{write_vm_booted_stats, write_vm_creation_stats};
 use crate::composite::make_composite_image;
 use crate::crosvm::{AudioConfig, CrosvmConfig, DiskFile, SharedPathConfig, DisplayConfig, GpuConfig, InputDeviceOption, PayloadState, UsbConfig, VmContext, VmInstance, VmState};
-use crate::debug_config::DebugConfig;
+use crate::debug_config::{DebugConfig, DebugPolicy};
 use crate::dt_overlay::{create_device_tree_overlay, VM_DT_OVERLAY_MAX_SIZE, VM_DT_OVERLAY_PATH};
 use crate::payload::{add_microdroid_payload_images, add_microdroid_system_images, add_microdroid_vendor_image};
 use crate::selinux::{check_tee_service_permission, getfilecon, getprevcon, SeContext};
@@ -319,6 +319,12 @@
         Ok(Vec::from_iter(SUPPORTED_OS_NAMES.iter().cloned()))
     }
 
+    /// Get printable debug policy for testing and debugging
+    fn getDebugPolicy(&self) -> binder::Result<String> {
+        let debug_policy = DebugPolicy::from_host();
+        Ok(format!("{debug_policy:?}"))
+    }
+
     /// Returns whether given feature is enabled
     fn isFeatureEnabled(&self, feature: &str) -> binder::Result<bool> {
         check_manage_access()?;
@@ -647,6 +653,14 @@
         let (cpus, host_cpu_topology) = match config.cpuTopology {
             CpuTopology::MATCH_HOST => (None, true),
             CpuTopology::ONE_CPU => (NonZeroU32::new(1), false),
+            CpuTopology::CUSTOM => (
+                NonZeroU32::new(
+                    u32::try_from(config.customVcpuCount)
+                        .context("bad customVcpuCount")
+                        .or_binder_exception(ExceptionCode::ILLEGAL_ARGUMENT)?,
+                ),
+                false,
+            ),
             val => {
                 return Err(anyhow!("Failed to parse CPU topology value {:?}", val))
                     .with_log()
@@ -781,7 +795,7 @@
             boost_uclamp: config.boostUclamp,
             gpu_config,
             audio_config,
-            no_balloon: config.noBalloon,
+            balloon: config.balloon,
             usb_config,
             dump_dt_fd,
         };
@@ -889,34 +903,18 @@
         .context("Failed to extract vendor hashtree digest")
         .or_service_specific_exception(-1)?;
 
-    let vendor_hashtree_digest = if let Some(ref vendor_hashtree_digest) = vendor_hashtree_digest {
+    let mut trusted_props = if let Some(ref vendor_hashtree_digest) = vendor_hashtree_digest {
         info!(
             "Passing vendor hashtree digest to pvmfw. This will be rejected if it doesn't \
                 match the trusted digest in the pvmfw config, causing the VM to fail to start."
         );
-        Some((cstr!("vendor_hashtree_descriptor_root_digest"), vendor_hashtree_digest.as_slice()))
+        vec![(cstr!("vendor_hashtree_descriptor_root_digest"), vendor_hashtree_digest.as_slice())]
     } else {
-        None
+        vec![]
     };
 
-    let key_material;
-    let secretkeeper_public_key = if is_secretkeeper_supported() {
-        let sk: Strong<dyn ISecretkeeper> = binder::wait_for_interface(SECRETKEEPER_IDENTIFIER)?;
-        if sk.getInterfaceVersion()? >= 2 {
-            let PublicKey { keyMaterial } = sk.getSecretkeeperIdentity()?;
-            key_material = keyMaterial;
-            Some((cstr!("secretkeeper_public_key"), key_material.as_slice()))
-        } else {
-            None
-        }
-    } else {
-        None
-    };
-
-    let trusted_props: Vec<(&CStr, &[u8])> =
-        vec![vendor_hashtree_digest, secretkeeper_public_key].into_iter().flatten().collect();
-
     let instance_id;
+    let key_material;
     let mut untrusted_props = Vec::with_capacity(2);
     if cfg!(llpvm_changes) {
         instance_id = extract_instance_id(config);
@@ -925,7 +923,14 @@
         if want_updatable && is_secretkeeper_supported() {
             // Let guest know that it can defer rollback protection to Secretkeeper by setting
             // an empty property in untrusted node in DT. This enables Updatable VMs.
-            untrusted_props.push((cstr!("defer-rollback-protection"), &[]))
+            untrusted_props.push((cstr!("defer-rollback-protection"), &[]));
+            let sk: Strong<dyn ISecretkeeper> =
+                binder::wait_for_interface(SECRETKEEPER_IDENTIFIER)?;
+            if sk.getInterfaceVersion()? >= 2 {
+                let PublicKey { keyMaterial } = sk.getSecretkeeperIdentity()?;
+                key_material = keyMaterial;
+                trusted_props.push((cstr!("secretkeeper_public_key"), key_material.as_slice()));
+            }
         }
     }
 
@@ -1231,6 +1236,9 @@
     vm_config.name.clone_from(&config.name);
     vm_config.protectedVm = config.protectedVm;
     vm_config.cpuTopology = config.cpuTopology;
+    if config.cpuTopology == CpuTopology::CUSTOM {
+        bail!("AppConfig doesn't support CpuTopology::CUSTOM");
+    }
     vm_config.hugePages = config.hugePages || vm_payload_config.hugepages;
     vm_config.boostUclamp = config.boostUclamp;
 
diff --git a/android/virtmgr/src/atom.rs b/android/virtmgr/src/atom.rs
index 45b020e..e0fed85 100644
--- a/android/virtmgr/src/atom.rs
+++ b/android/virtmgr/src/atom.rs
@@ -92,6 +92,26 @@
     }
 }
 
+fn get_num_vcpus(cpu_topology: CpuTopology, custom_vcpu_count: Option<i32>) -> i32 {
+    match cpu_topology {
+        CpuTopology::ONE_CPU => 1,
+        CpuTopology::MATCH_HOST => {
+            get_num_cpus().and_then(|v| v.try_into().ok()).unwrap_or_else(|| {
+                warn!("Failed to determine the number of CPUs in the host");
+                INVALID_NUM_CPUS
+            })
+        }
+        CpuTopology::CUSTOM => custom_vcpu_count.unwrap_or_else(|| {
+            warn!("AppConfig doesn't support CpuTopology::CUSTOM");
+            INVALID_NUM_CPUS
+        }),
+        _ => {
+            warn!("invalid CpuTopology: {cpu_topology:?}");
+            INVALID_NUM_CPUS
+        }
+    }
+}
+
 /// Write the stats of VMCreation to statsd
 /// The function creates a separate thread which waits for statsd to start to push atom
 pub fn write_vm_creation_stats(
@@ -115,33 +135,24 @@
             binder_exception_code = e.exception_code() as i32;
         }
     }
-    let (vm_identifier, config_type, cpu_topology, memory_mib, apexes) = match config {
+
+    let (vm_identifier, config_type, num_cpus, memory_mib, apexes) = match config {
         VirtualMachineConfig::AppConfig(config) => (
             config.name.clone(),
             vm_creation_requested::ConfigType::VirtualMachineAppConfig,
-            config.cpuTopology,
+            get_num_vcpus(config.cpuTopology, None),
             config.memoryMib,
             get_apex_list(config),
         ),
         VirtualMachineConfig::RawConfig(config) => (
             config.name.clone(),
             vm_creation_requested::ConfigType::VirtualMachineRawConfig,
-            config.cpuTopology,
+            get_num_vcpus(config.cpuTopology, Some(config.customVcpuCount)),
             config.memoryMib,
             String::new(),
         ),
     };
 
-    let num_cpus: i32 = match cpu_topology {
-        CpuTopology::MATCH_HOST => {
-            get_num_cpus().and_then(|v| v.try_into().ok()).unwrap_or_else(|| {
-                warn!("Failed to determine the number of CPUs in the host");
-                INVALID_NUM_CPUS
-            })
-        }
-        _ => 1,
-    };
-
     let atom = AtomVmCreationRequested {
         uid: get_calling_uid() as i32,
         vmIdentifier: vm_identifier,
diff --git a/android/virtmgr/src/composite.rs b/android/virtmgr/src/composite.rs
index 1219150..cfd65c3 100644
--- a/android/virtmgr/src/composite.rs
+++ b/android/virtmgr/src/composite.rs
@@ -22,9 +22,9 @@
 use std::os::unix::fs::FileExt;
 use std::os::unix::io::AsRawFd;
 use std::path::{Path, PathBuf};
-use zerocopy::AsBytes;
 use zerocopy::FromBytes;
-use zerocopy::FromZeroes;
+use zerocopy::FromZeros;
+use zerocopy::IntoBytes;
 
 use uuid::Uuid;
 
@@ -132,7 +132,7 @@
         ImageType::AndroidSparse => {
             // Source: system/core/libsparse/sparse_format.h
             #[repr(C)]
-            #[derive(Clone, Copy, Debug, AsBytes, FromZeroes, FromBytes)]
+            #[derive(Clone, Copy, Debug, IntoBytes, FromBytes)]
             struct SparseHeader {
                 magic: u32,
                 major_version: u16,
diff --git a/android/virtmgr/src/crosvm.rs b/android/virtmgr/src/crosvm.rs
index a385b82..2bfa4e1 100644
--- a/android/virtmgr/src/crosvm.rs
+++ b/android/virtmgr/src/crosvm.rs
@@ -133,7 +133,7 @@
     pub boost_uclamp: bool,
     pub gpu_config: Option<GpuConfig>,
     pub audio_config: Option<AudioConfig>,
-    pub no_balloon: bool,
+    pub balloon: bool,
     pub usb_config: UsbConfig,
     pub dump_dt_fd: Option<File>,
 }
@@ -975,8 +975,7 @@
         .arg("--cid")
         .arg(config.cid.to_string());
 
-    if system_properties::read_bool("hypervisor.memory_reclaim.supported", false)?
-        && !config.no_balloon
+    if system_properties::read_bool("hypervisor.memory_reclaim.supported", false)? && config.balloon
     {
         command.arg("--balloon-page-reporting");
     } else {
diff --git a/android/virtmgr/src/main.rs b/android/virtmgr/src/main.rs
index 1625009..3876d39 100644
--- a/android/virtmgr/src/main.rs
+++ b/android/virtmgr/src/main.rs
@@ -83,7 +83,8 @@
 }
 
 fn main() {
-    // SAFETY: nobody has taken ownership of the inherited FDs yet.
+    // SAFETY: This is very early in the process. Nobody has taken ownership of the inherited FDs
+    // yet.
     unsafe { rustutils::inherited_fd::init_once() }
         .expect("Failed to take ownership of inherited FDs");
 
diff --git a/android/virtualizationservice/aidl/android/system/virtualizationservice/CpuTopology.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/CpuTopology.aidl
index 8a8e3d0..31a33f4 100644
--- a/android/virtualizationservice/aidl/android/system/virtualizationservice/CpuTopology.aidl
+++ b/android/virtualizationservice/aidl/android/system/virtualizationservice/CpuTopology.aidl
@@ -22,4 +22,6 @@
     ONE_CPU = 0,
     /** Match physical CPU topology of the host. */
     MATCH_HOST = 1,
+    /** Number of vCPUs specified in the config. */
+    CUSTOM = 2,
 }
diff --git a/android/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualizationService.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualizationService.aidl
index 0c3f6b7..169c3dc 100644
--- a/android/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualizationService.aidl
+++ b/android/virtualizationservice/aidl/android/system/virtualizationservice/IVirtualizationService.aidl
@@ -82,6 +82,11 @@
      */
     String[] getSupportedOSList();
 
+    /**
+     * Get installed debug policy for test and debugging purpose.
+     */
+    String getDebugPolicy();
+
     /** Returns whether given feature is enabled. */
     boolean isFeatureEnabled(in String feature);
 
diff --git a/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl b/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
index 5728a68..d98fdcc 100644
--- a/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
+++ b/android/virtualizationservice/aidl/android/system/virtualizationservice/VirtualMachineRawConfig.aidl
@@ -65,6 +65,9 @@
     /** The vCPU topology that will be generated for the VM. Default to 1 vCPU. */
     CpuTopology cpuTopology = CpuTopology.ONE_CPU;
 
+    /** The number of vCPUs. Ignored unless `cpuTopology == CUSTOM`. */
+    int customVcpuCount;
+
     /**
      * A version or range of versions of the virtual platform that this config is compatible with.
      * The format follows SemVer.
@@ -106,7 +109,7 @@
 
     @nullable AudioConfig audioConfig;
 
-    boolean noBalloon;
+    boolean balloon;
 
     /** Enable or disable USB passthrough support */
     @nullable UsbConfig usbConfig;
diff --git a/android/virtualizationservice/vfio_handler/src/aidl.rs b/android/virtualizationservice/vfio_handler/src/aidl.rs
index 3b4d0c5..d6b79e2 100644
--- a/android/virtualizationservice/vfio_handler/src/aidl.rs
+++ b/android/virtualizationservice/vfio_handler/src/aidl.rs
@@ -29,7 +29,6 @@
 use rustutils::system_properties;
 use zerocopy::{
     byteorder::{BigEndian, U32},
-    FromZeroes,
     FromBytes,
 };
 
@@ -131,7 +130,7 @@
 /// The structure of DT table header in dtbo.img.
 /// https://source.android.com/docs/core/architecture/dto/partitions
 #[repr(C)]
-#[derive(Debug, FromZeroes, FromBytes)]
+#[derive(Debug, FromBytes)]
 struct DtTableHeader {
     /// DT_TABLE_MAGIC
     magic: U32<BigEndian>,
@@ -155,7 +154,7 @@
 /// The structure of each DT table entry (v0) in dtbo.img.
 /// https://source.android.com/docs/core/architecture/dto/partitions
 #[repr(C)]
-#[derive(Debug, FromZeroes, FromBytes)]
+#[derive(Debug, FromBytes)]
 struct DtTableEntry {
     /// size of each DT
     dt_size: U32<BigEndian>,
diff --git a/android/vm/src/main.rs b/android/vm/src/main.rs
index 7bfd957..830d56c 100644
--- a/android/vm/src/main.rs
+++ b/android/vm/src/main.rs
@@ -483,6 +483,9 @@
     let os_list = get_service()?.getSupportedOSList()?;
     println!("Available OS list: {}", serde_json::to_string(&os_list)?);
 
+    let debug_policy = get_service()?.getDebugPolicy()?;
+    println!("Debug policy: {}", debug_policy);
+
     Ok(())
 }
 
diff --git a/android/vm_demo_native/main.cpp b/android/vm_demo_native/main.cpp
index d7ff02e..e1acc05 100644
--- a/android/vm_demo_native/main.cpp
+++ b/android/vm_demo_native/main.cpp
@@ -361,8 +361,10 @@
 
 // This is the main routine that follows the steps in order
 Result<void> inner_main() {
-    TemporaryDir work_dir;
-    std::string work_dir_path(work_dir.path);
+    std::string work_dir_path("/data/local/tmp/vm_demo/");
+    if (mkdir(work_dir_path.c_str(), 0700) == -1 && errno != EEXIST) {
+        return ErrnoError() << "failed to create working directory " << work_dir_path.c_str();
+    }
 
     // Step 1: connect to the virtualizationservice
     unique_fd fd = OR_RETURN(get_service_fd());
diff --git a/build/Android.bp b/build/Android.bp
index 2b97927..ef70fe4 100644
--- a/build/Android.bp
+++ b/build/Android.bp
@@ -75,3 +75,20 @@
     tools: ["dtc"],
     cmd: "FILES=($(in)) && $(location dtc) -@ -I dts -O dtb $${FILES[-1]} -o $(out)",
 }
+
+// This is a temporary workaround until b/343795511 is implemented.
+aconfig_declarations {
+    name: "avf_aconfig_flags",
+    package: "com.android.system.virtualmachine.flags",
+    container: "com.android.virt",
+    srcs: [
+        "avf_flags.aconfig",
+    ],
+}
+
+java_aconfig_library {
+    name: "avf_aconfig_flags_java",
+    aconfig_declarations: "avf_aconfig_flags",
+    sdk_version: "module_current",
+    apex_available: ["com.android.virt"],
+}
diff --git a/build/apex/product_packages.mk b/build/apex/product_packages.mk
index 0646e67..edc8618 100644
--- a/build/apex/product_packages.mk
+++ b/build/apex/product_packages.mk
@@ -65,11 +65,3 @@
     $(error RELEASE_AVF_ENABLE_LLPVM_CHANGES must also be enabled)
   endif
 endif
-
-ifdef RELEASE_AVF_ENABLE_EARLY_VM
-  # We can't query TARGET_RELEASE from here, so we use RELEASE_AIDL_USE_UNFROZEN as a proxy value of
-  # whether we are building -next release.
-  ifneq ($(RELEASE_AIDL_USE_UNFROZEN),true)
-    $(error RELEASE_AVF_ENABLE_EARLY_VM can only be enabled in trunk_staging until b/357025924 is fixed)
-  endif
-endif
diff --git a/build/avf_flags.aconfig b/build/avf_flags.aconfig
new file mode 100644
index 0000000..9815c60
--- /dev/null
+++ b/build/avf_flags.aconfig
@@ -0,0 +1,11 @@
+package: "com.android.system.virtualmachine.flags"
+container: "com.android.virt"
+
+flag {
+  name: "promote_set_should_use_hugepages_to_system_api"
+  is_exported: true
+  namespace: "virtualization"
+  description: "Flag used in @FlaggedApi annotation for setShouldUseHugepages"
+  bug: "383347947"
+  is_fixed_read_only: true
+}
diff --git a/build/debian/build.sh b/build/debian/build.sh
index 9104adc..9bb1481 100755
--- a/build/debian/build.sh
+++ b/build/debian/build.sh
@@ -11,6 +11,7 @@
 	echo "Options:"
 	echo "-h         Print usage and this help message and exit."
 	echo "-a ARCH    Architecture of the image [default is host arch: $(uname -m)]"
+	echo "-k         Build and use our custom kernel [default is cloud kernel]"
 	echo "-r         Release mode build"
 	echo "-w         Save temp work directory [for debugging]"
 }
@@ -22,7 +23,7 @@
 }
 
 parse_options() {
-	while getopts "a:hrw" option; do
+	while getopts "a:hkrw" option; do
 		case ${option} in
 			h)
 				show_help ; exit
@@ -30,6 +31,9 @@
 			a)
 				arch="$OPTARG"
 				;;
+			k)
+				use_custom_kernel=1
+				;;
 			r)
 				mode=release
 				;;
@@ -117,6 +121,33 @@
 			linux-image-generic
 		)
 	fi
+
+	if [[ "$use_custom_kernel" -eq 1 ]]; then
+		packages+=(
+			bc
+			bison
+			debhelper
+			dh-exec
+			flex
+			gcc-12
+			kernel-wedge
+			libelf-dev
+			libpci-dev
+			lz4
+			pahole
+			python3-jinja2
+			python3-docutils
+			quilt
+			rsync
+		)
+		if [[ "$arch" == "aarch64" ]]; then
+			packages+=(
+				gcc-arm-linux-gnueabihf
+				gcc-12-aarch64-linux-gnu
+			)
+		fi
+	fi
+
 	DEBIAN_FRONTEND=noninteractive \
 	apt install --no-install-recommends --assume-yes "${packages[@]}"
 
@@ -192,6 +223,83 @@
 	build_rust_binary_and_copy forwarder_guest
 	build_rust_binary_and_copy forwarder_guest_launcher
 	build_rust_binary_and_copy ip_addr_reporter
+	build_rust_binary_and_copy shutdown_runner
+}
+
+package_custom_kernel() {
+	if [[ "$use_custom_kernel" != 1 ]]; then
+		echo "linux-headers-generic" >> "${config_space}/package_config/AVF"
+		return
+	fi
+
+	# NOTE: 6.1 is the latest LTS kernel for which Debian's kernel build scripts
+	#       work on Python 3.10, the default version on our Ubuntu 22.04 builders.
+	local debian_kver="6.1.119-1"
+	local custom_flavour="avf"
+	local ksrc_base_url="https://deb.debian.org/debian/pool/main/l/linux"
+
+	local dsc_url="${ksrc_base_url}/linux_${debian_kver}.dsc"
+	local debian_ksrc_url="${ksrc_base_url}/linux_${debian_kver}.debian.tar.xz"
+	local orig_ksrc_url="${ksrc_base_url}/linux_${debian_kver%-*}.orig.tar.xz"
+
+	# 0. Grab the kernel sources, and the latest debian keyrings
+	mkdir -p "${workdir}/kernel"
+	pushd "${workdir}/kernel" > /dev/null
+	wget "$dsc_url"
+	wget "$orig_ksrc_url"
+	wget "$debian_ksrc_url"
+	rsync -az --progress keyring.debian.org::keyrings/keyrings/ /usr/share/keyrings/
+
+	# 1. Verify, extract and merge patches into the original kernel sources
+	dpkg-source --require-strong-checksums \
+	            --require-valid-signature \
+	            --extract linux_${debian_kver}.dsc
+	pushd "linux-${debian_kver%-*}" > /dev/null
+	# TODO: Copy our own kernel patches to debian/patches
+	#       and add patch file names in the desired order to debian/patches/series
+	./debian/rules orig
+
+	local abi_kver="$(sed -nE 's;Package: linux-support-(.*);\1;p' debian/control)"
+	local debarch_flavour="${custom_flavour}-${debian_arch}"
+	local abi_flavour="${abi_kver}-${debarch_flavour}"
+
+	# 2. Define our custom flavour and regenerate control file
+	# NOTE: Our flavour extends Debian's `cloud` config on the `none` featureset.
+	cat > debian/config/${debian_arch}/config.${debarch_flavour} <<EOF
+# TODO: Add our custom kernel config to this file
+EOF
+
+	sed -z "s;\[base\]\nflavours:;[base]\nflavours:\n ${debarch_flavour};" \
+	    -i debian/config/${debian_arch}/none/defines
+	cat >> debian/config/${debian_arch}/none/defines <<EOF
+[${debarch_flavour}_image]
+configs:
+ config.cloud
+ ${debian_arch}/config.${debarch_flavour}
+EOF
+	cat >> debian/config/${debian_arch}/defines <<EOF
+[${debarch_flavour}_description]
+hardware: ${arch} AVF
+hardware-long: ${arch} Android Virtualization Framework
+EOF
+	./debian/rules debian/control || true
+
+	# 3. Build the kernel and generate Debian packages
+	./debian/rules source
+	[[ "$arch" == "$(uname -m)" ]] || export $(dpkg-architecture -a $debian_arch)
+	make -j$(nproc) -f debian/rules.gen \
+	     "binary-arch_${debian_arch}_none_${debarch_flavour}"
+
+	# 4. Copy the packages to localdebs and add their names to package_config/AVF
+	popd > /dev/null
+	cp "linux-headers-${abi_flavour}_${debian_kver}_${debian_arch}.deb" \
+	   "linux-image-${abi_flavour}-unsigned_${debian_kver}_${debian_arch}.deb" \
+	   "${debian_cloud_image}/localdebs/"
+	popd > /dev/null
+	cat >> "${config_space}/package_config/AVF" <<EOF
+linux-headers-${abi_flavour}
+linux-image-${abi_flavour}-unsigned
+EOF
 }
 
 run_fai() {
@@ -237,12 +345,14 @@
 arch="$(uname -m)"
 mode=debug
 save_workdir=0
+use_custom_kernel=0
 
 parse_options "$@"
 check_sudo
 install_prerequisites
 download_debian_cloud_image
 copy_android_config
+package_custom_kernel
 run_fai
 fdisk -l "${built_image}"
 images=()
diff --git a/build/debian/build_in_container.sh b/build/debian/build_in_container.sh
index 5028b74..967f5ab 100755
--- a/build/debian/build_in_container.sh
+++ b/build/debian/build_in_container.sh
@@ -6,17 +6,19 @@
   echo "Options:"
   echo "-h         Print usage and this help message and exit."
   echo "-a ARCH    Architecture of the image [default is host arch: $(uname -m)]"
+  echo "-k         Build and use our custom kernel [default is cloud kernel]"
   echo "-r         Release mode build"
   echo "-s         Leave a shell open [default: only if the build fails]"
   echo "-w         Save temp work directory in the container [for debugging]"
 }
 
 arch="$(uname -m)"
+kernel_flag=
 release_flag=
 save_workdir_flag=
 shell_condition="||"
 
-while getopts "a:rsw" option; do
+while getopts "a:hkrsw" option; do
   case ${option} in
     a)
       arch="$OPTARG"
@@ -24,6 +26,9 @@
     h)
       show_help ; exit
       ;;
+    k)
+      kernel_flag="-k"
+      ;;
     r)
       release_flag="-r"
       ;;
@@ -53,4 +58,4 @@
   -v "$ANDROID_BUILD_TOP/packages/modules/Virtualization:/root/Virtualization" \
   --workdir /root/Virtualization/build/debian \
   ubuntu:22.04 \
-  bash -c "/root/Virtualization/build/debian/build.sh -a $arch $release_flag $save_workdir_flag $shell_condition bash"
+  bash -c "/root/Virtualization/build/debian/build.sh -a $arch $release_flag $kernel_flag $save_workdir_flag $shell_condition bash"
diff --git a/build/debian/fai_config/files/etc/systemd/system/shutdown_runner.service/AVF b/build/debian/fai_config/files/etc/systemd/system/shutdown_runner.service/AVF
new file mode 100644
index 0000000..bfb8afb
--- /dev/null
+++ b/build/debian/fai_config/files/etc/systemd/system/shutdown_runner.service/AVF
@@ -0,0 +1,11 @@
+[Unit]
+After=syslog.target
+After=network.target
+After=virtiofs_internal.service
+[Service]
+ExecStart=/usr/bin/bash -c '/usr/local/bin/shutdown_runner --grpc_port $(cat /mnt/internal/debian_service_port)'
+Type=simple
+User=root
+Group=root
+[Install]
+WantedBy=multi-user.target
diff --git a/build/debian/fai_config/package_config/AVF b/build/debian/fai_config/package_config/AVF
index 2e55e90..a91c354 100644
--- a/build/debian/fai_config/package_config/AVF
+++ b/build/debian/fai_config/package_config/AVF
@@ -1,5 +1,4 @@
 PACKAGES install
 
 bpfcc-tools
-linux-headers-generic
 procps
diff --git a/build/debian/fai_config/scripts/AVF/10-systemd b/build/debian/fai_config/scripts/AVF/10-systemd
index 94838bc..119bec7 100755
--- a/build/debian/fai_config/scripts/AVF/10-systemd
+++ b/build/debian/fai_config/scripts/AVF/10-systemd
@@ -3,6 +3,7 @@
 chmod +x $target/usr/local/bin/forwarder_guest
 chmod +x $target/usr/local/bin/forwarder_guest_launcher
 chmod +x $target/usr/local/bin/ip_addr_reporter
+chmod +x $target/usr/local/bin/shutdown_runner
 chmod +x $target/usr/local/bin/ttyd
 ln -s /etc/systemd/system/ttyd.service $target/etc/systemd/system/multi-user.target.wants/ttyd.service
 ln -s /etc/systemd/system/ip_addr_reporter.service $target/etc/systemd/system/multi-user.target.wants/ip_addr_reporter.service
@@ -10,5 +11,6 @@
 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
+ln -s /etc/systemd/system/shutdown_runner.service $target/etc/systemd/system/multi-user.target.wants/shutdown_runner.service
 
 sed -i 's/#LLMNR=yes/LLMNR=no/' $target/etc/systemd/resolved.conf
diff --git a/build/debian/kokoro/gcp_ubuntu_docker/x86_64/build.sh b/build/debian/kokoro/gcp_ubuntu_docker/x86_64/build.sh
index 22ac595..a935591 100644
--- a/build/debian/kokoro/gcp_ubuntu_docker/x86_64/build.sh
+++ b/build/debian/kokoro/gcp_ubuntu_docker/x86_64/build.sh
@@ -5,7 +5,7 @@
 cd "${KOKORO_ARTIFACTS_DIR}/git/avf/build/debian/"
 sudo losetup -D
 grep vmx /proc/cpuinfo || true
-sudo ./build.sh -r -a x86_64
+sudo ./build.sh -a x86_64 -k -r
 sudo mv images.tar.gz ${KOKORO_ARTIFACTS_DIR} || true
 mkdir -p ${KOKORO_ARTIFACTS_DIR}/logs
 sudo cp -r /var/log/fai/* ${KOKORO_ARTIFACTS_DIR}/logs || true
diff --git a/build/debian/release.sh b/build/debian/release.sh
index 437f9c8..8f89e21 100755
--- a/build/debian/release.sh
+++ b/build/debian/release.sh
@@ -83,7 +83,7 @@
 	local image=$(get_image_path ${arch} ${build_id})
 
 	local tag=${tag:-${build_id}}
-	local serving_url=/android/ferrochrome/${arch}/${tag}/${image_filename}
+	local serving_url=/android/ferrochrome/${tag}/${arch}/${image_filename}
 	echo "Releasing ${image} to ${serving_url}"
 
 	local request='payload : { url_path: '"\"${serving_url}\""' source_path : '"\"${image}\""' }'
diff --git a/build/microdroid/Android.bp b/build/microdroid/Android.bp
index 68b715d..dea0bf3 100644
--- a/build/microdroid/Android.bp
+++ b/build/microdroid/Android.bp
@@ -598,6 +598,12 @@
             src: ":microdroid_kernel_prebuilt-x86_64",
         },
     },
+    props: [
+        {
+            name: "com.android.virt.page_size",
+            value: "16",
+        },
+    ],
     include_descriptors_from_images: [
         ":microdroid_16k_initrd_normal_hashdesc",
         ":microdroid_16k_initrd_debug_hashdesc",
diff --git a/guest/apkdmverity/Android.bp b/guest/apkdmverity/Android.bp
index 0cb8ca1..3f45bb4 100644
--- a/guest/apkdmverity/Android.bp
+++ b/guest/apkdmverity/Android.bp
@@ -22,7 +22,6 @@
         "libnum_traits",
         "libscopeguard",
         "libuuid",
-        "libzerocopy",
     ],
     proc_macros: ["libnum_derive"],
     multilib: {
diff --git a/guest/authfs_service/src/main.rs b/guest/authfs_service/src/main.rs
index be0f1b2..855bd58 100644
--- a/guest/authfs_service/src/main.rs
+++ b/guest/authfs_service/src/main.rs
@@ -109,7 +109,8 @@
 
 #[allow(clippy::eq_op)]
 fn try_main() -> Result<()> {
-    // SAFETY: nobody has taken ownership of the inherited FDs yet.
+    // SAFETY: This is very early in the process. Nobody has taken ownership of the inherited FDs
+    // yet.
     unsafe { rustutils::inherited_fd::init_once()? };
 
     let debuggable = env!("TARGET_BUILD_VARIANT") != "user";
diff --git a/guest/microdroid_manager/src/dice.rs b/guest/microdroid_manager/src/dice.rs
index 7cfeb21..edc4d63 100644
--- a/guest/microdroid_manager/src/dice.rs
+++ b/guest/microdroid_manager/src/dice.rs
@@ -53,11 +53,7 @@
     let debuggable = is_debuggable()?;
 
     // Send the details to diced
-    let hidden = if cfg!(llpvm_changes) {
-        hidden_input_from_instance_id()?
-    } else {
-        instance_data.salt.clone().try_into().unwrap()
-    };
+    let hidden = hidden_input_from_instance_id()?;
     dice.derive(code_hash, &config_descriptor, authority_hash, debuggable, hidden)
 }
 
diff --git a/guest/microdroid_manager/src/instance.rs b/guest/microdroid_manager/src/instance.rs
index 2d39cd8..d3a597a 100644
--- a/guest/microdroid_manager/src/instance.rs
+++ b/guest/microdroid_manager/src/instance.rs
@@ -273,9 +273,6 @@
 
 #[derive(Debug, Serialize, Deserialize, PartialEq, Eq)]
 pub struct MicrodroidData {
-    // `salt` is obsolete, it was used as a differentiator for non-protected VM instances running
-    // same payload. Instance-id (present in DT) is used for that now.
-    pub salt: Vec<u8>, // Should be [u8; 64] but that isn't serializable.
     pub apk_data: ApkData,
     pub extra_apks_data: Vec<ApkData>,
     pub apex_data: Vec<ApexData>,
diff --git a/guest/microdroid_manager/src/main.rs b/guest/microdroid_manager/src/main.rs
index 4a6887e..4b261c4 100644
--- a/guest/microdroid_manager/src/main.rs
+++ b/guest/microdroid_manager/src/main.rs
@@ -170,7 +170,8 @@
 }
 
 fn main() -> Result<()> {
-    // SAFETY: nobody has taken ownership of the inherited FDs yet.
+    // SAFETY: This is very early in the process. Nobody has taken ownership of the inherited FDs
+    // yet.
     unsafe { rustutils::inherited_fd::init_once()? };
 
     // If debuggable, print full backtrace to console log with stdio_to_kmsg
diff --git a/guest/microdroid_manager/src/verify.rs b/guest/microdroid_manager/src/verify.rs
index 90671a6..e5d26fc 100644
--- a/guest/microdroid_manager/src/verify.rs
+++ b/guest/microdroid_manager/src/verify.rs
@@ -14,7 +14,7 @@
 
 use crate::instance::{ApexData, ApkData, MicrodroidData};
 use crate::payload::{get_apex_data_from_payload, to_metadata};
-use crate::{is_strict_boot, MicrodroidError};
+use crate::MicrodroidError;
 use anyhow::{anyhow, ensure, Context, Result};
 use apkmanifest::get_manifest_info;
 use apkverify::{extract_signed_data, verify, V4Signature};
@@ -23,7 +23,6 @@
 use log::{info, warn};
 use microdroid_metadata::{write_metadata, Metadata};
 use openssl::sha::sha512;
-use rand::Fill;
 use rustutils::system_properties;
 use std::fs::OpenOptions;
 use std::path::Path;
@@ -168,21 +167,7 @@
     // verified is consistent with the root hash) or because we have the saved APK data which will
     // be checked as identical to the data we have verified.
 
-    let salt = if cfg!(llpvm_changes) || is_strict_boot() {
-        // Salt is obsolete with llpvm_changes.
-        vec![0u8; 64]
-    } else if let Some(saved_data) = saved_data {
-        // Use the salt from a verified instance.
-        saved_data.salt.clone()
-    } else {
-        // Generate a salt for a new instance.
-        let mut salt = vec![0u8; 64];
-        salt.as_mut_slice().try_fill(&mut rand::thread_rng())?;
-        salt
-    };
-
     Ok(MicrodroidData {
-        salt,
         apk_data: main_apk_data,
         extra_apks_data,
         apex_data: apex_data_from_payload,
diff --git a/guest/microdroid_manager/src/vm_secret.rs b/guest/microdroid_manager/src/vm_secret.rs
index 1ad2d88..5cc90ff 100644
--- a/guest/microdroid_manager/src/vm_secret.rs
+++ b/guest/microdroid_manager/src/vm_secret.rs
@@ -36,6 +36,8 @@
 use secretkeeper_comm::data_types::error::SecretkeeperError;
 use std::fs;
 use zeroize::Zeroizing;
+use std::sync::Mutex;
+use std::sync::Arc;
 
 const ENCRYPTEDSTORE_KEY_IDENTIFIER: &str = "encryptedstore_key";
 const AUTHORITY_HASH: i64 = -4670549;
@@ -98,27 +100,20 @@
 
         let explicit_dice = OwnedDiceArtifactsWithExplicitKey::from_owned_artifacts(dice_artifacts)
             .context("Failed to get Dice artifacts in explicit key format")?;
-        // For pVM, skp_secret are stored in Secretkeeper. For non-protected it is all 0s.
+        let session = SkVmSession::new(vm_service, &explicit_dice)?;
+        let id = super::get_instance_id()?.ok_or(anyhow!("Missing instance_id"))?;
+        let explicit_dice_chain = explicit_dice
+            .explicit_key_dice_chain()
+            .ok_or(anyhow!("Missing explicit dice chain, this is unusual"))?;
+        let policy = sealing_policy(explicit_dice_chain)
+            .map_err(|e| anyhow!("Failed to build a sealing_policy: {e}"))?;
         let mut skp_secret = Zeroizing::new([0u8; SECRET_SIZE]);
-        if super::is_strict_boot() {
-            let sk_service = get_secretkeeper_service(vm_service)?;
-            let mut session =
-                SkSession::new(sk_service, &explicit_dice, Some(get_secretkeeper_identity()?))?;
-            let id = super::get_instance_id()?.ok_or(anyhow!("Missing instance_id"))?;
-            let explicit_dice_chain = explicit_dice
-                .explicit_key_dice_chain()
-                .ok_or(anyhow!("Missing explicit dice chain, this is unusual"))?;
-            let policy = sealing_policy(explicit_dice_chain)
-                .map_err(|e| anyhow!("Failed to build a sealing_policy: {e}"))?;
-            if let Some(secret) = get_secret(&mut session, id, Some(policy.clone()))? {
-                *skp_secret = secret;
-            } else {
-                log::warn!(
-                    "No entry found in Secretkeeper for this VM instance, creating new secret."
-                );
-                *skp_secret = rand::random();
-                store_secret(&mut session, id, skp_secret.clone(), policy)?;
-            }
+        if let Some(secret) = session.get_secret(id, Some(policy.clone()))? {
+            *skp_secret = secret
+        } else {
+            log::warn!("No entry found in Secretkeeper for this VM instance, creating new secret.");
+            *skp_secret = rand::random();
+            session.store_secret(id, skp_secret.clone(), policy)?;
         }
         Ok(Self::V2 {
             dice_artifacts: explicit_dice,
@@ -231,48 +226,67 @@
         .map_err(|e| format!("DicePolicy construction failed {e:?}"))
 }
 
-fn store_secret(
-    session: &mut SkSession,
-    id: [u8; ID_SIZE],
-    secret: Zeroizing<[u8; SECRET_SIZE]>,
-    sealing_policy: Vec<u8>,
-) -> Result<()> {
-    let store_request = StoreSecretRequest { id: Id(id), secret: Secret(*secret), sealing_policy };
-    log::info!("Secretkeeper operation: {:?}", store_request);
+// The secure session between VM & Secretkeeper
+struct SkVmSession(Arc<Mutex<SkSession>>);
+impl SkVmSession {
+    fn new(
+        vm_service: &Strong<dyn IVirtualMachineService>,
+        dice: &OwnedDiceArtifactsWithExplicitKey,
+    ) -> Result<Self> {
+        let secretkeeper_proxy = get_secretkeeper_service(vm_service)?;
+        let secure_session =
+            SkSession::new(secretkeeper_proxy, dice, Some(get_secretkeeper_identity()?))?;
+        let secure_session = Arc::new(Mutex::new(secure_session));
+        Ok(Self(secure_session))
+    }
 
-    let store_request = store_request.serialize_to_packet().to_vec().map_err(anyhow_err)?;
-    let store_response = session.secret_management_request(&store_request)?;
-    let store_response = ResponsePacket::from_slice(&store_response).map_err(anyhow_err)?;
-    let response_type = store_response.response_type().map_err(anyhow_err)?;
-    ensure!(
-        response_type == ResponseType::Success,
-        "Secretkeeper store failed with error: {:?}",
-        *SecretkeeperError::deserialize_from_packet(store_response).map_err(anyhow_err)?
-    );
-    Ok(())
-}
+    fn store_secret(
+        &self,
+        id: [u8; ID_SIZE],
+        secret: Zeroizing<[u8; SECRET_SIZE]>,
+        sealing_policy: Vec<u8>,
+    ) -> Result<()> {
+        let store_request =
+            StoreSecretRequest { id: Id(id), secret: Secret(*secret), sealing_policy };
+        log::info!("Secretkeeper operation: {:?}", store_request);
 
-fn get_secret(
-    session: &mut SkSession,
-    id: [u8; ID_SIZE],
-    updated_sealing_policy: Option<Vec<u8>>,
-) -> Result<Option<[u8; SECRET_SIZE]>> {
-    let get_request = GetSecretRequest { id: Id(id), updated_sealing_policy };
-    log::info!("Secretkeeper operation: {:?}", get_request);
-    let get_request = get_request.serialize_to_packet().to_vec().map_err(anyhow_err)?;
-    let get_response = session.secret_management_request(&get_request)?;
-    let get_response = ResponsePacket::from_slice(&get_response).map_err(anyhow_err)?;
-    let response_type = get_response.response_type().map_err(anyhow_err)?;
-    if response_type == ResponseType::Success {
-        let get_response =
-            *GetSecretResponse::deserialize_from_packet(get_response).map_err(anyhow_err)?;
-        Ok(Some(get_response.secret.0))
-    } else {
-        let error = SecretkeeperError::deserialize_from_packet(get_response).map_err(anyhow_err)?;
-        if *error == SecretkeeperError::EntryNotFound {
-            return Ok(None);
+        let store_request = store_request.serialize_to_packet().to_vec().map_err(anyhow_err)?;
+        let session = &mut *self.0.lock().unwrap();
+        let store_response = session.secret_management_request(&store_request)?;
+        let store_response = ResponsePacket::from_slice(&store_response).map_err(anyhow_err)?;
+        let response_type = store_response.response_type().map_err(anyhow_err)?;
+        ensure!(
+            response_type == ResponseType::Success,
+            "Secretkeeper store failed with error: {:?}",
+            *SecretkeeperError::deserialize_from_packet(store_response).map_err(anyhow_err)?
+        );
+        Ok(())
+    }
+
+    fn get_secret(
+        &self,
+        id: [u8; ID_SIZE],
+        updated_sealing_policy: Option<Vec<u8>>,
+    ) -> Result<Option<[u8; SECRET_SIZE]>> {
+        let get_request = GetSecretRequest { id: Id(id), updated_sealing_policy };
+        log::info!("Secretkeeper operation: {:?}", get_request);
+        let get_request = get_request.serialize_to_packet().to_vec().map_err(anyhow_err)?;
+        let session = &mut *self.0.lock().unwrap();
+        let get_response = session.secret_management_request(&get_request)?;
+        let get_response = ResponsePacket::from_slice(&get_response).map_err(anyhow_err)?;
+        let response_type = get_response.response_type().map_err(anyhow_err)?;
+        if response_type == ResponseType::Success {
+            let get_response =
+                *GetSecretResponse::deserialize_from_packet(get_response).map_err(anyhow_err)?;
+            Ok(Some(get_response.secret.0))
+        } else {
+            let error =
+                SecretkeeperError::deserialize_from_packet(get_response).map_err(anyhow_err)?;
+            if *error == SecretkeeperError::EntryNotFound {
+                return Ok(None);
+            }
+            Err(anyhow!("Secretkeeper get failed: {error:?}"))
         }
-        Err(anyhow!("Secretkeeper get failed: {error:?}"))
     }
 }
 
diff --git a/guest/pvmfw/README.md b/guest/pvmfw/README.md
index 8c8314d..766a923 100644
--- a/guest/pvmfw/README.md
+++ b/guest/pvmfw/README.md
@@ -461,6 +461,7 @@
   - `secretkeeper_protection`: pvmfw defers rollback protection to the guest
   - `supports_uefi_boot`: pvmfw boots the VM as a EFI payload (experimental)
   - `trusty_security_vm`: pvmfw skips rollback protection
+- `"com.android.virt.page_size"`: the guest page size in KiB (optional, defaults to 4)
 
 ## Development
 
diff --git a/guest/pvmfw/avb/Android.bp b/guest/pvmfw/avb/Android.bp
index a1ee626..0294322 100644
--- a/guest/pvmfw/avb/Android.bp
+++ b/guest/pvmfw/avb/Android.bp
@@ -37,10 +37,16 @@
         ":test_image_with_one_hashdesc",
         ":test_image_with_non_initrd_hashdesc",
         ":test_image_with_initrd_and_non_initrd_desc",
-        ":test_image_with_prop_desc",
+        ":test_image_with_invalid_page_size",
+        ":test_image_with_negative_page_size",
+        ":test_image_with_overflow_page_size",
+        ":test_image_with_0k_page_size",
+        ":test_image_with_1k_page_size",
+        ":test_image_with_4k_page_size",
+        ":test_image_with_9k_page_size",
+        ":test_image_with_16k_page_size",
         ":test_image_with_service_vm_prop",
         ":test_image_with_unknown_vm_type_prop",
-        ":test_image_with_multiple_props",
         ":test_image_with_duplicated_capability",
         ":test_image_with_rollback_index_5",
         ":test_image_with_multiple_capabilities",
@@ -117,15 +123,113 @@
 }
 
 avb_add_hash_footer {
-    name: "test_image_with_prop_desc",
+    name: "test_image_with_invalid_page_size",
     src: ":unsigned_test_image",
     partition_name: "boot",
     private_key: ":pvmfw_sign_key",
     salt: "2134",
     props: [
         {
-            name: "mock_prop",
-            value: "3333",
+            name: "com.android.virt.page_size",
+            value: "invalid",
+        },
+    ],
+}
+
+avb_add_hash_footer {
+    name: "test_image_with_negative_page_size",
+    src: ":unsigned_test_image",
+    partition_name: "boot",
+    private_key: ":pvmfw_sign_key",
+    salt: "2134",
+    props: [
+        {
+            name: "com.android.virt.page_size",
+            value: "-16",
+        },
+    ],
+}
+
+avb_add_hash_footer {
+    name: "test_image_with_overflow_page_size",
+    src: ":unsigned_test_image",
+    partition_name: "boot",
+    private_key: ":pvmfw_sign_key",
+    salt: "2134",
+    props: [
+        {
+            name: "com.android.virt.page_size",
+            value: "18014398509481983",
+        },
+    ],
+}
+
+avb_add_hash_footer {
+    name: "test_image_with_0k_page_size",
+    src: ":unsigned_test_image",
+    partition_name: "boot",
+    private_key: ":pvmfw_sign_key",
+    salt: "2134",
+    props: [
+        {
+            name: "com.android.virt.page_size",
+            value: "0",
+        },
+    ],
+}
+
+avb_add_hash_footer {
+    name: "test_image_with_1k_page_size",
+    src: ":unsigned_test_image",
+    partition_name: "boot",
+    private_key: ":pvmfw_sign_key",
+    salt: "2134",
+    props: [
+        {
+            name: "com.android.virt.page_size",
+            value: "1",
+        },
+    ],
+}
+
+avb_add_hash_footer {
+    name: "test_image_with_4k_page_size",
+    src: ":unsigned_test_image",
+    partition_name: "boot",
+    private_key: ":pvmfw_sign_key",
+    salt: "2134",
+    props: [
+        {
+            name: "com.android.virt.page_size",
+            value: "4",
+        },
+    ],
+}
+
+avb_add_hash_footer {
+    name: "test_image_with_9k_page_size",
+    src: ":unsigned_test_image",
+    partition_name: "boot",
+    private_key: ":pvmfw_sign_key",
+    salt: "2134",
+    props: [
+        {
+            name: "com.android.virt.page_size",
+            value: "9",
+        },
+    ],
+}
+
+avb_add_hash_footer {
+    name: "test_image_with_16k_page_size",
+    src: ":unsigned_test_image",
+    partition_name: "boot",
+    private_key: ":pvmfw_sign_key",
+    salt: "2134",
+    props: [
+        {
+            name: "com.android.virt.page_size",
+            value: "16",
         },
     ],
 }
@@ -159,24 +263,6 @@
 }
 
 avb_add_hash_footer {
-    name: "test_image_with_multiple_props",
-    src: ":unsigned_test_image",
-    partition_name: "boot",
-    private_key: ":pvmfw_sign_key",
-    salt: "2133",
-    props: [
-        {
-            name: "com.android.virt.cap",
-            value: "remote_attest",
-        },
-        {
-            name: "another_vm_type",
-            value: "foo_vm",
-        },
-    ],
-}
-
-avb_add_hash_footer {
     name: "test_image_with_duplicated_capability",
     src: ":unsigned_test_image",
     partition_name: "boot",
diff --git a/guest/pvmfw/avb/src/error.rs b/guest/pvmfw/avb/src/error.rs
index 2e1950a..1307e15 100644
--- a/guest/pvmfw/avb/src/error.rs
+++ b/guest/pvmfw/avb/src/error.rs
@@ -28,6 +28,8 @@
     InvalidDescriptors(DescriptorError),
     /// Unknown vbmeta property.
     UnknownVbmetaProperty,
+    /// VBMeta has invalid page_size property.
+    InvalidPageSize,
 }
 
 impl From<SlotVerifyError<'_>> for PvmfwVerifyError {
@@ -51,6 +53,7 @@
                 write!(f, "VBMeta has invalid descriptors. Error: {:?}", e)
             }
             Self::UnknownVbmetaProperty => write!(f, "Unknown vbmeta property"),
+            Self::InvalidPageSize => write!(f, "Invalid page_size property"),
         }
     }
 }
diff --git a/guest/pvmfw/avb/src/verify.rs b/guest/pvmfw/avb/src/verify.rs
index a073502..8810696 100644
--- a/guest/pvmfw/avb/src/verify.rs
+++ b/guest/pvmfw/avb/src/verify.rs
@@ -17,12 +17,12 @@
 use crate::ops::{Ops, Payload};
 use crate::partition::PartitionName;
 use crate::PvmfwVerifyError;
-use alloc::vec;
 use alloc::vec::Vec;
 use avb::{
-    Descriptor, DescriptorError, DescriptorResult, HashDescriptor, PartitionData,
-    PropertyDescriptor, SlotVerifyError, SlotVerifyNoDataResult, VbmetaData,
+    Descriptor, DescriptorError, DescriptorResult, HashDescriptor, PartitionData, SlotVerifyError,
+    SlotVerifyNoDataResult, VbmetaData,
 };
+use core::str;
 
 // We use this for the rollback_index field if SlotVerifyData has empty rollback_indexes
 const DEFAULT_ROLLBACK_INDEX: u64 = 0;
@@ -45,6 +45,8 @@
     pub capabilities: Vec<Capability>,
     /// Rollback index of kernel.
     pub rollback_index: u64,
+    /// Page size of kernel, if present.
+    pub page_size: Option<usize>,
 }
 
 impl VerifiedBootData<'_> {
@@ -91,14 +93,14 @@
 
     /// Returns the capabilities indicated in `descriptor`, or error if the descriptor has
     /// unexpected contents.
-    fn get_capabilities(descriptor: &PropertyDescriptor) -> Result<Vec<Self>, PvmfwVerifyError> {
-        if descriptor.key != Self::KEY {
-            return Err(PvmfwVerifyError::UnknownVbmetaProperty);
-        }
+    fn get_capabilities(vbmeta_data: &VbmetaData) -> Result<Vec<Self>, PvmfwVerifyError> {
+        let Some(value) = vbmeta_data.get_property_value(Self::KEY) else {
+            return Ok(Vec::new());
+        };
 
         let mut res = Vec::new();
 
-        for v in descriptor.value.split(|b| *b == Self::SEPARATOR) {
+        for v in value.split(|b| *b == Self::SEPARATOR) {
             let cap = match v {
                 Self::REMOTE_ATTEST => Self::RemoteAttest,
                 Self::TRUSTY_SECURITY_VM => Self::TrustySecurityVm,
@@ -153,30 +155,6 @@
     }
 }
 
-/// Verifies that the vbmeta contains at most one property descriptor and it indicates the
-/// vm type is service VM.
-fn verify_property_and_get_capabilities(
-    descriptors: &[Descriptor],
-) -> Result<Vec<Capability>, PvmfwVerifyError> {
-    let mut iter = descriptors.iter().filter_map(|d| match d {
-        Descriptor::Property(p) => Some(p),
-        _ => None,
-    });
-
-    let descriptor = match iter.next() {
-        // No property descriptors -> no capabilities.
-        None => return Ok(vec![]),
-        Some(d) => d,
-    };
-
-    // Multiple property descriptors -> error.
-    if iter.next().is_some() {
-        return Err(DescriptorError::InvalidContents.into());
-    }
-
-    Capability::get_capabilities(descriptor)
-}
-
 /// Hash descriptors extracted from a vbmeta image.
 ///
 /// We always have a kernel hash descriptor and may have initrd normal or debug descriptors.
@@ -243,6 +221,23 @@
     Ok(digest)
 }
 
+/// Returns the indicated payload page size, if present.
+fn read_page_size(vbmeta_data: &VbmetaData) -> Result<Option<usize>, PvmfwVerifyError> {
+    let Some(property) = vbmeta_data.get_property_value("com.android.virt.page_size") else {
+        return Ok(None);
+    };
+    let size = str::from_utf8(property)
+        .or(Err(PvmfwVerifyError::InvalidPageSize))?
+        .parse::<usize>()
+        .or(Err(PvmfwVerifyError::InvalidPageSize))?
+        .checked_mul(1024)
+        // TODO(stable(unsigned_is_multiple_of)): use .is_multiple_of()
+        .filter(|sz| sz % (4 << 10) == 0 && *sz != 0)
+        .ok_or(PvmfwVerifyError::InvalidPageSize)?;
+
+    Ok(Some(size))
+}
+
 /// Verifies the given initrd partition, and checks that the resulting contents looks like expected.
 fn verify_initrd(
     ops: &mut Ops,
@@ -278,7 +273,8 @@
     verify_vbmeta_is_from_kernel_partition(vbmeta_image)?;
     let descriptors = vbmeta_image.descriptors()?;
     let hash_descriptors = HashDescriptors::get(&descriptors)?;
-    let capabilities = verify_property_and_get_capabilities(&descriptors)?;
+    let capabilities = Capability::get_capabilities(vbmeta_image)?;
+    let page_size = read_page_size(vbmeta_image)?;
 
     if initrd.is_none() {
         hash_descriptors.verify_no_initrd()?;
@@ -289,6 +285,7 @@
             public_key: trusted_public_key,
             capabilities,
             rollback_index,
+            page_size,
         });
     }
 
@@ -309,5 +306,6 @@
         public_key: trusted_public_key,
         capabilities,
         rollback_index,
+        page_size,
     })
 }
diff --git a/guest/pvmfw/avb/tests/api_test.rs b/guest/pvmfw/avb/tests/api_test.rs
index 430c4b3..0ed0279 100644
--- a/guest/pvmfw/avb/tests/api_test.rs
+++ b/guest/pvmfw/avb/tests/api_test.rs
@@ -28,11 +28,17 @@
 use utils::*;
 
 const TEST_IMG_WITH_ONE_HASHDESC_PATH: &str = "test_image_with_one_hashdesc.img";
+const TEST_IMG_WITH_INVALID_PAGE_SIZE_PATH: &str = "test_image_with_invalid_page_size.img";
+const TEST_IMG_WITH_NEGATIVE_PAGE_SIZE_PATH: &str = "test_image_with_negative_page_size.img";
+const TEST_IMG_WITH_OVERFLOW_PAGE_SIZE_PATH: &str = "test_image_with_overflow_page_size.img";
+const TEST_IMG_WITH_0K_PAGE_SIZE_PATH: &str = "test_image_with_0k_page_size.img";
+const TEST_IMG_WITH_1K_PAGE_SIZE_PATH: &str = "test_image_with_1k_page_size.img";
+const TEST_IMG_WITH_4K_PAGE_SIZE_PATH: &str = "test_image_with_4k_page_size.img";
+const TEST_IMG_WITH_9K_PAGE_SIZE_PATH: &str = "test_image_with_9k_page_size.img";
+const TEST_IMG_WITH_16K_PAGE_SIZE_PATH: &str = "test_image_with_16k_page_size.img";
 const TEST_IMG_WITH_ROLLBACK_INDEX_5: &str = "test_image_with_rollback_index_5.img";
-const TEST_IMG_WITH_PROP_DESC_PATH: &str = "test_image_with_prop_desc.img";
 const TEST_IMG_WITH_SERVICE_VM_PROP_PATH: &str = "test_image_with_service_vm_prop.img";
 const TEST_IMG_WITH_UNKNOWN_VM_TYPE_PROP_PATH: &str = "test_image_with_unknown_vm_type_prop.img";
-const TEST_IMG_WITH_MULTIPLE_PROPS_PATH: &str = "test_image_with_multiple_props.img";
 const TEST_IMG_WITH_DUPLICATED_CAP_PATH: &str = "test_image_with_duplicated_capability.img";
 const TEST_IMG_WITH_NON_INITRD_HASHDESC_PATH: &str = "test_image_with_non_initrd_hashdesc.img";
 const TEST_IMG_WITH_INITRD_AND_NON_INITRD_DESC_PATH: &str =
@@ -51,6 +57,7 @@
         &load_latest_initrd_normal()?,
         b"initrd_normal",
         DebugLevel::None,
+        None,
     )
 }
 
@@ -63,6 +70,7 @@
         salt,
         expected_rollback_index,
         vec![Capability::TrustySecurityVm],
+        None,
     )
 }
 
@@ -72,6 +80,7 @@
         &load_latest_initrd_debug()?,
         b"initrd_debug",
         DebugLevel::Full,
+        None,
     )
 }
 
@@ -93,6 +102,7 @@
         public_key: &public_key,
         capabilities: vec![],
         rollback_index: 0,
+        page_size: None,
     };
     assert_eq!(expected_boot_data, verified_boot_data);
 
@@ -137,6 +147,7 @@
         public_key: &public_key,
         capabilities: vec![Capability::RemoteAttest],
         rollback_index: 0,
+        page_size: None,
     };
     assert_eq!(expected_boot_data, verified_boot_data);
 
@@ -154,16 +165,6 @@
 }
 
 #[test]
-fn payload_with_multiple_props_fails_verification_with_no_initrd() -> Result<()> {
-    assert_payload_verification_fails(
-        &fs::read(TEST_IMG_WITH_MULTIPLE_PROPS_PATH)?,
-        /* initrd= */ None,
-        &load_trusted_public_key()?,
-        PvmfwVerifyError::InvalidDescriptors(DescriptorError::InvalidContents),
-    )
-}
-
-#[test]
 fn payload_with_duplicated_capability_fails_verification_with_no_initrd() -> Result<()> {
     assert_payload_verification_fails(
         &fs::read(TEST_IMG_WITH_DUPLICATED_CAP_PATH)?,
@@ -174,16 +175,6 @@
 }
 
 #[test]
-fn payload_with_prop_descriptor_fails_verification_with_no_initrd() -> Result<()> {
-    assert_payload_verification_fails(
-        &fs::read(TEST_IMG_WITH_PROP_DESC_PATH)?,
-        /* initrd= */ None,
-        &load_trusted_public_key()?,
-        PvmfwVerifyError::UnknownVbmetaProperty,
-    )
-}
-
-#[test]
 fn payload_expecting_initrd_fails_verification_with_no_initrd() -> Result<()> {
     assert_payload_verification_fails(
         &load_latest_signed_kernel()?,
@@ -257,6 +248,60 @@
 }
 
 #[test]
+fn kernel_has_expected_page_size_invalid() {
+    let kernel = fs::read(TEST_IMG_WITH_INVALID_PAGE_SIZE_PATH).unwrap();
+    assert_eq!(read_page_size(&kernel), Err(PvmfwVerifyError::InvalidPageSize));
+}
+
+#[test]
+fn kernel_has_expected_page_size_negative() {
+    let kernel = fs::read(TEST_IMG_WITH_NEGATIVE_PAGE_SIZE_PATH).unwrap();
+    assert_eq!(read_page_size(&kernel), Err(PvmfwVerifyError::InvalidPageSize));
+}
+
+#[test]
+fn kernel_has_expected_page_size_overflow() {
+    let kernel = fs::read(TEST_IMG_WITH_OVERFLOW_PAGE_SIZE_PATH).unwrap();
+    assert_eq!(read_page_size(&kernel), Err(PvmfwVerifyError::InvalidPageSize));
+}
+
+#[test]
+fn kernel_has_expected_page_size_none() {
+    let kernel = fs::read(TEST_IMG_WITH_ONE_HASHDESC_PATH).unwrap();
+    assert_eq!(read_page_size(&kernel), Ok(None));
+}
+
+#[test]
+fn kernel_has_expected_page_size_0k() {
+    let kernel = fs::read(TEST_IMG_WITH_0K_PAGE_SIZE_PATH).unwrap();
+    assert_eq!(read_page_size(&kernel), Err(PvmfwVerifyError::InvalidPageSize));
+}
+
+#[test]
+fn kernel_has_expected_page_size_1k() {
+    let kernel = fs::read(TEST_IMG_WITH_1K_PAGE_SIZE_PATH).unwrap();
+    assert_eq!(read_page_size(&kernel), Err(PvmfwVerifyError::InvalidPageSize));
+}
+
+#[test]
+fn kernel_has_expected_page_size_4k() {
+    let kernel = fs::read(TEST_IMG_WITH_4K_PAGE_SIZE_PATH).unwrap();
+    assert_eq!(read_page_size(&kernel), Ok(Some(4usize << 10)));
+}
+
+#[test]
+fn kernel_has_expected_page_size_9k() {
+    let kernel = fs::read(TEST_IMG_WITH_9K_PAGE_SIZE_PATH).unwrap();
+    assert_eq!(read_page_size(&kernel), Err(PvmfwVerifyError::InvalidPageSize));
+}
+
+#[test]
+fn kernel_has_expected_page_size_16k() {
+    let kernel = fs::read(TEST_IMG_WITH_16K_PAGE_SIZE_PATH).unwrap();
+    assert_eq!(read_page_size(&kernel), Ok(Some(16usize << 10)));
+}
+
+#[test]
 fn kernel_footer_with_vbmeta_offset_overwritten_fails_verification() -> Result<()> {
     // Arrange.
     let mut kernel = load_latest_signed_kernel()?;
@@ -412,6 +457,7 @@
         public_key: &public_key,
         capabilities: vec![],
         rollback_index: 5,
+        page_size: None,
     };
     assert_eq!(expected_boot_data, verified_boot_data);
     Ok(())
diff --git a/guest/pvmfw/avb/tests/utils.rs b/guest/pvmfw/avb/tests/utils.rs
index 61bfbf2..79552b5 100644
--- a/guest/pvmfw/avb/tests/utils.rs
+++ b/guest/pvmfw/avb/tests/utils.rs
@@ -114,6 +114,7 @@
     initrd: &[u8],
     initrd_salt: &[u8],
     expected_debug_level: DebugLevel,
+    page_size: Option<usize>,
 ) -> Result<()> {
     let public_key = load_trusted_public_key()?;
     let kernel = load_latest_signed_kernel()?;
@@ -133,6 +134,7 @@
         public_key: &public_key,
         capabilities,
         rollback_index: if cfg!(llpvm_changes) { 1 } else { 0 },
+        page_size,
     };
     assert_eq!(expected_boot_data, verified_boot_data);
 
@@ -144,6 +146,7 @@
     salt: &[u8],
     expected_rollback_index: u64,
     capabilities: Vec<Capability>,
+    page_size: Option<usize>,
 ) -> Result<()> {
     let public_key = load_trusted_public_key()?;
     let verified_boot_data = verify_payload(
@@ -163,12 +166,23 @@
         public_key: &public_key,
         capabilities,
         rollback_index: expected_rollback_index,
+        page_size,
     };
     assert_eq!(expected_boot_data, verified_boot_data);
 
     Ok(())
 }
 
+pub fn read_page_size(kernel: &[u8]) -> Result<Option<usize>, PvmfwVerifyError> {
+    let public_key = load_trusted_public_key().unwrap();
+    let verified_boot_data = verify_payload(
+        kernel,
+        None, // initrd
+        &public_key,
+    )?;
+    Ok(verified_boot_data.page_size)
+}
+
 pub fn hash(inputs: &[&[u8]]) -> Digest {
     let mut digester = sha::Sha256::new();
     inputs.iter().for_each(|input| digester.update(input));
diff --git a/guest/pvmfw/src/config.rs b/guest/pvmfw/src/config.rs
index 5a3d138..dbfde15 100644
--- a/guest/pvmfw/src/config.rs
+++ b/guest/pvmfw/src/config.rs
@@ -22,11 +22,14 @@
 use log::{info, warn};
 use static_assertions::const_assert_eq;
 use vmbase::util::RangeExt;
-use zerocopy::{FromBytes, FromZeroes};
+use zerocopy::FromBytes;
+use zerocopy::Immutable;
+use zerocopy::KnownLayout;
+use zerocopy::Ref;
 
 /// Configuration data header.
 #[repr(C, packed)]
-#[derive(Clone, Copy, Debug, FromZeroes, FromBytes)]
+#[derive(Clone, Copy, Debug, FromBytes, Immutable, KnownLayout)]
 struct Header {
     /// Magic number; must be `Header::MAGIC`.
     magic: u32,
@@ -145,14 +148,14 @@
 }
 
 #[repr(packed)]
-#[derive(Clone, Copy, Debug, FromZeroes, FromBytes)]
+#[derive(Clone, Copy, Debug, FromBytes, Immutable, KnownLayout)]
 struct HeaderEntry {
     offset: u32,
     size: u32,
 }
 
 #[repr(C, packed)]
-#[derive(Clone, Copy, Debug, Eq, FromZeroes, FromBytes, PartialEq)]
+#[derive(Clone, Copy, Debug, Eq, FromBytes, Immutable, KnownLayout, PartialEq)]
 pub struct Version {
     minor: u16,
     major: u16,
@@ -209,8 +212,8 @@
         }
 
         let (header, rest) =
-            zerocopy::Ref::<_, Header>::new_from_prefix(bytes).ok_or(Error::HeaderMisaligned)?;
-        let header = header.into_ref();
+            Ref::<_, Header>::new_from_prefix(bytes).ok_or(Error::HeaderMisaligned)?;
+        let header = Ref::into_ref(header);
 
         if header.magic != Header::MAGIC {
             return Err(Error::InvalidMagic);
diff --git a/guest/pvmfw/src/dice.rs b/guest/pvmfw/src/dice.rs
index b597309..a72c1fc 100644
--- a/guest/pvmfw/src/dice.rs
+++ b/guest/pvmfw/src/dice.rs
@@ -24,7 +24,9 @@
     bcc_handover_main_flow, hash, Config, DiceContext, DiceMode, Hash, InputValues, HIDDEN_SIZE,
 };
 use pvmfw_avb::{Capability, DebugLevel, Digest, VerifiedBootData};
-use zerocopy::AsBytes;
+use zerocopy::Immutable;
+use zerocopy::IntoBytes;
+use zerocopy::KnownLayout;
 
 // pVM firmware (like other VM components) is expected to populate some fields in DICE
 // Configuration Descriptor. See dice_for_avf_guest.cddl
@@ -134,7 +136,7 @@
         // descriptor do not).
         // Since the hidden input has to be a fixed size, create it as a hash of the values we
         // want included.
-        #[derive(AsBytes)]
+        #[derive(Immutable, IntoBytes, KnownLayout)]
         #[repr(C, packed)]
         struct HiddenInput {
             rkp_vm_marker: bool,
@@ -200,6 +202,7 @@
         public_key: b"public key",
         capabilities: vec![],
         rollback_index: 42,
+        page_size: None,
     };
     const HASH: Hash = *b"sixtyfourbyteslongsentencearerarebutletsgiveitatrycantbethathard";
 
diff --git a/guest/pvmfw/src/entry.rs b/guest/pvmfw/src/entry.rs
index 2f0b391..862fb1d 100644
--- a/guest/pvmfw/src/entry.rs
+++ b/guest/pvmfw/src/entry.rs
@@ -15,10 +15,9 @@
 //! Low-level entry and exit points of pvmfw.
 
 use crate::config;
-use crate::memory;
+use crate::memory::MemorySlices;
 use core::arch::asm;
 use core::mem::size_of;
-use core::ops::Range;
 use core::slice;
 use log::error;
 use log::warn;
@@ -74,20 +73,36 @@
 configure_heap!(SIZE_128KB);
 limit_stack_size!(SIZE_4KB * 12);
 
+#[derive(Debug)]
+enum NextStage {
+    LinuxBoot(usize),
+    LinuxBootWithUart(usize),
+}
+
 /// Entry point for pVM firmware.
 pub fn start(fdt_address: u64, payload_start: u64, payload_size: u64, _arg3: u64) {
-    // Limitations in this function:
-    // - can't access non-pvmfw memory (only statically-mapped memory)
-    // - can't access MMIO (except the console, already configured by vmbase)
+    let fdt_address = fdt_address.try_into().unwrap();
+    let payload_start = payload_start.try_into().unwrap();
+    let payload_size = payload_size.try_into().unwrap();
 
-    match main_wrapper(fdt_address as usize, payload_start as usize, payload_size as usize) {
-        Ok((entry, bcc)) => jump_to_payload(fdt_address, entry.try_into().unwrap(), bcc),
-        Err(e) => {
-            const REBOOT_REASON_CONSOLE: usize = 1;
-            console_writeln!(REBOOT_REASON_CONSOLE, "{}", e.as_avf_reboot_string());
-            reboot()
-        }
-    }
+    let reboot_reason = match main_wrapper(fdt_address, payload_start, payload_size) {
+        Err(r) => r,
+        Ok((next_stage, slices)) => match next_stage {
+            NextStage::LinuxBootWithUart(ep) => jump_to_payload(ep, &slices),
+            NextStage::LinuxBoot(ep) => {
+                if let Err(e) = unshare_uart() {
+                    error!("Failed to unmap UART: {e}");
+                    RebootReason::InternalError
+                } else {
+                    jump_to_payload(ep, &slices)
+                }
+            }
+        },
+    };
+
+    const REBOOT_REASON_CONSOLE: usize = 1;
+    console_writeln!(REBOOT_REASON_CONSOLE, "{}", reboot_reason.as_avf_reboot_string());
+    reboot()
 
     // if we reach this point and return, vmbase::entry::rust_entry() will call power::shutdown().
 }
@@ -96,11 +111,11 @@
 ///
 /// Provide the abstractions necessary for start() to abort the pVM boot and for main() to run with
 /// the assumption that its environment has been properly configured.
-fn main_wrapper(
+fn main_wrapper<'a>(
     fdt: usize,
     payload: usize,
     payload_size: usize,
-) -> Result<(usize, Range<usize>), RebootReason> {
+) -> Result<(NextStage, MemorySlices<'a>), RebootReason> {
     // Limitations in this function:
     // - only access MMIO once (and while) it has been mapped and configured
     // - only perform logging once the logger has been initialized
@@ -120,13 +135,7 @@
 
     let config_entries = appended.get_entries();
 
-    let slices = memory::MemorySlices::new(
-        fdt,
-        payload,
-        payload_size,
-        config_entries.vm_dtbo,
-        config_entries.vm_ref_dt,
-    )?;
+    let mut slices = MemorySlices::new(fdt, payload, payload_size)?;
 
     // This wrapper allows main() to be blissfully ignorant of platform details.
     let (next_bcc, debuggable_payload) = crate::main(
@@ -135,7 +144,12 @@
         slices.ramdisk,
         config_entries.bcc,
         config_entries.debug_policy,
+        config_entries.vm_dtbo,
+        config_entries.vm_ref_dt,
     )?;
+    slices.add_dice_chain(next_bcc);
+    // Keep UART MMIO_GUARD-ed for debuggable payloads, to enable earlycon.
+    let keep_uart = cfg!(debuggable_vms_improvements) && debuggable_payload;
 
     // Writable-dirty regions will be flushed when MemoryTracker is dropped.
     config_entries.bcc.zeroize();
@@ -144,24 +158,33 @@
         error!("Failed to unshare MMIO ranges: {e}");
         RebootReason::InternalError
     })?;
-    // Call unshare_all_memory here (instead of relying on the dtor) while UART is still mapped.
     unshare_all_memory();
 
-    if cfg!(debuggable_vms_improvements) && debuggable_payload {
-        // Keep UART MMIO_GUARD-ed for debuggable payloads, to enable earlycon.
+    let next_stage = select_next_stage(slices.kernel, keep_uart);
+
+    Ok((next_stage, slices))
+}
+
+fn select_next_stage(kernel: &[u8], keep_uart: bool) -> NextStage {
+    if keep_uart {
+        NextStage::LinuxBootWithUart(kernel.as_ptr() as _)
     } else {
-        unshare_uart().map_err(|e| {
-            error!("Failed to unshare the UART: {e}");
-            RebootReason::InternalError
-        })?;
+        NextStage::LinuxBoot(kernel.as_ptr() as _)
     }
+}
+
+fn jump_to_payload(entrypoint: usize, slices: &MemorySlices) -> ! {
+    let fdt_address = slices.fdt.as_ptr() as usize;
+    let bcc = slices
+        .dice_chain
+        .map(|slice| {
+            let r = slice.as_ptr_range();
+            (r.start as usize)..(r.end as usize)
+        })
+        .expect("Missing DICE chain");
 
     deactivate_dynamic_page_tables();
 
-    Ok((slices.kernel.as_ptr() as usize, next_bcc))
-}
-
-fn jump_to_payload(fdt_address: u64, payload_start: u64, bcc: Range<usize>) -> ! {
     const ASM_STP_ALIGN: usize = size_of::<u64>() * 2;
     const SCTLR_EL1_RES1: u64 = (0b11 << 28) | (0b101 << 20) | (0b1 << 11);
     // Stage 1 instruction access cacheability is unaffected.
@@ -298,8 +321,8 @@
             eh_stack = in(reg) u64::try_from(eh_stack.start.0).unwrap(),
             eh_stack_end = in(reg) u64::try_from(eh_stack.end.0).unwrap(),
             dcache_line_size = in(reg) u64::try_from(min_dcache_line_size()).unwrap(),
-            in("x0") fdt_address,
-            in("x30") payload_start,
+            in("x0") u64::try_from(fdt_address).unwrap(),
+            in("x30") u64::try_from(entrypoint).unwrap(),
             options(noreturn),
         );
     };
diff --git a/guest/pvmfw/src/fdt.rs b/guest/pvmfw/src/fdt.rs
index 027f163..4370675 100644
--- a/guest/pvmfw/src/fdt.rs
+++ b/guest/pvmfw/src/fdt.rs
@@ -16,7 +16,6 @@
 
 use crate::bootargs::BootArgsIterator;
 use crate::device_assignment::{self, DeviceAssignmentInfo, VmDtbo};
-use crate::helpers::GUEST_PAGE_SIZE;
 use crate::Box;
 use crate::RebootReason;
 use alloc::collections::BTreeMap;
@@ -51,7 +50,7 @@
 use vmbase::layout::{crosvm::MEM_START, MAX_VIRT_ADDR};
 use vmbase::memory::SIZE_4KB;
 use vmbase::util::RangeExt as _;
-use zerocopy::AsBytes as _;
+use zerocopy::IntoBytes as _;
 
 // SAFETY: The template DT is automatically generated through DTC, which should produce valid DTBs.
 const FDT_TEMPLATE: &Fdt = unsafe { Fdt::unchecked_from_slice(pvmfw_fdt_template::RAW) };
@@ -83,7 +82,7 @@
 
 /// Extract from /config the address range containing the pre-loaded kernel. Absence of /config is
 /// not an error.
-fn read_kernel_range_from(fdt: &Fdt) -> libfdt::Result<Option<Range<usize>>> {
+pub fn read_kernel_range_from(fdt: &Fdt) -> libfdt::Result<Option<Range<usize>>> {
     let addr = cstr!("kernel-address");
     let size = cstr!("kernel-size");
 
@@ -101,7 +100,7 @@
 
 /// Extract from /chosen the address range containing the pre-loaded ramdisk. Absence is not an
 /// error as there can be initrd-less VM.
-fn read_initrd_range_from(fdt: &Fdt) -> libfdt::Result<Option<Range<usize>>> {
+pub fn read_initrd_range_from(fdt: &Fdt) -> libfdt::Result<Option<Range<usize>>> {
     let start = cstr!("linux,initrd-start");
     let end = cstr!("linux,initrd-end");
 
@@ -147,7 +146,10 @@
 /// Reads and validates the memory range in the DT.
 ///
 /// Only one memory range is expected with the crosvm setup for now.
-fn read_and_validate_memory_range(fdt: &Fdt) -> Result<Range<usize>, RebootReason> {
+fn read_and_validate_memory_range(
+    fdt: &Fdt,
+    guest_page_size: usize,
+) -> Result<Range<usize>, RebootReason> {
     let mut memory = fdt.memory().map_err(|e| {
         error!("Failed to read memory range from DT: {e}");
         RebootReason::InvalidFdt
@@ -169,8 +171,8 @@
     }
 
     let size = range.len();
-    if size % GUEST_PAGE_SIZE != 0 {
-        error!("Memory size {:#x} is not a multiple of page size {:#x}", size, GUEST_PAGE_SIZE);
+    if size % guest_page_size != 0 {
+        error!("Memory size {:#x} is not a multiple of page size {:#x}", size, guest_page_size);
         return Err(RebootReason::InvalidFdt);
     }
 
@@ -854,16 +856,17 @@
 fn validate_swiotlb_info(
     swiotlb_info: &SwiotlbInfo,
     memory: &Range<usize>,
+    guest_page_size: usize,
 ) -> Result<(), RebootReason> {
     let size = swiotlb_info.size;
     let align = swiotlb_info.align;
 
-    if size == 0 || (size % GUEST_PAGE_SIZE) != 0 {
+    if size == 0 || (size % guest_page_size) != 0 {
         error!("Invalid swiotlb size {:#x}", size);
         return Err(RebootReason::InvalidFdt);
     }
 
-    if let Some(align) = align.filter(|&a| a % GUEST_PAGE_SIZE != 0) {
+    if let Some(align) = align.filter(|&a| a % guest_page_size != 0) {
         error!("Invalid swiotlb alignment {:#x}", align);
         return Err(RebootReason::InvalidFdt);
     }
@@ -989,7 +992,6 @@
 
 #[derive(Debug)]
 pub struct DeviceTreeInfo {
-    pub kernel_range: Option<Range<usize>>,
     pub initrd_range: Option<Range<usize>>,
     pub memory_range: Range<usize>,
     bootargs: Option<CString>,
@@ -1015,15 +1017,11 @@
 }
 
 pub fn sanitize_device_tree(
-    fdt: &mut [u8],
+    fdt: &mut Fdt,
     vm_dtbo: Option<&mut [u8]>,
     vm_ref_dt: Option<&[u8]>,
+    guest_page_size: usize,
 ) -> Result<DeviceTreeInfo, RebootReason> {
-    let fdt = Fdt::from_mut_slice(fdt).map_err(|e| {
-        error!("Failed to load FDT: {e}");
-        RebootReason::InvalidFdt
-    })?;
-
     let vm_dtbo = match vm_dtbo {
         Some(vm_dtbo) => Some(VmDtbo::from_mut_slice(vm_dtbo).map_err(|e| {
             error!("Failed to load VM DTBO: {e}");
@@ -1032,7 +1030,7 @@
         None => None,
     };
 
-    let info = parse_device_tree(fdt, vm_dtbo.as_deref())?;
+    let info = parse_device_tree(fdt, vm_dtbo.as_deref(), guest_page_size)?;
 
     fdt.clone_from(FDT_TEMPLATE).map_err(|e| {
         error!("Failed to instantiate FDT from the template DT: {e}");
@@ -1085,18 +1083,17 @@
     Ok(info)
 }
 
-fn parse_device_tree(fdt: &Fdt, vm_dtbo: Option<&VmDtbo>) -> Result<DeviceTreeInfo, RebootReason> {
-    let kernel_range = read_kernel_range_from(fdt).map_err(|e| {
-        error!("Failed to read kernel range from DT: {e}");
-        RebootReason::InvalidFdt
-    })?;
-
+fn parse_device_tree(
+    fdt: &Fdt,
+    vm_dtbo: Option<&VmDtbo>,
+    guest_page_size: usize,
+) -> Result<DeviceTreeInfo, RebootReason> {
     let initrd_range = read_initrd_range_from(fdt).map_err(|e| {
         error!("Failed to read initrd range from DT: {e}");
         RebootReason::InvalidFdt
     })?;
 
-    let memory_range = read_and_validate_memory_range(fdt)?;
+    let memory_range = read_and_validate_memory_range(fdt, guest_page_size)?;
 
     let bootargs = read_bootargs_from(fdt).map_err(|e| {
         error!("Failed to read bootargs from DT: {e}");
@@ -1149,7 +1146,7 @@
             error!("Swiotlb info missing from DT");
             RebootReason::InvalidFdt
         })?;
-    validate_swiotlb_info(&swiotlb_info, &memory_range)?;
+    validate_swiotlb_info(&swiotlb_info, &memory_range, guest_page_size)?;
 
     let device_assignment = match vm_dtbo {
         Some(vm_dtbo) => {
@@ -1194,7 +1191,6 @@
     })?;
 
     Ok(DeviceTreeInfo {
-        kernel_range,
         initrd_range,
         memory_range,
         bootargs,
diff --git a/guest/pvmfw/src/gpt.rs b/guest/pvmfw/src/gpt.rs
index 71eb569..70b3cf8 100644
--- a/guest/pvmfw/src/gpt.rs
+++ b/guest/pvmfw/src/gpt.rs
@@ -26,7 +26,6 @@
 use vmbase::util::ceiling_div;
 use vmbase::virtio::{pci, HalImpl};
 use zerocopy::FromBytes;
-use zerocopy::FromZeroes;
 
 type VirtIOBlk = pci::VirtIOBlk<HalImpl>;
 
@@ -105,7 +104,7 @@
     fn new(mut device: VirtIOBlk) -> Result<Self> {
         let mut blk = [0; Self::LBA_SIZE];
         device.read_blocks(Header::LBA, &mut blk).map_err(Error::FailedRead)?;
-        let header = Header::read_from_prefix(blk.as_slice()).unwrap();
+        let header = Header::read_from_prefix(blk.as_slice()).unwrap().0;
         if !header.is_valid() {
             return Err(Error::InvalidHeader);
         }
@@ -157,7 +156,7 @@
 type Lba = u64;
 
 /// Structure as defined in release 2.10 of the UEFI Specification (5.3.2 GPT Header).
-#[derive(FromZeroes, FromBytes)]
+#[derive(FromBytes)]
 #[repr(C, packed)]
 struct Header {
     signature: u64,
diff --git a/guest/pvmfw/src/helpers.rs b/guest/pvmfw/src/helpers.rs
deleted file mode 100644
index 0552640..0000000
--- a/guest/pvmfw/src/helpers.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2022, 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.
-
-//! Miscellaneous helper functions.
-
-use vmbase::memory::SIZE_4KB;
-
-pub const GUEST_PAGE_SIZE: usize = SIZE_4KB;
diff --git a/guest/pvmfw/src/instance.rs b/guest/pvmfw/src/instance.rs
index 0ef57dc..bb07f74 100644
--- a/guest/pvmfw/src/instance.rs
+++ b/guest/pvmfw/src/instance.rs
@@ -30,9 +30,10 @@
 use vmbase::util::ceiling_div;
 use vmbase::virtio::pci::{PciTransportIterator, VirtIOBlk};
 use vmbase::virtio::HalImpl;
-use zerocopy::AsBytes;
 use zerocopy::FromBytes;
-use zerocopy::FromZeroes;
+use zerocopy::Immutable;
+use zerocopy::IntoBytes;
+use zerocopy::KnownLayout;
 
 pub enum Error {
     /// Unexpected I/O error while accessing the underlying disk.
@@ -154,7 +155,7 @@
     Ok(())
 }
 
-#[derive(FromZeroes, FromBytes)]
+#[derive(Clone, Debug, FromBytes, Immutable, KnownLayout)]
 #[repr(C, packed)]
 struct Header {
     magic: [u8; Header::MAGIC.len()],
@@ -208,7 +209,7 @@
     let header_index = indices.next().ok_or(Error::MissingInstanceImageHeader)?;
     partition.read_block(header_index, &mut blk).map_err(Error::FailedIo)?;
     // The instance.img header is only used for discovery/validation.
-    let header = Header::read_from_prefix(blk.as_slice()).unwrap();
+    let header = Header::read_from_prefix(blk.as_slice()).unwrap().0;
     if !header.is_valid() {
         return Err(Error::InvalidInstanceImageHeader);
     }
@@ -216,7 +217,7 @@
     while let Some(header_index) = indices.next() {
         partition.read_block(header_index, &mut blk).map_err(Error::FailedIo)?;
 
-        let header = EntryHeader::read_from_prefix(blk.as_slice()).unwrap();
+        let header = EntryHeader::read_from_prefix(blk.as_slice()).unwrap().0;
         match (header.uuid(), header.payload_size()) {
             (uuid, _) if uuid.is_nil() => return Ok(PvmfwEntry::New { header_index }),
             (PvmfwEntry::UUID, payload_size) => {
@@ -238,7 +239,7 @@
 /// Marks the start of an instance.img entry.
 ///
 /// Note: Virtualization/guest/microdroid_manager/src/instance.rs uses the name "partition".
-#[derive(AsBytes, FromZeroes, FromBytes)]
+#[derive(Clone, Debug, FromBytes, Immutable, IntoBytes, KnownLayout)]
 #[repr(C, packed)]
 struct EntryHeader {
     uuid: u128,
@@ -259,7 +260,7 @@
     }
 }
 
-#[derive(AsBytes, FromZeroes, FromBytes)]
+#[derive(Clone, Debug, FromBytes, Immutable, IntoBytes, KnownLayout)]
 #[repr(C)]
 pub(crate) struct EntryBody {
     pub code_hash: Hash,
diff --git a/guest/pvmfw/src/main.rs b/guest/pvmfw/src/main.rs
index bde03ff..a28a039 100644
--- a/guest/pvmfw/src/main.rs
+++ b/guest/pvmfw/src/main.rs
@@ -28,47 +28,42 @@
 mod exceptions;
 mod fdt;
 mod gpt;
-mod helpers;
 mod instance;
 mod memory;
+mod rollback;
 
 use crate::bcc::Bcc;
 use crate::dice::PartialInputs;
 use crate::entry::RebootReason;
-use crate::fdt::modify_for_next_stage;
-use crate::helpers::GUEST_PAGE_SIZE;
-use crate::instance::EntryBody;
-use crate::instance::Error as InstanceError;
-use crate::instance::{get_recorded_entry, record_instance_entry};
+use crate::fdt::{modify_for_next_stage, sanitize_device_tree};
+use crate::rollback::perform_rollback_protection;
 use alloc::borrow::Cow;
 use alloc::boxed::Box;
 use bssl_avf::Digester;
-use core::ops::Range;
 use cstr::cstr;
 use diced_open_dice::{bcc_handover_parse, DiceArtifacts, DiceContext, Hidden, VM_KEY_ALGORITHM};
 use libfdt::{Fdt, FdtNode};
 use log::{debug, error, info, trace, warn};
 use pvmfw_avb::verify_payload;
-use pvmfw_avb::Capability;
 use pvmfw_avb::DebugLevel;
 use pvmfw_embedded_key::PUBLIC_KEY;
 use vmbase::fdt::pci::{PciError, PciInfo};
 use vmbase::heap;
-use vmbase::memory::flush;
+use vmbase::memory::{flush, init_shared_pool, SIZE_4KB};
 use vmbase::rand;
 use vmbase::virtio::pci;
 
-const NEXT_BCC_SIZE: usize = GUEST_PAGE_SIZE;
-
-fn main(
-    fdt: &mut Fdt,
+fn main<'a>(
+    untrusted_fdt: &mut Fdt,
     signed_kernel: &[u8],
     ramdisk: Option<&[u8]>,
     current_bcc_handover: &[u8],
     mut debug_policy: Option<&[u8]>,
-) -> Result<(Range<usize>, bool), RebootReason> {
+    vm_dtbo: Option<&mut [u8]>,
+    vm_ref_dt: Option<&[u8]>,
+) -> Result<(&'a [u8], bool), RebootReason> {
     info!("pVM firmware");
-    debug!("FDT: {:?}", fdt.as_ptr());
+    debug!("FDT: {:?}", untrusted_fdt.as_ptr());
     debug!("Signed kernel: {:?} ({:#x} bytes)", signed_kernel.as_ptr(), signed_kernel.len());
     debug!("AVB public key: addr={:?}, size={:#x} ({1})", PUBLIC_KEY.as_ptr(), PUBLIC_KEY.len());
     if let Some(rd) = ramdisk {
@@ -97,14 +92,6 @@
         debug_policy = None;
     }
 
-    // Set up PCI bus for VirtIO devices.
-    let pci_info = PciInfo::from_fdt(fdt).map_err(handle_pci_error)?;
-    debug!("PCI: {:#x?}", pci_info);
-    let mut pci_root = pci::initialize(pci_info).map_err(|e| {
-        error!("Failed to initialize PCI: {e}");
-        RebootReason::InternalError
-    })?;
-
     let verified_boot_data = verify_payload(signed_kernel, ramdisk, PUBLIC_KEY).map_err(|e| {
         error!("Failed to verify the payload: {e}");
         RebootReason::PayloadVerificationError
@@ -115,7 +102,23 @@
         info!("Please disregard any previous libavb ERROR about initrd_normal.");
     }
 
-    let next_bcc = heap::aligned_boxed_slice(NEXT_BCC_SIZE, GUEST_PAGE_SIZE).ok_or_else(|| {
+    let guest_page_size = verified_boot_data.page_size.unwrap_or(SIZE_4KB);
+    let fdt_info = sanitize_device_tree(untrusted_fdt, vm_dtbo, vm_ref_dt, guest_page_size)?;
+    let fdt = untrusted_fdt; // DT has now been sanitized.
+    let pci_info = PciInfo::from_fdt(fdt).map_err(handle_pci_error)?;
+    debug!("PCI: {:#x?}", pci_info);
+    // Set up PCI bus for VirtIO devices.
+    let mut pci_root = pci::initialize(pci_info).map_err(|e| {
+        error!("Failed to initialize PCI: {e}");
+        RebootReason::InternalError
+    })?;
+    init_shared_pool(fdt_info.swiotlb_info.fixed_range()).map_err(|e| {
+        error!("Failed to initialize shared pool: {e}");
+        RebootReason::InternalError
+    })?;
+
+    let next_bcc_size = guest_page_size;
+    let next_bcc = heap::aligned_boxed_slice(next_bcc_size, guest_page_size).ok_or_else(|| {
         error!("Failed to allocate the next-stage BCC");
         RebootReason::InternalError
     })?;
@@ -128,65 +131,14 @@
     })?;
 
     let instance_hash = if cfg!(llpvm_changes) { Some(salt_from_instance_id(fdt)?) } else { None };
-    let defer_rollback_protection = should_defer_rollback_protection(fdt)?
-        && verified_boot_data.has_capability(Capability::SecretkeeperProtection);
-    let (new_instance, salt) = if defer_rollback_protection {
-        info!("Guest OS is capable of Secretkeeper protection, deferring rollback protection");
-        // rollback_index of the image is used as security_version and is expected to be > 0 to
-        // discourage implicit allocation.
-        if verified_boot_data.rollback_index == 0 {
-            error!("Expected positive rollback_index, found 0");
-            return Err(RebootReason::InvalidPayload);
-        };
-        (false, instance_hash.unwrap())
-    } else if verified_boot_data.has_capability(Capability::RemoteAttest) {
-        info!("Service VM capable of remote attestation detected, performing version checks");
-        if service_vm_version::VERSION != verified_boot_data.rollback_index {
-            // For RKP VM, we only boot if the version in the AVB footer of its kernel matches
-            // the one embedded in pvmfw at build time.
-            // This prevents the pvmfw from booting a roll backed RKP VM.
-            error!(
-                "Service VM version mismatch: expected {}, found {}",
-                service_vm_version::VERSION,
-                verified_boot_data.rollback_index
-            );
-            return Err(RebootReason::InvalidPayload);
-        }
-        (false, instance_hash.unwrap())
-    } else if verified_boot_data.has_capability(Capability::TrustySecurityVm) {
-        // The rollback protection of Trusty VMs are handled by AuthMgr, so we don't need to
-        // handle it here.
-        info!("Trusty Security VM detected");
-        (false, instance_hash.unwrap())
-    } else {
-        info!("Fallback to instance.img based rollback checks");
-        let (recorded_entry, mut instance_img, header_index) =
-            get_recorded_entry(&mut pci_root, cdi_seal).map_err(|e| {
-                error!("Failed to get entry from instance.img: {e}");
-                RebootReason::InternalError
-            })?;
-        let (new_instance, salt) = if let Some(entry) = recorded_entry {
-            check_dice_measurements_match_entry(&dice_inputs, &entry)?;
-            let salt = instance_hash.unwrap_or(entry.salt);
-            (false, salt)
-        } else {
-            // New instance!
-            let salt = instance_hash.map_or_else(rand::random_array, Ok).map_err(|e| {
-                error!("Failed to generated instance.img salt: {e}");
-                RebootReason::InternalError
-            })?;
-
-            let entry = EntryBody::new(&dice_inputs, &salt);
-            record_instance_entry(&entry, cdi_seal, &mut instance_img, header_index).map_err(
-                |e| {
-                    error!("Failed to get recorded entry in instance.img: {e}");
-                    RebootReason::InternalError
-                },
-            )?;
-            (true, salt)
-        };
-        (new_instance, salt)
-    };
+    let (new_instance, salt, defer_rollback_protection) = perform_rollback_protection(
+        fdt,
+        &verified_boot_data,
+        &dice_inputs,
+        &mut pci_root,
+        cdi_seal,
+        instance_hash,
+    )?;
     trace!("Got salt for instance: {salt:x?}");
 
     let new_bcc_handover = if cfg!(dice_changes) {
@@ -248,43 +200,7 @@
     })?;
 
     info!("Starting payload...");
-
-    let bcc_range = {
-        let r = next_bcc.as_ptr_range();
-        (r.start as usize)..(r.end as usize)
-    };
-
-    Ok((bcc_range, debuggable))
-}
-
-fn check_dice_measurements_match_entry(
-    dice_inputs: &PartialInputs,
-    entry: &EntryBody,
-) -> Result<(), RebootReason> {
-    ensure_dice_measurements_match_entry(dice_inputs, entry).map_err(|e| {
-        error!(
-            "Dice measurements do not match recorded entry. \
-        This may be because of update: {e}"
-        );
-        RebootReason::InternalError
-    })?;
-
-    Ok(())
-}
-
-fn ensure_dice_measurements_match_entry(
-    dice_inputs: &PartialInputs,
-    entry: &EntryBody,
-) -> Result<(), InstanceError> {
-    if entry.code_hash != dice_inputs.code_hash {
-        Err(InstanceError::RecordedCodeHashMismatch)
-    } else if entry.auth_hash != dice_inputs.auth_hash {
-        Err(InstanceError::RecordedAuthHashMismatch)
-    } else if entry.mode() != dice_inputs.mode {
-        Err(InstanceError::RecordedDiceModeMismatch)
-    } else {
-        Ok(())
-    }
+    Ok((next_bcc, debuggable))
 }
 
 // Get the "salt" which is one of the input for DICE derivation.
@@ -314,18 +230,6 @@
     })
 }
 
-fn should_defer_rollback_protection(fdt: &Fdt) -> Result<bool, RebootReason> {
-    let node = avf_untrusted_node(fdt)?;
-    let defer_rbp = node
-        .getprop(cstr!("defer-rollback-protection"))
-        .map_err(|e| {
-            error!("Failed to get defer-rollback-protection property in DT: {e}");
-            RebootReason::InvalidFdt
-        })?
-        .is_some();
-    Ok(defer_rbp)
-}
-
 fn avf_untrusted_node(fdt: &Fdt) -> Result<FdtNode, RebootReason> {
     let node = fdt.node(cstr!("/avf/untrusted")).map_err(|e| {
         error!("Failed to get /avf/untrusted node: {e}");
diff --git a/guest/pvmfw/src/memory.rs b/guest/pvmfw/src/memory.rs
index 35bfd3a..a663008 100644
--- a/guest/pvmfw/src/memory.rs
+++ b/guest/pvmfw/src/memory.rs
@@ -15,7 +15,7 @@
 //! Low-level allocation and tracking of main memory.
 
 use crate::entry::RebootReason;
-use crate::fdt;
+use crate::fdt::{read_initrd_range_from, read_kernel_range_from};
 use core::num::NonZeroUsize;
 use core::slice;
 use log::debug;
@@ -24,23 +24,18 @@
 use log::warn;
 use vmbase::{
     layout::crosvm,
-    memory::{init_shared_pool, map_data, map_rodata, resize_available_memory},
+    memory::{map_data, map_rodata, resize_available_memory},
 };
 
 pub(crate) struct MemorySlices<'a> {
     pub fdt: &'a mut libfdt::Fdt,
     pub kernel: &'a [u8],
     pub ramdisk: Option<&'a [u8]>,
+    pub dice_chain: Option<&'a [u8]>,
 }
 
 impl<'a> MemorySlices<'a> {
-    pub fn new(
-        fdt: usize,
-        kernel: usize,
-        kernel_size: usize,
-        vm_dtbo: Option<&mut [u8]>,
-        vm_ref_dt: Option<&[u8]>,
-    ) -> Result<Self, RebootReason> {
+    pub fn new(fdt: usize, kernel: usize, kernel_size: usize) -> Result<Self, RebootReason> {
         let fdt_size = NonZeroUsize::new(crosvm::FDT_MAX_SIZE).unwrap();
         // TODO - Only map the FDT as read-only, until we modify it right before jump_to_payload()
         // e.g. by generating a DTBO for a template DT in main() and, on return, re-map DT as RW,
@@ -51,44 +46,39 @@
         })?;
 
         // SAFETY: map_data validated the range to be in main memory, mapped, and not overlap.
-        let fdt = unsafe { slice::from_raw_parts_mut(fdt as *mut u8, fdt_size.into()) };
-
-        let info = fdt::sanitize_device_tree(fdt, vm_dtbo, vm_ref_dt)?;
-        let fdt = libfdt::Fdt::from_mut_slice(fdt).map_err(|e| {
-            error!("Failed to load sanitized FDT: {e}");
+        let untrusted_fdt = unsafe { slice::from_raw_parts_mut(fdt as *mut u8, fdt_size.into()) };
+        let untrusted_fdt = libfdt::Fdt::from_mut_slice(untrusted_fdt).map_err(|e| {
+            error!("Failed to load input FDT: {e}");
             RebootReason::InvalidFdt
         })?;
-        debug!("Fdt passed validation!");
 
-        let memory_range = info.memory_range;
+        let memory_range = untrusted_fdt.first_memory_range().map_err(|e| {
+            error!("Failed to read memory range from DT: {e}");
+            RebootReason::InvalidFdt
+        })?;
         debug!("Resizing MemoryTracker to range {memory_range:#x?}");
         resize_available_memory(&memory_range).map_err(|e| {
             error!("Failed to use memory range value from DT: {memory_range:#x?}: {e}");
             RebootReason::InvalidFdt
         })?;
 
-        init_shared_pool(info.swiotlb_info.fixed_range()).map_err(|e| {
-            error!("Failed to initialize shared pool: {e}");
-            RebootReason::InternalError
+        let kernel_range = read_kernel_range_from(untrusted_fdt).map_err(|e| {
+            error!("Failed to read kernel range: {e}");
+            RebootReason::InvalidFdt
         })?;
-
-        let (kernel_start, kernel_size) = if let Some(r) = info.kernel_range {
-            let size = r.len().try_into().map_err(|_| {
-                error!("Invalid kernel size: {:#x}", r.len());
-                RebootReason::InternalError
-            })?;
-            (r.start, size)
+        let (kernel_start, kernel_size) = if let Some(r) = kernel_range {
+            (r.start, r.len())
         } else if cfg!(feature = "legacy") {
             warn!("Failed to find the kernel range in the DT; falling back to legacy ABI");
-            let size = NonZeroUsize::new(kernel_size).ok_or_else(|| {
-                error!("Invalid kernel size: {kernel_size:#x}");
-                RebootReason::InvalidPayload
-            })?;
-            (kernel, size)
+            (kernel, kernel_size)
         } else {
             error!("Failed to locate the kernel from the DT");
             return Err(RebootReason::InvalidPayload);
         };
+        let kernel_size = kernel_size.try_into().map_err(|_| {
+            error!("Invalid kernel size: {kernel_size:#x}");
+            RebootReason::InvalidPayload
+        })?;
 
         map_rodata(kernel_start, kernel_size).map_err(|e| {
             error!("Failed to map kernel range: {e}");
@@ -99,7 +89,11 @@
         // SAFETY: map_rodata validated the range to be in main memory, mapped, and not overlap.
         let kernel = unsafe { slice::from_raw_parts(kernel, kernel_size.into()) };
 
-        let ramdisk = if let Some(r) = info.initrd_range {
+        let initrd_range = read_initrd_range_from(untrusted_fdt).map_err(|e| {
+            error!("Failed to read initrd range: {e}");
+            RebootReason::InvalidFdt
+        })?;
+        let ramdisk = if let Some(r) = initrd_range {
             debug!("Located ramdisk at {r:?}");
             let ramdisk_size = r.len().try_into().map_err(|_| {
                 error!("Invalid ramdisk size: {:#x}", r.len());
@@ -118,6 +112,12 @@
             None
         };
 
-        Ok(Self { fdt, kernel, ramdisk })
+        let dice_chain = None;
+
+        Ok(Self { fdt: untrusted_fdt, kernel, ramdisk, dice_chain })
+    }
+
+    pub fn add_dice_chain(&mut self, dice_chain: &'a [u8]) {
+        self.dice_chain = Some(dice_chain)
     }
 }
diff --git a/guest/pvmfw/src/rollback.rs b/guest/pvmfw/src/rollback.rs
new file mode 100644
index 0000000..bc16332
--- /dev/null
+++ b/guest/pvmfw/src/rollback.rs
@@ -0,0 +1,159 @@
+// Copyright 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.
+
+//! Support for guest-specific rollback protection (RBP).
+
+use crate::dice::PartialInputs;
+use crate::entry::RebootReason;
+use crate::instance::EntryBody;
+use crate::instance::Error as InstanceError;
+use crate::instance::{get_recorded_entry, record_instance_entry};
+use cstr::cstr;
+use diced_open_dice::Hidden;
+use libfdt::{Fdt, FdtNode};
+use log::{error, info};
+use pvmfw_avb::Capability;
+use pvmfw_avb::VerifiedBootData;
+use virtio_drivers::transport::pci::bus::PciRoot;
+use vmbase::rand;
+
+/// Performs RBP based on the input payload, current DICE chain, and host-controlled platform.
+///
+/// On success, returns a tuple containing:
+/// - `new_instance`: true if a new entry was created using the legacy instance.img solution;
+/// - `salt`: the salt representing the instance, to be used during DICE derivation;
+/// - `defer_rollback_protection`: if RBP is being deferred.
+pub fn perform_rollback_protection(
+    fdt: &Fdt,
+    verified_boot_data: &VerifiedBootData,
+    dice_inputs: &PartialInputs,
+    pci_root: &mut PciRoot,
+    cdi_seal: &[u8],
+    instance_hash: Option<Hidden>,
+) -> Result<(bool, Hidden, bool), RebootReason> {
+    let defer_rollback_protection = should_defer_rollback_protection(fdt)?
+        && verified_boot_data.has_capability(Capability::SecretkeeperProtection);
+    let (new_instance, salt) = if defer_rollback_protection {
+        info!("Guest OS is capable of Secretkeeper protection, deferring rollback protection");
+        // rollback_index of the image is used as security_version and is expected to be > 0 to
+        // discourage implicit allocation.
+        if verified_boot_data.rollback_index == 0 {
+            error!("Expected positive rollback_index, found 0");
+            return Err(RebootReason::InvalidPayload);
+        };
+        (false, instance_hash.unwrap())
+    } else if verified_boot_data.has_capability(Capability::RemoteAttest) {
+        info!("Service VM capable of remote attestation detected, performing version checks");
+        if service_vm_version::VERSION != verified_boot_data.rollback_index {
+            // For RKP VM, we only boot if the version in the AVB footer of its kernel matches
+            // the one embedded in pvmfw at build time.
+            // This prevents the pvmfw from booting a roll backed RKP VM.
+            error!(
+                "Service VM version mismatch: expected {}, found {}",
+                service_vm_version::VERSION,
+                verified_boot_data.rollback_index
+            );
+            return Err(RebootReason::InvalidPayload);
+        }
+        (false, instance_hash.unwrap())
+    } else if verified_boot_data.has_capability(Capability::TrustySecurityVm) {
+        // The rollback protection of Trusty VMs are handled by AuthMgr, so we don't need to
+        // handle it here.
+        info!("Trusty Security VM detected");
+        (false, instance_hash.unwrap())
+    } else {
+        info!("Fallback to instance.img based rollback checks");
+        let (recorded_entry, mut instance_img, header_index) =
+            get_recorded_entry(pci_root, cdi_seal).map_err(|e| {
+                error!("Failed to get entry from instance.img: {e}");
+                RebootReason::InternalError
+            })?;
+        let (new_instance, salt) = if let Some(entry) = recorded_entry {
+            check_dice_measurements_match_entry(dice_inputs, &entry)?;
+            let salt = instance_hash.unwrap_or(entry.salt);
+            (false, salt)
+        } else {
+            // New instance!
+            let salt = instance_hash.map_or_else(rand::random_array, Ok).map_err(|e| {
+                error!("Failed to generated instance.img salt: {e}");
+                RebootReason::InternalError
+            })?;
+
+            let entry = EntryBody::new(dice_inputs, &salt);
+            record_instance_entry(&entry, cdi_seal, &mut instance_img, header_index).map_err(
+                |e| {
+                    error!("Failed to get recorded entry in instance.img: {e}");
+                    RebootReason::InternalError
+                },
+            )?;
+            (true, salt)
+        };
+        (new_instance, salt)
+    };
+
+    Ok((new_instance, salt, defer_rollback_protection))
+}
+
+fn check_dice_measurements_match_entry(
+    dice_inputs: &PartialInputs,
+    entry: &EntryBody,
+) -> Result<(), RebootReason> {
+    ensure_dice_measurements_match_entry(dice_inputs, entry).map_err(|e| {
+        error!(
+            "Dice measurements do not match recorded entry. \
+        This may be because of update: {e}"
+        );
+        RebootReason::InternalError
+    })?;
+
+    Ok(())
+}
+
+fn ensure_dice_measurements_match_entry(
+    dice_inputs: &PartialInputs,
+    entry: &EntryBody,
+) -> Result<(), InstanceError> {
+    if entry.code_hash != dice_inputs.code_hash {
+        Err(InstanceError::RecordedCodeHashMismatch)
+    } else if entry.auth_hash != dice_inputs.auth_hash {
+        Err(InstanceError::RecordedAuthHashMismatch)
+    } else if entry.mode() != dice_inputs.mode {
+        Err(InstanceError::RecordedDiceModeMismatch)
+    } else {
+        Ok(())
+    }
+}
+
+fn should_defer_rollback_protection(fdt: &Fdt) -> Result<bool, RebootReason> {
+    let node = avf_untrusted_node(fdt)?;
+    let defer_rbp = node
+        .getprop(cstr!("defer-rollback-protection"))
+        .map_err(|e| {
+            error!("Failed to get defer-rollback-protection property in DT: {e}");
+            RebootReason::InvalidFdt
+        })?
+        .is_some();
+    Ok(defer_rbp)
+}
+
+fn avf_untrusted_node(fdt: &Fdt) -> Result<FdtNode, RebootReason> {
+    let node = fdt.node(cstr!("/avf/untrusted")).map_err(|e| {
+        error!("Failed to get /avf/untrusted node: {e}");
+        RebootReason::InvalidFdt
+    })?;
+    node.ok_or_else(|| {
+        error!("/avf/untrusted node is missing in DT");
+        RebootReason::InvalidFdt
+    })
+}
diff --git a/guest/shutdown_runner/.gitignore b/guest/shutdown_runner/.gitignore
new file mode 100644
index 0000000..ea8c4bf
--- /dev/null
+++ b/guest/shutdown_runner/.gitignore
@@ -0,0 +1 @@
+/target
diff --git a/guest/shutdown_runner/Cargo.toml b/guest/shutdown_runner/Cargo.toml
new file mode 100644
index 0000000..b74e7ee
--- /dev/null
+++ b/guest/shutdown_runner/Cargo.toml
@@ -0,0 +1,17 @@
+[package]
+name = "shutdown_runner"
+version = "0.1.0"
+edition = "2021"
+license = "Apache-2.0"
+
+[dependencies]
+anyhow = "1.0.94"
+clap = { version = "4.5.20", features = ["derive"] }
+log = "0.4.22"
+netdev = "0.31.0"
+prost = "0.13.3"
+tokio = { version = "1.40.0", features = ["rt-multi-thread"] }
+tonic = "0.12.3"
+
+[build-dependencies]
+tonic-build = "0.12.3"
diff --git a/guest/shutdown_runner/build.rs b/guest/shutdown_runner/build.rs
new file mode 100644
index 0000000..e3939d4
--- /dev/null
+++ b/guest/shutdown_runner/build.rs
@@ -0,0 +1,7 @@
+fn main() -> Result<(), Box<dyn std::error::Error>> {
+    let proto_file = "../../libs/debian_service/proto/DebianService.proto";
+
+    tonic_build::compile_protos(proto_file).unwrap();
+
+    Ok(())
+}
diff --git a/guest/shutdown_runner/src/main.rs b/guest/shutdown_runner/src/main.rs
new file mode 100644
index 0000000..19e9883
--- /dev/null
+++ b/guest/shutdown_runner/src/main.rs
@@ -0,0 +1,46 @@
+use api::debian_service_client::DebianServiceClient;
+use api::ShutdownQueueOpeningRequest;
+use std::process::Command;
+
+use anyhow::anyhow;
+use clap::Parser;
+use log::debug;
+pub mod api {
+    tonic::include_proto!("com.android.virtualization.terminal.proto");
+}
+
+#[derive(Parser)]
+/// Flags for running command
+pub struct Args {
+    /// grpc port number
+    #[arg(long)]
+    #[arg(alias = "grpc_port")]
+    grpc_port: String,
+}
+
+#[tokio::main]
+async fn main() -> Result<(), Box<dyn std::error::Error>> {
+    let args = Args::parse();
+    let gateway_ip_addr = netdev::get_default_gateway()?.ipv4[0];
+
+    let server_addr = format!("http://{}:{}", gateway_ip_addr.to_string(), args.grpc_port);
+
+    debug!("connect to grpc server {}", server_addr);
+
+    let mut client = DebianServiceClient::connect(server_addr).await.map_err(|e| e.to_string())?;
+
+    let mut res_stream = client
+        .open_shutdown_request_queue(tonic::Request::new(ShutdownQueueOpeningRequest {}))
+        .await?
+        .into_inner();
+
+    while let Some(_response) = res_stream.message().await? {
+        let status = Command::new("poweroff").status().expect("power off");
+        if !status.success() {
+            return Err(anyhow!("Failed to power off: {status}").into());
+        }
+        debug!("poweroff");
+        break;
+    }
+    Ok(())
+}
diff --git a/guest/trusty/security_vm/launcher/src/main.rs b/guest/trusty/security_vm/launcher/src/main.rs
index 9611f26..62febf4 100644
--- a/guest/trusty/security_vm/launcher/src/main.rs
+++ b/guest/trusty/security_vm/launcher/src/main.rs
@@ -32,6 +32,10 @@
     #[arg(long)]
     kernel: PathBuf,
 
+    // Whether the kernel should be loaded as a bootloader
+    #[arg(long)]
+    load_kernel_as_bootloader: bool,
+
     /// Whether the VM is protected or not.
     #[arg(long)]
     protected: bool,
@@ -70,14 +74,21 @@
 
     let kernel =
         File::open(&args.kernel).with_context(|| format!("Failed to open {:?}", &args.kernel))?;
+    let kernel = ParcelFileDescriptor::new(kernel);
+
+    // If --load-kernel-as-bootloader option is present, then load kernel as bootloader
+    let (kernel, bootloader) =
+        if args.load_kernel_as_bootloader { (None, Some(kernel)) } else { (Some(kernel), None) };
 
     let vm_config = VirtualMachineConfig::RawConfig(VirtualMachineRawConfig {
         name: args.name.to_owned(),
-        kernel: Some(ParcelFileDescriptor::new(kernel)),
+        kernel,
+        bootloader,
         protectedVm: args.protected,
         memoryMib: args.memory_size_mib,
         cpuTopology: args.cpu_topology,
         platformVersion: "~1.0".to_owned(),
+        balloon: true, // TODO: probably don't want ballooning.
         // TODO: add instanceId
         ..Default::default()
     });
diff --git a/libs/debian_service/proto/DebianService.proto b/libs/debian_service/proto/DebianService.proto
index 61bcece..739f0ac 100644
--- a/libs/debian_service/proto/DebianService.proto
+++ b/libs/debian_service/proto/DebianService.proto
@@ -25,6 +25,7 @@
   rpc ReportVmActivePorts (ReportVmActivePortsRequest) returns (ReportVmActivePortsResponse) {}
   rpc ReportVmIpAddr (IpAddr) returns (ReportVmIpAddrResponse) {}
   rpc OpenForwardingRequestQueue (QueueOpeningRequest) returns (stream ForwardingRequestItem) {}
+  rpc OpenShutdownRequestQueue (ShutdownQueueOpeningRequest) returns (stream ShutdownRequestItem) {}
 }
 
 message QueueOpeningRequest {
@@ -51,3 +52,7 @@
   int32 guest_tcp_port = 1;
   int32 vsock_port = 2;
 }
+
+message ShutdownQueueOpeningRequest {}
+
+message ShutdownRequestItem {}
\ No newline at end of file
diff --git a/libs/devicemapper/src/crypt.rs b/libs/devicemapper/src/crypt.rs
index 3afd374..75417ed 100644
--- a/libs/devicemapper/src/crypt.rs
+++ b/libs/devicemapper/src/crypt.rs
@@ -23,7 +23,7 @@
 use std::io::Write;
 use std::mem::size_of;
 use std::path::Path;
-use zerocopy::AsBytes;
+use zerocopy::IntoBytes;
 
 const SECTOR_SIZE: u64 = 512;
 
diff --git a/libs/devicemapper/src/lib.rs b/libs/devicemapper/src/lib.rs
index 5656743..a8f3049 100644
--- a/libs/devicemapper/src/lib.rs
+++ b/libs/devicemapper/src/lib.rs
@@ -37,8 +37,9 @@
 use std::mem::size_of;
 use std::os::unix::io::AsRawFd;
 use std::path::{Path, PathBuf};
-use zerocopy::AsBytes;
-use zerocopy::FromZeroes;
+use zerocopy::FromZeros;
+use zerocopy::Immutable;
+use zerocopy::IntoBytes;
 
 /// Exposes DmCryptTarget & related builder
 pub mod crypt;
@@ -88,7 +89,7 @@
 // `DmTargetSpec` is the header of the data structure for a device-mapper target. When doing the
 // ioctl, one of more `DmTargetSpec` (and its body) are appened to the `DmIoctl` struct.
 #[repr(C)]
-#[derive(Copy, Clone, AsBytes, FromZeroes)]
+#[derive(Copy, Clone, Immutable, IntoBytes, FromZeros)]
 struct DmTargetSpec {
     sector_start: u64,
     length: u64, // number of 512 sectors
diff --git a/libs/devicemapper/src/loopdevice.rs b/libs/devicemapper/src/loopdevice.rs
index 9dc722b..113a946 100644
--- a/libs/devicemapper/src/loopdevice.rs
+++ b/libs/devicemapper/src/loopdevice.rs
@@ -32,7 +32,7 @@
 use std::path::{Path, PathBuf};
 use std::thread;
 use std::time::{Duration, Instant};
-use zerocopy::FromZeroes;
+use zerocopy::FromZeros;
 
 use crate::loopdevice::sys::*;
 
@@ -184,7 +184,7 @@
         let a_file = a_dir.path().join("test");
         let a_size = 4096u64;
         create_empty_file(&a_file, a_size);
-        let dev = attach(a_file, 0, a_size, /*direct_io*/ true, /*writable*/ false).unwrap();
+        let dev = attach(a_file, 0, a_size, /* direct_io */ true, /* writable */ false).unwrap();
         scopeguard::defer! {
             detach(&dev).unwrap();
         }
@@ -197,7 +197,7 @@
         let a_file = a_dir.path().join("test");
         let a_size = 4096u64;
         create_empty_file(&a_file, a_size);
-        let dev = attach(a_file, 0, a_size, /*direct_io*/ false, /*writable*/ false).unwrap();
+        let dev = attach(a_file, 0, a_size, /* direct_io */ false, /* writable */ false).unwrap();
         scopeguard::defer! {
             detach(&dev).unwrap();
         }
@@ -210,7 +210,7 @@
         let a_file = a_dir.path().join("test");
         let a_size = 4096u64;
         create_empty_file(&a_file, a_size);
-        let dev = attach(a_file, 0, a_size, /*direct_io*/ true, /*writable*/ true).unwrap();
+        let dev = attach(a_file, 0, a_size, /* direct_io */ true, /* writable */ true).unwrap();
         scopeguard::defer! {
             detach(&dev).unwrap();
         }
diff --git a/libs/devicemapper/src/loopdevice/sys.rs b/libs/devicemapper/src/loopdevice/sys.rs
index ce4ef61..47d2c08 100644
--- a/libs/devicemapper/src/loopdevice/sys.rs
+++ b/libs/devicemapper/src/loopdevice/sys.rs
@@ -15,7 +15,7 @@
  */
 
 use bitflags::bitflags;
-use zerocopy::FromZeroes;
+use zerocopy::FromZeros;
 
 // This UAPI is copied and converted from include/uapi/linux/loop.h Note that this module doesn't
 // implement all the features introduced in loop(4). Only the features that are required to support
@@ -28,7 +28,7 @@
 pub const LOOP_CLR_FD: libc::c_ulong = 0x4C01;
 
 #[repr(C)]
-#[derive(Copy, Clone, FromZeroes)]
+#[derive(Copy, Clone, FromZeros)]
 pub struct loop_config {
     pub fd: u32,
     pub block_size: u32,
@@ -37,7 +37,7 @@
 }
 
 #[repr(C)]
-#[derive(Copy, Clone, FromZeroes)]
+#[derive(Copy, Clone, FromZeros)]
 pub struct loop_info64 {
     pub lo_device: u64,
     pub lo_inode: u64,
@@ -55,7 +55,7 @@
 }
 
 #[repr(transparent)]
-#[derive(Copy, Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, FromZeroes)]
+#[derive(Copy, Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, FromZeros)]
 pub struct Flag(u32);
 
 bitflags! {
diff --git a/libs/devicemapper/src/sys.rs b/libs/devicemapper/src/sys.rs
index bd1e165..bbf7e45 100644
--- a/libs/devicemapper/src/sys.rs
+++ b/libs/devicemapper/src/sys.rs
@@ -15,8 +15,9 @@
  */
 
 use bitflags::bitflags;
-use zerocopy::AsBytes;
-use zerocopy::FromZeroes;
+use zerocopy::FromZeros;
+use zerocopy::Immutable;
+use zerocopy::IntoBytes;
 
 // UAPI for device mapper can be found at include/uapi/linux/dm-ioctl.h
 
@@ -45,7 +46,7 @@
 }
 
 #[repr(C)]
-#[derive(Copy, Clone, AsBytes, FromZeroes)]
+#[derive(Copy, Clone, Immutable, IntoBytes, FromZeros)]
 pub struct DmIoctl {
     pub version: [u32; 3],
     pub data_size: u32,
@@ -70,7 +71,9 @@
 pub const DM_MAX_TYPE_NAME: usize = 16;
 
 #[repr(transparent)]
-#[derive(Copy, Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, AsBytes, FromZeroes)]
+#[derive(
+    Copy, Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Immutable, IntoBytes, FromZeros,
+)]
 pub struct Flag(u32);
 
 bitflags! {
diff --git a/libs/devicemapper/src/verity.rs b/libs/devicemapper/src/verity.rs
index eb342a8..09087da 100644
--- a/libs/devicemapper/src/verity.rs
+++ b/libs/devicemapper/src/verity.rs
@@ -22,7 +22,7 @@
 use std::io::Write;
 use std::mem::size_of;
 use std::path::Path;
-use zerocopy::AsBytes;
+use zerocopy::IntoBytes;
 
 use crate::DmTargetSpec;
 
diff --git a/libs/framework-virtualization/Android.bp b/libs/framework-virtualization/Android.bp
index d5ac878..98fa53d 100644
--- a/libs/framework-virtualization/Android.bp
+++ b/libs/framework-virtualization/Android.bp
@@ -15,6 +15,7 @@
     ],
     static_libs: [
         "android.system.virtualizationservice-java",
+        "avf_aconfig_flags_java",
         // For android.sysprop.HypervisorProperties
         "PlatformProperties",
     ],
@@ -51,6 +52,9 @@
             "FlaggedApi",
         ],
     },
+    aconfig_declarations: [
+        "avf_aconfig_flags",
+    ],
 }
 
 gensrcs {
diff --git a/libs/framework-virtualization/api/system-current.txt b/libs/framework-virtualization/api/system-current.txt
index d9bafa1..233491f 100644
--- a/libs/framework-virtualization/api/system-current.txt
+++ b/libs/framework-virtualization/api/system-current.txt
@@ -66,6 +66,7 @@
     method public boolean isEncryptedStorageEnabled();
     method public boolean isProtectedVm();
     method public boolean isVmOutputCaptured();
+    method @FlaggedApi("com.android.system.virtualmachine.flags.promote_set_should_use_hugepages_to_system_api") public boolean shouldUseHugepages();
     field public static final int CPU_TOPOLOGY_MATCH_HOST = 1; // 0x1
     field public static final int CPU_TOPOLOGY_ONE_CPU = 0; // 0x0
     field public static final int DEBUG_LEVEL_FULL = 1; // 0x1
@@ -82,6 +83,7 @@
     method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setMemoryBytes(@IntRange(from=1) long);
     method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setPayloadBinaryName(@NonNull String);
     method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setProtectedVm(boolean);
+    method @FlaggedApi("com.android.system.virtualmachine.flags.promote_set_should_use_hugepages_to_system_api") @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setShouldUseHugepages(boolean);
     method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setVmOutputCaptured(boolean);
   }
 
diff --git a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java
index 3829f9f..d6b38ea 100644
--- a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java
+++ b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineConfig.java
@@ -22,6 +22,7 @@
 
 import static java.util.Objects.requireNonNull;
 
+import android.annotation.FlaggedApi;
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
@@ -49,6 +50,8 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.android.system.virtualmachine.flags.Flags;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -601,6 +604,18 @@
     }
 
     /**
+     * Returns whether this VM enabled the hint to use transparent huge pages.
+     *
+     * @see Builder#setShouldUseHugepages
+     * @hide
+     */
+    @SystemApi
+    @FlaggedApi(Flags.FLAG_PROMOTE_SET_SHOULD_USE_HUGEPAGES_TO_SYSTEM_API)
+    public boolean shouldUseHugepages() {
+        return mShouldUseHugepages;
+    }
+
+    /**
      * Tests if this config is compatible with other config. Being compatible means that the configs
      * can be interchangeably used for the same virtual machine; they do not change the VM identity
      * or secrets. Such changes include varying the number of CPUs or the size of the RAM. Changes
@@ -621,8 +636,8 @@
                 && this.mVmOutputCaptured == other.mVmOutputCaptured
                 && this.mVmConsoleInputSupported == other.mVmConsoleInputSupported
                 && this.mConnectVmConsole == other.mConnectVmConsole
-                && this.mConsoleInputDevice == other.mConsoleInputDevice
                 && (this.mVendorDiskImage == null) == (other.mVendorDiskImage == null)
+                && Objects.equals(this.mConsoleInputDevice, other.mConsoleInputDevice)
                 && Objects.equals(this.mPayloadConfigPath, other.mPayloadConfigPath)
                 && Objects.equals(this.mPayloadBinaryName, other.mPayloadBinaryName)
                 && Objects.equals(this.mPackageName, other.mPackageName)
@@ -798,7 +813,7 @@
                 Optional.ofNullable(customImageConfig.getAudioConfig())
                         .map(ac -> ac.toParcelable())
                         .orElse(null);
-        config.noBalloon = !customImageConfig.useAutoMemoryBalloon();
+        config.balloon = customImageConfig.useAutoMemoryBalloon();
         config.usbConfig =
                 Optional.ofNullable(customImageConfig.getUsbConfig())
                         .map(
@@ -1364,7 +1379,26 @@
             return this;
         }
 
-        /** @hide */
+        /**
+         * Hints whether the VM should make use of the transparent huge pages feature.
+         *
+         * <p>Note: this API just provides a hint, whether the VM will actually use transparent huge
+         * pages additionally depends on the following:
+         *
+         * <ul>
+         *   <li>{@code /sys/kernel/mm/transparent_hugepages/shmem_enabled} should be configured
+         *       with the value {@code 'advise'}.
+         *   <li>Android host kernel version should be at least {@code android15-5.15}
+         * </ul>
+         *
+         * @see https://docs.kernel.org/admin-guide/mm/transhuge.html
+         * @see
+         *     https://cs.android.com/android/platform/superproject/main/+/main:packages/modules/Virtualization/docs/hugepages.md
+         * @hide
+         */
+        @SystemApi
+        @FlaggedApi(Flags.FLAG_PROMOTE_SET_SHOULD_USE_HUGEPAGES_TO_SYSTEM_API)
+        @NonNull
         public Builder setShouldUseHugepages(boolean shouldUseHugepages) {
             mShouldUseHugepages = shouldUseHugepages;
             return this;
diff --git a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
index 93f29a9..1708caa 100644
--- a/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
+++ b/libs/framework-virtualization/src/android/system/virtualmachine/VirtualMachineCustomImageConfig.java
@@ -486,7 +486,6 @@
         private boolean network;
         private GpuConfig gpuConfig;
         private boolean trackpad;
-        // TODO(b/363985291): balloon breaks Linux VM behavior
         private boolean autoMemoryBalloon = false;
         private UsbConfig usbConfig;
 
diff --git a/libs/libavf/include/android/virtualization.h b/libs/libavf/include/android/virtualization.h
index f33ee75..7ab7431 100644
--- a/libs/libavf/include/android/virtualization.h
+++ b/libs/libavf/include/android/virtualization.h
@@ -18,6 +18,8 @@
 #include <stdbool.h>
 #include <stdint.h>
 #include <stdlib.h>
+#include <sys/cdefs.h>
+#include <time.h>
 
 __BEGIN_DECLS
 
@@ -40,9 +42,9 @@
  * VM by calling {@link AVirtualMachine_createRaw} or releasing it by calling
  * {@link AVirtualMachineRawConfig_destroy}.
  *
- * \return A new virtual machine raw config object.
+ * \return A new virtual machine raw config object. On failure (such as out of memory), it aborts.
  */
-AVirtualMachineRawConfig* AVirtualMachineRawConfig_create();
+AVirtualMachineRawConfig* _Nonnull AVirtualMachineRawConfig_create() __INTRODUCED_IN(36);
 
 /**
  * Destroy a virtual machine config object.
@@ -52,61 +54,69 @@
  * `AVirtualMachineRawConfig_destroy` does nothing if `config` is null. A destroyed config object
  * must not be reused.
  */
-void AVirtualMachineRawConfig_destroy(AVirtualMachineRawConfig* config);
+void AVirtualMachineRawConfig_destroy(AVirtualMachineRawConfig* _Nullable config)
+        __INTRODUCED_IN(36);
 
 /**
  * Set a name of a virtual machine.
  *
  * \param config a virtual machine config object.
- * \param name a pointer to a null-terminated string for the name.
+ * \param name a pointer to a null-terminated, UTF-8 encoded string for the name.
  *
- * \return If successful, it returns 0.
+ * \return If successful, it returns 0. If `name` is not a null-terminated UTF-8 encoded string,
+ *   it returns -EINVAL.
  */
-int AVirtualMachineRawConfig_setName(AVirtualMachineRawConfig* config, const char* name);
+int AVirtualMachineRawConfig_setName(AVirtualMachineRawConfig* _Nonnull config,
+                                     const char* _Nonnull name) __INTRODUCED_IN(36);
 
 /**
  * Set an instance ID of a virtual machine.
  *
  * \param config a virtual machine config object.
  * \param instanceId a pointer to a 64-byte buffer for the instance ID.
+ * \param instanceIdSize the number of bytes in `instanceId`.
  *
- * \return If successful, it returns 0.
+ * \return If successful, it returns 0. If `instanceIdSize` is incorrect, it returns -EINVAL.
  */
-int AVirtualMachineRawConfig_setInstanceId(AVirtualMachineRawConfig* config,
-                                           const int8_t* instanceId);
+int AVirtualMachineRawConfig_setInstanceId(AVirtualMachineRawConfig* _Nonnull config,
+                                           const int8_t* _Nonnull instanceId, size_t instanceIdSize)
+        __INTRODUCED_IN(36);
 
 /**
  * Set a kernel image of a virtual machine.
  *
  * \param config a virtual machine config object.
- * \param fd a readable file descriptor containing the kernel image, or -1 to unset.
- *   `AVirtualMachineRawConfig_setKernel` takes ownership of `fd`.
- *
- * \return If successful, it returns 0.
+ * \param fd a readable, seekable, and sized (i.e. report a valid size using fstat()) file
+ *   descriptor containing the kernel image, or -1 to unset. `AVirtualMachineRawConfig_setKernel`
+ *   takes ownership of `fd`.
  */
-int AVirtualMachineRawConfig_setKernel(AVirtualMachineRawConfig* config, int fd);
+void AVirtualMachineRawConfig_setKernel(AVirtualMachineRawConfig* _Nonnull config, int fd)
+        __INTRODUCED_IN(36);
 
 /**
  * Set an init rd of a virtual machine.
  *
  * \param config a virtual machine config object.
- * \param fd a readable file descriptor containing the kernel image, or -1 to unset.
- *   `AVirtualMachineRawConfig_setInitRd` takes ownership of `fd`.
- *
- * \return If successful, it returns 0.
+ * \param fd a readable, seekable, and sized (i.e. report a valid size using fstat()) file
+ *   descriptor containing the init rd image, or -1 to unset. `AVirtualMachineRawConfig_setInitRd`
+ *   takes ownership of `fd`.
  */
-int AVirtualMachineRawConfig_setInitRd(AVirtualMachineRawConfig* config, int fd);
+void AVirtualMachineRawConfig_setInitRd(AVirtualMachineRawConfig* _Nonnull config, int fd)
+        __INTRODUCED_IN(36);
 
 /**
  * Add a disk for a virtual machine.
  *
  * \param config a virtual machine config object.
- * \param fd a readable file descriptor containing the disk image.
- * `AVirtualMachineRawConfig_addDisk` takes ownership of `fd`.
+ * \param fd a readable, seekable, and sized (i.e. report a valid size using fstat()) file
+ *   descriptor containing the disk. `fd` must be writable if If `writable` is true.
+ *   `AVirtualMachineRawConfig_addDisk` takes ownership of `fd`.
+ * \param writable whether this disk should be writable by the virtual machine.
  *
  * \return If successful, it returns 0. If `fd` is invalid, it returns -EINVAL.
  */
-int AVirtualMachineRawConfig_addDisk(AVirtualMachineRawConfig* config, int fd);
+int AVirtualMachineRawConfig_addDisk(AVirtualMachineRawConfig* _Nonnull config, int fd,
+                                     bool writable) __INTRODUCED_IN(36);
 
 /**
  * Set how much memory will be given to a virtual machine.
@@ -114,40 +124,32 @@
  * \param config a virtual machine config object.
  * \param memoryMib the amount of RAM to give the virtual machine, in MiB. 0 or negative to use the
  *   default.
- *
- * \return If successful, it returns 0.
  */
-int AVirtualMachineRawConfig_setMemoryMib(AVirtualMachineRawConfig* config, int32_t memoryMib);
+void AVirtualMachineRawConfig_setMemoryMib(AVirtualMachineRawConfig* _Nonnull config,
+                                           int32_t memoryMib) __INTRODUCED_IN(36);
 
 /**
- * Set whether a virtual machine is protected or not.
+ * Set whether the virtual machine's memory will be protected from the host, so the host can't
+ * access its memory.
  *
  * \param config a virtual machine config object.
  * \param protectedVm whether the virtual machine should be protected.
- *
- * \return If successful, it returns 0.
  */
-int AVirtualMachineRawConfig_setProtectedVm(AVirtualMachineRawConfig* config, bool protectedVm);
-
-/**
- * Set whether a virtual machine uses memory ballooning or not.
- *
- * \param config a virtual machine config object.
- * \param balloon whether the virtual machine should use memory ballooning.
- *
- * \return If successful, it returns 0.
- */
-int AVirtualMachineRawConfig_setBalloon(AVirtualMachineRawConfig* config, bool balloon);
+void AVirtualMachineRawConfig_setProtectedVm(AVirtualMachineRawConfig* _Nonnull config,
+                                             bool protectedVm) __INTRODUCED_IN(36);
 
 /**
  * Set whether to use an alternate, hypervisor-specific authentication method
- * for protected VMs. You don't want to use this.
+ * for protected VMs.
+ *
+ * This option is discouraged. Prefer to use the default authentication method, which is better
+ * tested and integrated into Android. This option must only be used from the vendor partition.
  *
  * \return If successful, it returns 0. It returns `-ENOTSUP` if the hypervisor doesn't have an
  *   alternate auth mode.
  */
-int AVirtualMachineRawConfig_setHypervisorSpecificAuthMethod(AVirtualMachineRawConfig* config,
-                                                             bool enable);
+int AVirtualMachineRawConfig_setHypervisorSpecificAuthMethod(
+        AVirtualMachineRawConfig* _Nonnull config, bool enable) __INTRODUCED_IN(36);
 
 /**
  * Use the specified fd as the backing memfd for a range of the guest
@@ -155,14 +157,15 @@
  *
  * \param config a virtual machine config object.
  * \param fd a memfd
- * \param rangeStart range start IPA
- * \param rangeEnd range end IPA
+ * \param rangeStart range start of guest memory addresses
+ * \param rangeEnd range end of guest memory addresses
  *
  * \return If successful, it returns 0. It returns `-ENOTSUP` if the hypervisor doesn't support
  *   backing memfd.
  */
-int AVirtualMachineRawConfig_addCustomMemoryBackingFile(AVirtualMachineRawConfig* config, int fd,
-                                                        size_t rangeStart, size_t rangeEnd);
+int AVirtualMachineRawConfig_addCustomMemoryBackingFile(AVirtualMachineRawConfig* _Nonnull config,
+                                                        int fd, uint64_t rangeStart,
+                                                        uint64_t rangeEnd) __INTRODUCED_IN(36);
 
 /**
  * Represents a handle on a virtualization service, responsible for managing virtual machines.
@@ -176,8 +179,10 @@
  * The caller takes ownership of the returned service object, and is responsible for releasing it
  * by calling {@link AVirtualizationService_destroy}.
  *
- * \param early set to true when running a service for early virtual machines. See
- *   [`early_vm.md`](../../../../docs/early_vm.md) for more details on early virtual machines.
+ * \param early set to true when running a service for early virtual machines. Early VMs are
+ *   specialized virtual machines that can run even before the `/data` partition is mounted.
+ *   Early VMs must be pre-defined in XML files located at `{partition}/etc/avf/early_vms*.xml`, and
+ *   clients of early VMs must be pre-installed under the same partition.
  * \param service an out parameter that will be set to the service handle.
  *
  * \return
@@ -187,7 +192,8 @@
  *   - If it fails to connect to the spawned `virtmgr`, it leaves `service` untouched and returns
  *     `-ECONNREFUSED`.
  */
-int AVirtualizationService_create(AVirtualizationService** service, bool early);
+int AVirtualizationService_create(AVirtualizationService* _Null_unspecified* _Nonnull service,
+                                  bool early) __INTRODUCED_IN(36);
 
 /**
  * Destroy a VirtualizationService object.
@@ -197,7 +203,7 @@
  *
  * \param service a handle on a virtualization service.
  */
-void AVirtualizationService_destroy(AVirtualizationService* service);
+void AVirtualizationService_destroy(AVirtualizationService* _Nullable service) __INTRODUCED_IN(36);
 
 /**
  * Represents a handle on a virtual machine.
@@ -208,55 +214,55 @@
  * The reason why a virtual machine stopped.
  * @see AVirtualMachine_waitForStop
  */
-enum StopReason : int32_t {
+enum AVirtualMachineStopReason : int32_t {
     /**
      * VirtualizationService died.
      */
-    VIRTUALIZATION_SERVICE_DIED = 1,
+    AVIRTUAL_MACHINE_VIRTUALIZATION_SERVICE_DIED = 1,
     /**
      * There was an error waiting for the virtual machine.
      */
-    INFRASTRUCTURE_ERROR = 2,
+    AVIRTUAL_MACHINE_INFRASTRUCTURE_ERROR = 2,
     /**
      * The virtual machine was killed.
      */
-    KILLED = 3,
+    AVIRTUAL_MACHINE_KILLED = 3,
     /**
      * The virtual machine stopped for an unknown reason.
      */
-    UNKNOWN = 4,
+    AVIRTUAL_MACHINE_UNKNOWN = 4,
     /**
      * The virtual machine requested to shut down.
      */
-    SHUTDOWN = 5,
+    AVIRTUAL_MACHINE_SHUTDOWN = 5,
     /**
      * crosvm had an error starting the virtual machine.
      */
-    START_FAILED = 6,
+    AVIRTUAL_MACHINE_START_FAILED = 6,
     /**
      * The virtual machine requested to reboot, possibly as the result of a kernel panic.
      */
-    REBOOT = 7,
+    AVIRTUAL_MACHINE_REBOOT = 7,
     /**
      * The virtual machine or crosvm crashed.
      */
-    CRASH = 8,
+    AVIRTUAL_MACHINE_CRASH = 8,
     /**
      * The pVM firmware failed to verify the VM because the public key doesn't match.
      */
-    PVM_FIRMWARE_PUBLIC_KEY_MISMATCH = 9,
+    AVIRTUAL_MACHINE_PVM_FIRMWARE_PUBLIC_KEY_MISMATCH = 9,
     /**
      * The pVM firmware failed to verify the VM because the instance image changed.
      */
-    PVM_FIRMWARE_INSTANCE_IMAGE_CHANGED = 10,
+    AVIRTUAL_MACHINE_PVM_FIRMWARE_INSTANCE_IMAGE_CHANGED = 10,
     /**
      * The virtual machine was killed due to hangup.
      */
-    HANGUP = 11,
+    AVIRTUAL_MACHINE_HANGUP = 11,
     /**
      * VirtualizationService sent a stop reason which was not recognised by the client library.
      */
-    UNRECOGNISED = 0,
+    AVIRTUAL_MACHINE_UNRECOGNISED = 0,
 };
 
 /**
@@ -282,45 +288,80 @@
  * \return If successful, it sets `vm` and returns 0. Otherwise, it leaves `vm` untouched and
  *   returns `-EIO`.
  */
-int AVirtualMachine_createRaw(const AVirtualizationService* service,
-                              AVirtualMachineRawConfig* config, int consoleOutFd, int consoleInFd,
-                              int logFd, AVirtualMachine** vm);
+int AVirtualMachine_createRaw(const AVirtualizationService* _Nonnull service,
+                              AVirtualMachineRawConfig* _Nonnull config, int consoleOutFd,
+                              int consoleInFd, int logFd,
+                              AVirtualMachine* _Null_unspecified* _Nonnull vm) __INTRODUCED_IN(36);
 
 /**
- * Start a virtual machine.
+ * Start a virtual machine. `AVirtualMachine_start` is synchronous and blocks until the virtual
+ * machine is initialized and free to start executing code, or until an error happens.
  *
  * \param vm a handle on a virtual machine.
  *
  * \return If successful, it returns 0. Otherwise, it returns `-EIO`.
  */
-int AVirtualMachine_start(AVirtualMachine* vm);
+int AVirtualMachine_start(AVirtualMachine* _Nonnull vm) __INTRODUCED_IN(36);
 
 /**
- * Stop a virtual machine.
+ * Stop a virtual machine. Stopping a virtual machine is like pulling the plug on a real computer;
+ * the machine halts immediately. Software running on the virtual machine is not notified of the
+ * event, the instance might be left in an inconsistent state.
+ *
+ * For a graceful shutdown, you could request the virtual machine to exit itself, and wait for the
+ * virtual machine to stop by `AVirtualMachine_waitForStop`.
+ *
+ * A stopped virtual machine can be re-started by calling `AVirtualMachine_start`.
+ *
+ * `AVirtualMachine_stop` stops a virtual machine by sending a signal to the process. This operation
+ * is synchronous and `AVirtualMachine_stop` may block.
  *
  * \param vm a handle on a virtual machine.
  *
  * \return If successful, it returns 0. Otherwise, it returns `-EIO`.
  */
-int AVirtualMachine_stop(AVirtualMachine* vm);
+int AVirtualMachine_stop(AVirtualMachine* _Nonnull vm) __INTRODUCED_IN(36);
 
 /**
- * Wait until a virtual machine stops.
+ * Open a vsock connection to the VM on the given port. The caller takes ownership of the returned
+ * file descriptor, and is responsible for closing the file descriptor.
+ *
+ * This operation is synchronous and `AVirtualMachine_connectVsock` may block.
  *
  * \param vm a handle on a virtual machine.
+ * \param port a vsock port number.
  *
- * \return The reason why the virtual machine stopped.
+ * \return If successful, it returns a valid file descriptor. Otherwise, it returns `-EIO`.
  */
-enum StopReason AVirtualMachine_waitForStop(AVirtualMachine* vm);
+int AVirtualMachine_connectVsock(AVirtualMachine* _Nonnull vm, uint32_t port) __INTRODUCED_IN(36);
 
 /**
- * Destroy a virtual machine.
+ * Wait until a virtual machine stops or the given timeout elapses.
+ *
+ * \param vm a handle on a virtual machine.
+ * \param timeout the timeout, or null to wait indefinitely.
+ * \param reason An out parameter that will be set to the reason why the virtual machine stopped.
+ *
+ * \return
+ *   - If the virtual machine stops within the timeout (or indefinitely if `timeout` is null), it
+ *     sets `reason` and returns true.
+ *   - If the timeout expired, it returns `false`.
+ */
+bool AVirtualMachine_waitForStop(AVirtualMachine* _Nonnull vm,
+                                 const struct timespec* _Nullable timeout,
+                                 enum AVirtualMachineStopReason* _Nonnull reason)
+        __INTRODUCED_IN(36);
+
+/**
+ * Destroy a virtual machine object. If the virtual machine is still running,
+ * `AVirtualMachine_destroy` first stops the virtual machine by sending a signal to the process.
+ * This operation is synchronous and `AVirtualMachine_destroy` may block.
  *
  * `AVirtualMachine_destroy` does nothing if `vm` is null. A destroyed virtual machine must not be
  * reused.
  *
  * \param vm a handle on a virtual machine.
  */
-void AVirtualMachine_destroy(AVirtualMachine* vm);
+void AVirtualMachine_destroy(AVirtualMachine* _Nullable vm) __INTRODUCED_IN(36);
 
 __END_DECLS
diff --git a/libs/libavf/libavf.map.txt b/libs/libavf/libavf.map.txt
index ecb4cc9..efc368a 100644
--- a/libs/libavf/libavf.map.txt
+++ b/libs/libavf/libavf.map.txt
@@ -9,7 +9,6 @@
     AVirtualMachineRawConfig_addDisk; # apex llndk
     AVirtualMachineRawConfig_setMemoryMib; # apex llndk
     AVirtualMachineRawConfig_setProtectedVm; # apex llndk
-    AVirtualMachineRawConfig_setBalloon; # apex llndk
     AVirtualMachineRawConfig_setHypervisorSpecificAuthMethod; # apex llndk
     AVirtualMachineRawConfig_addCustomMemoryBackingFile; # apex llndk
     AVirtualizationService_create; # apex llndk
@@ -17,6 +16,7 @@
     AVirtualMachine_createRaw; # apex llndk
     AVirtualMachine_start; # apex llndk
     AVirtualMachine_stop; # apex llndk
+    AVirtualMachine_connectVsock; # apex llndk
     AVirtualMachine_waitForStop; # apex llndk
     AVirtualMachine_destroy; # apex llndk
   local:
diff --git a/libs/libavf/src/lib.rs b/libs/libavf/src/lib.rs
index 0a8f891..56cdfb7 100644
--- a/libs/libavf/src/lib.rs
+++ b/libs/libavf/src/lib.rs
@@ -16,9 +16,10 @@
 
 use std::ffi::CStr;
 use std::fs::File;
-use std::os::fd::FromRawFd;
+use std::os::fd::{FromRawFd, IntoRawFd};
 use std::os::raw::{c_char, c_int};
 use std::ptr;
+use std::time::Duration;
 
 use android_system_virtualizationservice::{
     aidl::android::system::virtualizationservice::{
@@ -28,7 +29,8 @@
     },
     binder::{ParcelFileDescriptor, Strong},
 };
-use avf_bindgen::StopReason;
+use avf_bindgen::AVirtualMachineStopReason;
+use libc::timespec;
 use vmclient::{DeathReason, VirtualizationService, VmInstance};
 
 /// Create a new virtual machine config object with no properties.
@@ -70,8 +72,14 @@
     // AVirtualMachineRawConfig_create. It's the only reference to the object.
     let config = unsafe { &mut *config };
     // SAFETY: `name` is assumed to be a pointer to a valid C string.
-    config.name = unsafe { CStr::from_ptr(name) }.to_string_lossy().into_owned();
-    0
+    let name = unsafe { CStr::from_ptr(name) };
+    match name.to_str() {
+        Ok(name) => {
+            config.name = name.to_owned();
+            0
+        }
+        Err(_) => -libc::EINVAL,
+    }
 }
 
 /// Set an instance ID of a virtual machine.
@@ -83,7 +91,12 @@
 pub unsafe extern "C" fn AVirtualMachineRawConfig_setInstanceId(
     config: *mut VirtualMachineRawConfig,
     instance_id: *const u8,
+    instance_id_size: usize,
 ) -> c_int {
+    if instance_id_size != 64 {
+        return -libc::EINVAL;
+    }
+
     // SAFETY: `config` is assumed to be a valid, non-null pointer returned by
     // AVirtualMachineRawConfig_create. It's the only reference to the object.
     let config = unsafe { &mut *config };
@@ -91,7 +104,7 @@
     // is assumed to be a valid object returned by AVirtuaMachineConfig_create.
     // Both never overlap.
     unsafe {
-        ptr::copy_nonoverlapping(instance_id, config.instanceId.as_mut_ptr(), 64);
+        ptr::copy_nonoverlapping(instance_id, config.instanceId.as_mut_ptr(), instance_id_size);
     }
     0
 }
@@ -106,13 +119,12 @@
 pub unsafe extern "C" fn AVirtualMachineRawConfig_setKernel(
     config: *mut VirtualMachineRawConfig,
     fd: c_int,
-) -> c_int {
+) {
     let file = get_file_from_fd(fd);
     // SAFETY: `config` is assumed to be a valid, non-null pointer returned by
     // AVirtualMachineRawConfig_create. It's the only reference to the object.
     let config = unsafe { &mut *config };
     config.kernel = file.map(ParcelFileDescriptor::new);
-    0
 }
 
 /// Set an init rd of a virtual machine.
@@ -125,13 +137,12 @@
 pub unsafe extern "C" fn AVirtualMachineRawConfig_setInitRd(
     config: *mut VirtualMachineRawConfig,
     fd: c_int,
-) -> c_int {
+) {
     let file = get_file_from_fd(fd);
     // SAFETY: `config` is assumed to be a valid, non-null pointer returned by
     // AVirtualMachineRawConfig_create. It's the only reference to the object.
     let config = unsafe { &mut *config };
     config.initrd = file.map(ParcelFileDescriptor::new);
-    0
 }
 
 /// Add a disk for a virtual machine.
@@ -172,12 +183,11 @@
 pub unsafe extern "C" fn AVirtualMachineRawConfig_setMemoryMib(
     config: *mut VirtualMachineRawConfig,
     memory_mib: i32,
-) -> c_int {
+) {
     // SAFETY: `config` is assumed to be a valid, non-null pointer returned by
     // AVirtualMachineRawConfig_create. It's the only reference to the object.
     let config = unsafe { &mut *config };
     config.memoryMib = memory_mib;
-    0
 }
 
 /// Set whether a virtual machine is protected or not.
@@ -188,28 +198,11 @@
 pub unsafe extern "C" fn AVirtualMachineRawConfig_setProtectedVm(
     config: *mut VirtualMachineRawConfig,
     protected_vm: bool,
-) -> c_int {
+) {
     // SAFETY: `config` is assumed to be a valid, non-null pointer returned by
     // AVirtualMachineRawConfig_create. It's the only reference to the object.
     let config = unsafe { &mut *config };
     config.protectedVm = protected_vm;
-    0
-}
-
-/// Set whether a virtual machine uses memory ballooning or not.
-///
-/// # Safety
-/// `config` must be a pointer returned by `AVirtualMachineRawConfig_create`.
-#[no_mangle]
-pub unsafe extern "C" fn AVirtualMachineRawConfig_setBalloon(
-    config: *mut VirtualMachineRawConfig,
-    balloon: bool,
-) -> c_int {
-    // SAFETY: `config` is assumed to be a valid, non-null pointer returned by
-    // AVirtualMachineRawConfig_create. It's the only reference to the object.
-    let config = unsafe { &mut *config };
-    config.noBalloon = !balloon;
-    0
 }
 
 /// NOT IMPLEMENTED.
@@ -232,8 +225,8 @@
 pub extern "C" fn AVirtualMachineRawConfig_addCustomMemoryBackingFile(
     _config: *mut VirtualMachineRawConfig,
     _fd: c_int,
-    _range_start: usize,
-    _range_end: usize,
+    _range_start: u64,
+    _range_end: u64,
 ) -> c_int {
     -libc::ENOTSUP
 }
@@ -360,31 +353,79 @@
     }
 }
 
-/// Wait until a virtual machine stops.
+/// Open a vsock connection to the CID of the virtual machine on the given vsock port.
 ///
 /// # Safety
-/// `vm` must be a pointer returned by `AVirtualMachine_createRaw`.
+/// `vm` must be a pointer returned by `AVirtualMachine_create`.
 #[no_mangle]
-pub unsafe extern "C" fn AVirtualMachine_waitForStop(vm: *const VmInstance) -> StopReason {
+pub unsafe extern "C" fn AVirtualMachine_connectVsock(vm: *const VmInstance, port: u32) -> c_int {
+    // SAFETY: `vm` is assumed to be a valid, non-null pointer returned by
+    // `AVirtualMachine_createRaw`. It's the only reference to the object.
+    let vm = unsafe { &*vm };
+    match vm.connect_vsock(port) {
+        Ok(pfd) => pfd.into_raw_fd(),
+        Err(_) => -libc::EIO,
+    }
+}
+
+fn death_reason_to_stop_reason(death_reason: DeathReason) -> AVirtualMachineStopReason {
+    match death_reason {
+        DeathReason::VirtualizationServiceDied => {
+            AVirtualMachineStopReason::AVIRTUAL_MACHINE_VIRTUALIZATION_SERVICE_DIED
+        }
+        DeathReason::InfrastructureError => {
+            AVirtualMachineStopReason::AVIRTUAL_MACHINE_INFRASTRUCTURE_ERROR
+        }
+        DeathReason::Killed => AVirtualMachineStopReason::AVIRTUAL_MACHINE_KILLED,
+        DeathReason::Unknown => AVirtualMachineStopReason::AVIRTUAL_MACHINE_UNKNOWN,
+        DeathReason::Shutdown => AVirtualMachineStopReason::AVIRTUAL_MACHINE_SHUTDOWN,
+        DeathReason::StartFailed => AVirtualMachineStopReason::AVIRTUAL_MACHINE_START_FAILED,
+        DeathReason::Reboot => AVirtualMachineStopReason::AVIRTUAL_MACHINE_REBOOT,
+        DeathReason::Crash => AVirtualMachineStopReason::AVIRTUAL_MACHINE_CRASH,
+        DeathReason::PvmFirmwarePublicKeyMismatch => {
+            AVirtualMachineStopReason::AVIRTUAL_MACHINE_PVM_FIRMWARE_PUBLIC_KEY_MISMATCH
+        }
+        DeathReason::PvmFirmwareInstanceImageChanged => {
+            AVirtualMachineStopReason::AVIRTUAL_MACHINE_PVM_FIRMWARE_INSTANCE_IMAGE_CHANGED
+        }
+        DeathReason::Hangup => AVirtualMachineStopReason::AVIRTUAL_MACHINE_HANGUP,
+        _ => AVirtualMachineStopReason::AVIRTUAL_MACHINE_UNRECOGNISED,
+    }
+}
+
+/// Wait until a virtual machine stops or the timeout elapses.
+///
+/// # Safety
+/// `vm` must be a pointer returned by `AVirtualMachine_createRaw`. `timeout` must be a valid
+/// pointer to a `struct timespec` object or null. `reason` must be a valid, non-null pointer to an
+/// AVirtualMachineStopReason object.
+#[no_mangle]
+pub unsafe extern "C" fn AVirtualMachine_waitForStop(
+    vm: *const VmInstance,
+    timeout: *const timespec,
+    reason: *mut AVirtualMachineStopReason,
+) -> bool {
     // SAFETY: `vm` is assumed to be a valid, non-null pointer returned by
     // AVirtualMachine_create. It's the only reference to the object.
     let vm = unsafe { &*vm };
-    match vm.wait_for_death() {
-        DeathReason::VirtualizationServiceDied => StopReason::VIRTUALIZATION_SERVICE_DIED,
-        DeathReason::InfrastructureError => StopReason::INFRASTRUCTURE_ERROR,
-        DeathReason::Killed => StopReason::KILLED,
-        DeathReason::Unknown => StopReason::UNKNOWN,
-        DeathReason::Shutdown => StopReason::SHUTDOWN,
-        DeathReason::StartFailed => StopReason::START_FAILED,
-        DeathReason::Reboot => StopReason::REBOOT,
-        DeathReason::Crash => StopReason::CRASH,
-        DeathReason::PvmFirmwarePublicKeyMismatch => StopReason::PVM_FIRMWARE_PUBLIC_KEY_MISMATCH,
-        DeathReason::PvmFirmwareInstanceImageChanged => {
-            StopReason::PVM_FIRMWARE_INSTANCE_IMAGE_CHANGED
+
+    let death_reason = if timeout.is_null() {
+        vm.wait_for_death()
+    } else {
+        // SAFETY: `timeout` is assumed to be a valid pointer to a `struct timespec` object if
+        // non-null.
+        let timeout = unsafe { &*timeout };
+        let timeout = Duration::new(timeout.tv_sec as u64, timeout.tv_nsec as u32);
+        match vm.wait_for_death_with_timeout(timeout) {
+            Some(death_reason) => death_reason,
+            None => return false,
         }
-        DeathReason::Hangup => StopReason::HANGUP,
-        _ => StopReason::UNRECOGNISED,
-    }
+    };
+
+    // SAFETY: `reason` is assumed to be a valid, non-null pointer to an
+    // AVirtualMachineStopReason object.
+    unsafe { *reason = death_reason_to_stop_reason(death_reason) };
+    true
 }
 
 /// Destroy a virtual machine.
diff --git a/libs/libfdt/src/lib.rs b/libs/libfdt/src/lib.rs
index 5883567..c969749 100644
--- a/libs/libfdt/src/lib.rs
+++ b/libs/libfdt/src/lib.rs
@@ -33,7 +33,7 @@
 use core::ops::Range;
 use cstr::cstr;
 use libfdt::get_slice_at_ptr;
-use zerocopy::AsBytes as _;
+use zerocopy::IntoBytes as _;
 
 use crate::libfdt::{Libfdt, LibfdtMut};
 
diff --git a/libs/libfdt/src/safe_types.rs b/libs/libfdt/src/safe_types.rs
index 03b5bc2..0e79a42 100644
--- a/libs/libfdt/src/safe_types.rs
+++ b/libs/libfdt/src/safe_types.rs
@@ -21,7 +21,7 @@
 use crate::{FdtError, Result};
 
 use zerocopy::byteorder::big_endian;
-use zerocopy::{FromBytes, FromZeroes};
+use zerocopy::FromBytes;
 
 macro_rules! assert_offset_eq {
     // TODO(const_feature(assert_eq)): assert_eq!()
@@ -32,7 +32,7 @@
 
 /// Thin wrapper around `libfdt_bindgen::fdt_header` for transparent endianness handling.
 #[repr(C)]
-#[derive(Debug, FromZeroes, FromBytes)]
+#[derive(Debug, FromBytes)]
 pub struct FdtHeader {
     /// magic word FDT_MAGIC
     pub magic: big_endian::U32,
diff --git a/libs/libservice_vm_manager/src/lib.rs b/libs/libservice_vm_manager/src/lib.rs
index 0f322bb..5bb97d7 100644
--- a/libs/libservice_vm_manager/src/lib.rs
+++ b/libs/libservice_vm_manager/src/lib.rs
@@ -238,7 +238,8 @@
         memoryMib: VM_MEMORY_MB,
         cpuTopology: CpuTopology::ONE_CPU,
         platformVersion: "~1.0".to_string(),
-        gdbPort: 0, // No gdb
+        gdbPort: 0,    // No gdb
+        balloon: true, // TODO: probably don't want ballooning.
         ..Default::default()
     });
     let console_out = Some(android_log_fd()?);
diff --git a/libs/libvmbase/src/bionic.rs b/libs/libvmbase/src/bionic.rs
index 8b40dae..3c0cd6f 100644
--- a/libs/libvmbase/src/bionic.rs
+++ b/libs/libvmbase/src/bionic.rs
@@ -72,6 +72,7 @@
 pub static mut ERRNO: c_int = 0;
 
 #[no_mangle]
+#[allow(unused_unsafe)]
 unsafe extern "C" fn __errno() -> *mut c_int {
     // SAFETY: C functions which call this are only called from the main thread, not from exception
     // handlers.
diff --git a/libs/libvmbase/src/layout.rs b/libs/libvmbase/src/layout.rs
index 9a702b0..cf3a8fc 100644
--- a/libs/libvmbase/src/layout.rs
+++ b/libs/libvmbase/src/layout.rs
@@ -14,6 +14,8 @@
 
 //! Memory layout.
 
+#![allow(unused_unsafe)]
+
 pub mod crosvm;
 
 use crate::linker::__stack_chk_guard;
diff --git a/libs/libvmbase/src/memory.rs b/libs/libvmbase/src/memory.rs
index fd4706f..9153706 100644
--- a/libs/libvmbase/src/memory.rs
+++ b/libs/libvmbase/src/memory.rs
@@ -26,9 +26,9 @@
 pub use page_table::PageTable;
 pub use shared::MemoryRange;
 pub use tracker::{
-    deactivate_dynamic_page_tables, init_shared_pool, map_data, map_device, map_image_footer,
-    map_rodata, map_rodata_outside_main_memory, resize_available_memory, unshare_all_memory,
-    unshare_all_mmio_except_uart, unshare_uart,
+    deactivate_dynamic_page_tables, init_shared_pool, map_data, map_data_noflush, map_device,
+    map_image_footer, map_rodata, map_rodata_outside_main_memory, resize_available_memory,
+    unshare_all_memory, unshare_all_mmio_except_uart, unshare_uart,
 };
 pub use util::{
     flush, flushed_zeroize, page_4kb_of, PAGE_SIZE, SIZE_128KB, SIZE_16KB, SIZE_2MB, SIZE_4KB,
diff --git a/libs/libvmbase/src/memory/tracker.rs b/libs/libvmbase/src/memory/tracker.rs
index 3416dc6..bbff254 100644
--- a/libs/libvmbase/src/memory/tracker.rs
+++ b/libs/libvmbase/src/memory/tracker.rs
@@ -132,6 +132,18 @@
     Ok(())
 }
 
+/// Map the provided range as normal memory, with R/W permissions.
+///
+/// Unlike `map_data()`, `deactivate_dynamic_page_tables()` will not flush caches for the range.
+///
+/// This fails if the range has already been (partially) mapped.
+pub fn map_data_noflush(addr: usize, size: NonZeroUsize) -> Result<()> {
+    let mut locked_tracker = try_lock_memory_tracker()?;
+    let tracker = locked_tracker.as_mut().ok_or(MemoryTrackerError::Unavailable)?;
+    let _ = tracker.alloc_mut_noflush(addr, size)?;
+    Ok(())
+}
+
 /// Map the region potentially holding data appended to the image, with read-write permissions.
 ///
 /// This fails if the footer has already been mapped.
@@ -294,7 +306,17 @@
         self.add(region)
     }
 
-    /// Maps the image footer read-write, with permissions.
+    fn alloc_range_mut_noflush(&mut self, range: &MemoryRange) -> Result<MemoryRange> {
+        let region = MemoryRegion { range: range.clone(), mem_type: MemoryType::ReadWrite };
+        self.check_allocatable(&region)?;
+        self.page_table.map_data(&get_va_range(range)).map_err(|e| {
+            error!("Error during non-flushed mutable range allocation: {e}");
+            MemoryTrackerError::FailedToMap
+        })?;
+        self.add(region)
+    }
+
+    /// Maps the image footer, with read-write permissions.
     fn map_image_footer(&mut self) -> Result<MemoryRange> {
         if self.image_footer_mapped {
             return Err(MemoryTrackerError::FooterAlreadyMapped);
@@ -318,6 +340,10 @@
         self.alloc_range_mut(&(base..(base + size.get())))
     }
 
+    fn alloc_mut_noflush(&mut self, base: usize, size: NonZeroUsize) -> Result<MemoryRange> {
+        self.alloc_range_mut_noflush(&(base..(base + size.get())))
+    }
+
     /// Checks that the given range of addresses is within the MMIO region, and then maps it
     /// appropriately.
     fn map_mmio_range(&mut self, range: MemoryRange) -> Result<()> {
diff --git a/libs/libvmbase/src/rand.rs b/libs/libvmbase/src/rand.rs
index b31bd4b..16c7b6a 100644
--- a/libs/libvmbase/src/rand.rs
+++ b/libs/libvmbase/src/rand.rs
@@ -18,7 +18,7 @@
 use core::fmt;
 use core::mem::size_of;
 use smccc::{self, Hvc};
-use zerocopy::AsBytes as _;
+use zerocopy::IntoBytes as _;
 
 type Entropy = [u8; size_of::<u64>() * 3];
 
diff --git a/libs/libvmclient/src/lib.rs b/libs/libvmclient/src/lib.rs
index c0baea5..8dd3cd3 100644
--- a/libs/libvmclient/src/lib.rs
+++ b/libs/libvmclient/src/lib.rs
@@ -312,6 +312,11 @@
             }
         })
     }
+
+    /// Opens a vsock connection to the CID of the VM on the given vsock port.
+    pub fn connect_vsock(&self, port: u32) -> BinderResult<ParcelFileDescriptor> {
+        self.vm.connectVsock(port as i32)
+    }
 }
 
 impl Debug for VmInstance {
diff --git a/libs/nested_virt/src/lib.rs b/libs/nested_virt/src/lib.rs
index b43fcb7..b2aea88 100644
--- a/libs/nested_virt/src/lib.rs
+++ b/libs/nested_virt/src/lib.rs
@@ -21,12 +21,21 @@
 
 /// Return whether we will be running our VM in a VM, which causes the nested VM to run very slowly.
 pub fn is_nested_virtualization() -> Result<bool> {
-    // Currently nested virtualization only occurs when we run KVM inside the cuttlefish VM.
-    // So we just need to check for vsoc.
-    if let Some(value) = system_properties::read("ro.product.vendor.device")? {
-        // Fuzzy matching to allow for vsoc_x86, vsoc_x86_64, vsoc_x86_64_only, ...
-        Ok(value.starts_with("vsoc_"))
-    } else {
-        Ok(false)
+    // Nested virtualization occurs when we run KVM inside the cuttlefish VM or when
+    // we run trusty within qemu.
+    let checks = [
+        ("ro.product.vendor.device", "vsoc_"), // vsoc_x86, vsoc_x86_64, vsoc_x86_64_only, ...
+        ("ro.hardware", "qemu_"),              // qemu_trusty, ...
+    ];
+
+    for (property, prefix) in checks {
+        if let Some(value) = system_properties::read(property)? {
+            if value.starts_with(prefix) {
+                return Ok(true);
+            }
+        }
     }
+
+    // No match -> not nested
+    Ok(false)
 }
diff --git a/libs/vmconfig/src/lib.rs b/libs/vmconfig/src/lib.rs
index ef932c2..e520f0e 100644
--- a/libs/vmconfig/src/lib.rs
+++ b/libs/vmconfig/src/lib.rs
@@ -133,6 +133,7 @@
                 .collect::<Result<_>>()?,
             consoleInputDevice: self.console_input_device.clone(),
             usbConfig: usb_config,
+            balloon: true,
             ..Default::default()
         })
     }
diff --git a/microfuchsia/microfuchsiad/src/instance_starter.rs b/microfuchsia/microfuchsiad/src/instance_starter.rs
index 8216039..e3c4e8d 100644
--- a/microfuchsia/microfuchsiad/src/instance_starter.rs
+++ b/microfuchsia/microfuchsiad/src/instance_starter.rs
@@ -86,6 +86,7 @@
             platformVersion: "1.0.0".into(),
             #[cfg(enable_console)]
             consoleInputDevice: Some("ttyS0".into()),
+            balloon: true,
             ..Default::default()
         });
         let vm_instance = VmInstance::create(
diff --git a/tests/benchmark/src/java/com/android/microdroid/benchmark/MicrodroidBenchmarks.java b/tests/benchmark/src/java/com/android/microdroid/benchmark/MicrodroidBenchmarks.java
index e2ee381..109c5e0 100644
--- a/tests/benchmark/src/java/com/android/microdroid/benchmark/MicrodroidBenchmarks.java
+++ b/tests/benchmark/src/java/com/android/microdroid/benchmark/MicrodroidBenchmarks.java
@@ -48,6 +48,7 @@
 import com.android.microdroid.test.device.MicrodroidDeviceTestBase;
 import com.android.microdroid.testservice.IBenchmarkService;
 import com.android.microdroid.testservice.ITestService;
+import com.android.virt.vm_attestation.testservice.IAttestationService;
 
 import org.junit.After;
 import org.junit.Before;
@@ -74,6 +75,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.OptionalLong;
+import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Function;
 
@@ -81,6 +83,7 @@
 public class MicrodroidBenchmarks extends MicrodroidDeviceTestBase {
     private static final String TAG = "MicrodroidBenchmarks";
     private static final String METRIC_NAME_PREFIX = getMetricPrefix() + "microdroid/";
+    private static final String VM_ATTESTATION_PAYLOAD = "libvm_attestation_test_payload.so";
     private static final int IO_TEST_TRIAL_COUNT = 5;
     private static final int TEST_TRIAL_COUNT = 5;
     private static final long ONE_MEBI = 1024 * 1024;
@@ -872,4 +875,56 @@
         }
         reportMetrics(vmKillTime, "vm_kill_time", "microsecond");
     }
+
+    @Test
+    public void requestAttestationTime() throws Exception {
+        assume().withMessage("Remote attestation is only supported on protected VM")
+                .that(mProtectedVm)
+                .isTrue();
+        assume().withMessage("Test needs Remote Attestation support")
+                .that(getVirtualMachineManager().isRemoteAttestationSupported())
+                .isTrue();
+
+        VirtualMachineConfig.Builder builder =
+                newVmConfigBuilderWithPayloadBinary(VM_ATTESTATION_PAYLOAD)
+                        .setDebugLevel(DEBUG_LEVEL_FULL)
+                        .setVmOutputCaptured(true);
+        VirtualMachineConfig config = builder.build();
+
+        List<Double> requestAttestationTime = new ArrayList<>(TEST_TRIAL_COUNT);
+
+        for (int i = 0; i < TEST_TRIAL_COUNT; ++i) {
+            VirtualMachine vm = forceCreateNewVirtualMachine("attestation_client", config);
+
+            vm.enableTestAttestation();
+            CompletableFuture<Exception> exception = new CompletableFuture<>();
+            CompletableFuture<Boolean> payloadReady = new CompletableFuture<>();
+            VmEventListener listener =
+                    new VmEventListener() {
+                        @Override
+                        public void onPayloadReady(VirtualMachine vm) {
+                            payloadReady.complete(true);
+                            try {
+                                IAttestationService service =
+                                        IAttestationService.Stub.asInterface(
+                                                vm.connectToVsockServer(IAttestationService.PORT));
+                                long start = System.nanoTime();
+                                service.requestAttestationForTesting();
+                                requestAttestationTime.add(
+                                        (double) (System.nanoTime() - start) / NANO_TO_MICRO);
+                                service.validateAttestationResult();
+                            } catch (Exception e) {
+                                exception.complete(e);
+                            } finally {
+                                forceStop(vm);
+                            }
+                        }
+                    };
+
+            listener.runToFinish(TAG, vm);
+            assertThat(payloadReady.getNow(false)).isTrue();
+            assertThat(exception.getNow(null)).isNull();
+        }
+        reportMetrics(requestAttestationTime, "request_attestation_time", "microsecond");
+    }
 }
diff --git a/tests/hostside/Android.bp b/tests/hostside/Android.bp
index 4878006..48e369c 100644
--- a/tests/hostside/Android.bp
+++ b/tests/hostside/Android.bp
@@ -8,6 +8,7 @@
     test_suites: [
         "cts",
         "general-tests",
+        "pts",
     ],
     libs: [
         "androidx.annotation_annotation",
diff --git a/tests/pvmfw/java/com/android/pvmfw/test/CustomPvmfwHostTestCaseBase.java b/tests/pvmfw/java/com/android/pvmfw/test/CustomPvmfwHostTestCaseBase.java
index 3116cc5..296604b 100644
--- a/tests/pvmfw/java/com/android/pvmfw/test/CustomPvmfwHostTestCaseBase.java
+++ b/tests/pvmfw/java/com/android/pvmfw/test/CustomPvmfwHostTestCaseBase.java
@@ -52,6 +52,7 @@
     public static final String VM_REFERENCE_DT_PATH = "/data/local/tmp/pvmfw/reference_dt.dtb";
 
     @NonNull public static final String MICRODROID_LOG_PATH = TEST_ROOT + "log.txt";
+    @NonNull public static final String MICRODROID_CONSOLE_PATH = TEST_ROOT + "console.txt";
     public static final int BOOT_COMPLETE_TIMEOUT_MS = 30000; // 30 seconds
     public static final int BOOT_FAILURE_WAIT_TIME_MS = 10000; // 10 seconds
     public static final int CONSOLE_OUTPUT_WAIT_MS = 5000; // 5 seconds
diff --git a/tests/pvmfw/java/com/android/pvmfw/test/DebugPolicyHostTests.java b/tests/pvmfw/java/com/android/pvmfw/test/DebugPolicyHostTests.java
index 7efbbc7..6a28d5e 100644
--- a/tests/pvmfw/java/com/android/pvmfw/test/DebugPolicyHostTests.java
+++ b/tests/pvmfw/java/com/android/pvmfw/test/DebugPolicyHostTests.java
@@ -248,6 +248,8 @@
                         "run-app",
                         "--log",
                         MICRODROID_LOG_PATH,
+                        "--console",
+                        MICRODROID_CONSOLE_PATH,
                         "--protected",
                         getPathForPackage(PACKAGE_NAME),
                         TEST_ROOT + "idsig",
diff --git a/tests/testapk/Android.bp b/tests/testapk/Android.bp
index 8314f43..cb374a5 100644
--- a/tests/testapk/Android.bp
+++ b/tests/testapk/Android.bp
@@ -15,15 +15,12 @@
 
 java_defaults {
     name: "MicrodroidTestAppsDefaults",
-    test_suites: [
-        "cts",
-        "vts",
-        "general-tests",
-    ],
     static_libs: [
+        "avf_aconfig_flags_java",
         "com.android.microdroid.testservice-java",
         "com.android.microdroid.test.vmshare_service-java",
         "com.android.virt.vm_attestation.testservice-java",
+        "platform-test-annotations",
     ],
     certificate: ":MicrodroidTestAppCert",
     sdk_version: "test_current",
@@ -64,17 +61,60 @@
     min_sdk_version: "33",
 }
 
+DATA = [
+    ":MicrodroidTestAppUpdated",
+    ":MicrodroidVmShareApp",
+    ":test_microdroid_vendor_image",
+    ":test_microdroid_vendor_image_unsigned",
+]
+
 android_test {
     name: "MicrodroidTestApp",
     defaults: ["MicrodroidVersionsTestAppDefaults"],
     manifest: "AndroidManifestV5.xml",
-    // Defined in ../vmshareapp/Android.bp
-    data: [
-        ":MicrodroidTestAppUpdated",
-        ":MicrodroidVmShareApp",
-        ":test_microdroid_vendor_image",
-        ":test_microdroid_vendor_image_unsigned",
-    ],
+    test_suites: ["general-tests"],
+    test_config: "AndroidTest.xml",
+    data: DATA,
+}
+
+android_test {
+    name: "MicrodroidTestApp.CTS",
+    defaults: ["MicrodroidVersionsTestAppDefaults"],
+    manifest: "AndroidManifestV5.xml",
+    test_suites: ["cts"],
+    test_config: ":MicrodroidTestApp.CTS.config",
+    data: DATA,
+}
+
+android_test {
+    name: "MicrodroidTestApp.VTS",
+    defaults: ["MicrodroidVersionsTestAppDefaults"],
+    manifest: "AndroidManifestV5.xml",
+    test_suites: ["vts"],
+    test_config: ":MicrodroidTestApp.VTS.config",
+    data: DATA,
+}
+
+genrule {
+    name: "MicrodroidTestApp.CTS.config",
+    srcs: ["AndroidTest.xml"],
+    out: ["out.xml"],
+    cmd: "sed " +
+        "-e 's/<!-- PLACEHOLDER_FOR_ANNOTATION -->/" +
+        "<option name=\"include-annotation\" value=\"com.android.compatibility.common.util.CddTest\" \\/>/' " +
+        "-e 's/MicrodroidTestApp.apk/MicrodroidTestApp.CTS.apk/' " +
+        "$(in) > $(out)",
+}
+
+genrule {
+    name: "MicrodroidTestApp.VTS.config",
+    srcs: ["AndroidTest.xml"],
+    out: ["out.xml"],
+    cmd: "sed " +
+        "-e 's/<!-- PLACEHOLDER_FOR_ANNOTATION -->/" +
+        "<option name=\"include-annotation\" value=\"com.android.compatibility.common.util.VsrTest\" \\/>/' " +
+        "-e 's/MicrodroidTestApp.apk/MicrodroidTestApp.VTS.apk/' " +
+        "$(in) > $(out)",
 }
 
 android_test_helper_app {
diff --git a/tests/testapk/AndroidTest.xml b/tests/testapk/AndroidTest.xml
index e490da4..221c25c 100644
--- a/tests/testapk/AndroidTest.xml
+++ b/tests/testapk/AndroidTest.xml
@@ -43,4 +43,6 @@
     <!-- Controller that will skip the module if a native bridge situation is detected -->
     <!-- For example: module wants to run arm and device is x86 -->
     <object type="module_controller" class="com.android.tradefed.testtype.suite.module.NativeBridgeModuleController" />
+
+    <!-- PLACEHOLDER_FOR_ANNOTATION -->
 </configuration>
diff --git a/tests/testapk/src/java/com/android/microdroid/test/MicrodroidTests.java b/tests/testapk/src/java/com/android/microdroid/test/MicrodroidTests.java
index b1485e3..e69b8f6 100644
--- a/tests/testapk/src/java/com/android/microdroid/test/MicrodroidTests.java
+++ b/tests/testapk/src/java/com/android/microdroid/test/MicrodroidTests.java
@@ -25,6 +25,8 @@
 import static android.system.virtualmachine.VirtualMachineManager.CAPABILITY_NON_PROTECTED_VM;
 import static android.system.virtualmachine.VirtualMachineManager.CAPABILITY_PROTECTED_VM;
 
+import static com.android.system.virtualmachine.flags.Flags.promoteSetShouldUseHugepagesToSystemApi;
+
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
 import static com.google.common.truth.TruthJUnit.assume;
@@ -52,6 +54,7 @@
 import android.os.ParcelFileDescriptor.AutoCloseInputStream;
 import android.os.ParcelFileDescriptor.AutoCloseOutputStream;
 import android.os.SystemProperties;
+import android.platform.test.annotations.RequiresFlagsEnabled;
 import android.system.OsConstants;
 import android.system.virtualmachine.VirtualMachine;
 import android.system.virtualmachine.VirtualMachineCallback;
@@ -69,6 +72,7 @@
 import com.android.microdroid.testservice.IAppCallback;
 import com.android.microdroid.testservice.ITestService;
 import com.android.microdroid.testservice.IVmCallback;
+import com.android.system.virtualmachine.flags.Flags;
 import com.android.virt.vm_attestation.testservice.IAttestationService.AttestationStatus;
 import com.android.virt.vm_attestation.testservice.IAttestationService.SigningResult;
 import com.android.virt.vm_attestation.util.X509Utils;
@@ -83,7 +87,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.function.ThrowingRunnable;
@@ -176,15 +179,19 @@
 
     private static final String VM_SHARE_APP_PACKAGE_NAME = "com.android.microdroid.vmshare_app";
 
-    private void createAndConnectToVmHelper(int cpuTopology) throws Exception {
+    private void createAndConnectToVmHelper(int cpuTopology, boolean shouldUseHugepages)
+            throws Exception {
         assumeSupportedDevice();
 
-        VirtualMachineConfig config =
+        VirtualMachineConfig.Builder builder =
                 newVmConfigBuilderWithPayloadBinary("MicrodroidTestNativeLib.so")
                         .setMemoryBytes(minMemoryRequired())
                         .setDebugLevel(DEBUG_LEVEL_FULL)
-                        .setCpuTopology(cpuTopology)
-                        .build();
+                        .setCpuTopology(cpuTopology);
+        if (promoteSetShouldUseHugepagesToSystemApi()) {
+            builder.setShouldUseHugepages(shouldUseHugepages);
+        }
+        VirtualMachineConfig config = builder.build();
         VirtualMachine vm = forceCreateNewVirtualMachine("test_vm", config);
 
         TestResults testResults =
@@ -211,13 +218,33 @@
     @Test
     @CddTest(requirements = {"9.17/C-1-1", "9.17/C-2-1"})
     public void createAndConnectToVm() throws Exception {
-        createAndConnectToVmHelper(CPU_TOPOLOGY_ONE_CPU);
+        createAndConnectToVmHelper(CPU_TOPOLOGY_ONE_CPU, /* shouldUseHugepages= */ false);
     }
 
     @Test
     @CddTest(requirements = {"9.17/C-1-1", "9.17/C-2-1"})
     public void createAndConnectToVm_HostCpuTopology() throws Exception {
-        createAndConnectToVmHelper(CPU_TOPOLOGY_MATCH_HOST);
+        createAndConnectToVmHelper(CPU_TOPOLOGY_MATCH_HOST, /* shouldUseHugepages= */ false);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_PROMOTE_SET_SHOULD_USE_HUGEPAGES_TO_SYSTEM_API)
+    public void createAndConnectToVm_WithHugepages() throws Exception {
+        // Note: setting shouldUseHugepages to true only hints that VM wants to use transparent huge
+        // pages. Whether it will actually be used depends on the value in the
+        // /sys/kernel/mm/transparent_hugepages/shmem_enabled.
+        // See packages/modules/Virtualization/docs/hugepages.md
+        createAndConnectToVmHelper(CPU_TOPOLOGY_ONE_CPU, /* shouldUseHugepages= */ true);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_PROMOTE_SET_SHOULD_USE_HUGEPAGES_TO_SYSTEM_API)
+    public void createAndConnectToVm_HostCpuTopology_WithHugepages() throws Exception {
+        // Note: setting shouldUseHugepages to true only hints that VM wants to use transparent huge
+        // pages. Whether it will actually be used depends on the value in the
+        // /sys/kernel/mm/transparent_hugepages/shmem_enabled.
+        // See packages/modules/Virtualization/docs/hugepages.md
+        createAndConnectToVmHelper(CPU_TOPOLOGY_MATCH_HOST, /* shouldUseHugepages= */ true);
     }
 
     @Test
@@ -580,6 +607,9 @@
         assertThat(minimal.getEncryptedStorageBytes()).isEqualTo(0);
         assertThat(minimal.isVmOutputCaptured()).isFalse();
         assertThat(minimal.getOs()).isEqualTo("microdroid");
+        if (promoteSetShouldUseHugepagesToSystemApi()) {
+            assertThat(minimal.shouldUseHugepages()).isFalse();
+        }
 
         // Maximal has everything that can be set to some non-default value. (And has different
         // values than minimal for the required fields.)
@@ -596,6 +626,9 @@
                         .setEncryptedStorageBytes(1_000_000)
                         .setVmOutputCaptured(true)
                         .setOs("microdroid_gki-android14-6.1");
+        if (promoteSetShouldUseHugepagesToSystemApi()) {
+            maximalBuilder.setShouldUseHugepages(true);
+        }
         VirtualMachineConfig maximal = maximalBuilder.build();
 
         assertThat(maximal.getApkPath()).isEqualTo("/apk/path");
@@ -612,6 +645,9 @@
         assertThat(maximal.getEncryptedStorageBytes()).isEqualTo(1_000_000);
         assertThat(maximal.isVmOutputCaptured()).isTrue();
         assertThat(maximal.getOs()).isEqualTo("microdroid_gki-android14-6.1");
+        if (promoteSetShouldUseHugepagesToSystemApi()) {
+            assertThat(maximal.shouldUseHugepages()).isTrue();
+        }
 
         assertThat(minimal.isCompatibleWith(maximal)).isFalse();
         assertThat(minimal.isCompatibleWith(minimal)).isTrue();
@@ -681,6 +717,10 @@
         assertConfigCompatible(
                         baseline, newBaselineBuilder().setCpuTopology(CPU_TOPOLOGY_MATCH_HOST))
                 .isTrue();
+        if (promoteSetShouldUseHugepagesToSystemApi()) {
+            assertConfigCompatible(baseline, newBaselineBuilder().setShouldUseHugepages(true))
+                    .isTrue();
+        }
 
         // Changes that must be incompatible, since they must change the VM identity.
         assertConfigCompatible(baseline, newBaselineBuilder().addExtraApk("foo")).isFalse();
@@ -1931,30 +1971,27 @@
         assertThat(checkVmOutputIsRedirectedToLogcat(true)).isTrue();
     }
 
-    private boolean setSystemProperties(String name, String value) {
+    private boolean isDebugPolicyEnabled(String entry) {
         Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
         UiAutomation uiAutomation = instrumentation.getUiAutomation();
-        String cmd = "setprop " + name + " " + (value.isEmpty() ? "\"\"" : value);
-        return runInShellWithStderr(TAG, uiAutomation, cmd).trim().isEmpty();
+        String cmd = "/apex/com.android.virt/bin/vm info";
+        String output = runInShellWithStderr(TAG, uiAutomation, cmd).trim();
+        for (String line : output.split("\\v")) {
+            if (line.matches("^.*Debug policy.*" + entry + ": true.*$")) {
+                return true;
+            }
+        }
+        return false;
     }
 
     @Test
-    @Ignore("b/372874464")
     public void outputIsNotRedirectedToLogcatIfNotDebuggable() throws Exception {
         assumeSupportedDevice();
 
-        // Disable debug policy to ensure no log output.
-        String sysprop = "hypervisor.virtualizationmanager.debug_policy.path";
-        String old = SystemProperties.get(sysprop);
-        assumeTrue(
-                "Can't disable debug policy. Perhapse user build?",
-                setSystemProperties(sysprop, ""));
+        // Debug policy shouldn't enable log
+        assumeFalse(isDebugPolicyEnabled("log"));
 
-        try {
-            assertThat(checkVmOutputIsRedirectedToLogcat(false)).isFalse();
-        } finally {
-            assertThat(setSystemProperties(sysprop, old)).isTrue();
-        }
+        assertThat(checkVmOutputIsRedirectedToLogcat(false)).isFalse();
     }
 
     @Test