diff --git a/android/TerminalApp/generate_assets.sh b/android/TerminalApp/generate_assets.sh
index ff7444e..4001bfd 100755
--- a/android/TerminalApp/generate_assets.sh
+++ b/android/TerminalApp/generate_assets.sh
@@ -6,14 +6,15 @@
     echo "image.raw can be built with packages/modules/Virtualization/build/debian/build.sh"
     exit 1
 fi
+image_raw_path=$(realpath $1)
 pushd $(dirname $0) > /dev/null
 tempdir=$(mktemp -d)
 asset_dir=./assets/linux
 mkdir -p ${asset_dir}
 echo Copy files...
 pushd ${tempdir} > /dev/null
-cp "$1" ${tempdir}
-tar czvS -f images.tar.gz $(basename $1)
+cp "${image_raw_path}" ${tempdir}
+tar czvS -f images.tar.gz $(basename ${image_raw_path})
 popd > /dev/null
 cp vm_config.json ${asset_dir}
 mv ${tempdir}/images.tar.gz ${asset_dir}
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt
index 4be291f..1b14ef2 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt
@@ -16,27 +16,49 @@
 package com.android.virtualization.terminal
 
 import android.os.Bundle
+import android.os.FileUtils
 import android.widget.TextView
 import android.widget.Toast
+import android.text.style.RelativeSizeSpan
+import android.text.Spannable
+import android.text.SpannableString
+import android.text.Spanned
+import android.text.format.Formatter
+import android.text.TextUtils
 import androidx.appcompat.app.AppCompatActivity
 import androidx.core.view.isVisible
 import com.google.android.material.button.MaterialButton
 import com.google.android.material.slider.Slider
 
+import java.util.regex.Matcher
+import java.util.regex.Pattern
+
 class SettingsDiskResizeActivity : AppCompatActivity() {
+    private val maxDiskSize: Float = 256F
+    private val numberPattern: Pattern = Pattern.compile("[\\d]*[\\٫.,]?[\\d]+");
     private var diskSize: Float = 104F
+
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.settings_disk_resize)
-        val diskSizeText = findViewById<TextView>(R.id.settings_disk_resize_disk_size)
+        val diskSizeText = findViewById<TextView>(R.id.settings_disk_resize_resize_gb_assigned)
+        val diskMaxSizeText = findViewById<TextView>(R.id.settings_disk_resize_resize_gb_max)
+        diskMaxSizeText.text = getString(R.string.settings_disk_resize_resize_gb_max_format,
+            localizedFileSize(maxDiskSize));
+
         val diskSizeSlider = findViewById<Slider>(R.id.settings_disk_resize_disk_size_slider)
+        diskSizeSlider.setValueTo(maxDiskSize)
         val cancelButton = findViewById<MaterialButton>(R.id.settings_disk_resize_cancel_button)
         val resizeButton = findViewById<MaterialButton>(R.id.settings_disk_resize_resize_button)
-        diskSizeText.text = diskSize.toInt().toString()
         diskSizeSlider.value = diskSize
+        diskSizeText.text = enlargeFontOfNumber(
+            getString(R.string.settings_disk_resize_resize_gb_assigned_format,
+            localizedFileSize(diskSize)))
 
         diskSizeSlider.addOnChangeListener { _, value, _ ->
-            diskSizeText.text = value.toInt().toString()
+            diskSizeText.text = enlargeFontOfNumber(
+                getString(R.string.settings_disk_resize_resize_gb_assigned_format,
+                localizedFileSize(value)))
             cancelButton.isVisible = true
             resizeButton.isVisible = true
         }
@@ -54,4 +76,29 @@
                 .show()
         }
     }
+
+    fun localizedFileSize(sizeGb: Float): String {
+        // formatShortFileSize() uses SI unit (i.e. kB = 1000 bytes),
+        // so covert sizeGb with "GB" instead of "GIB".
+        val bytes = FileUtils.parseSize(sizeGb.toLong().toString() + "GB")
+        return Formatter.formatShortFileSize(this, bytes)
+    }
+
+    fun enlargeFontOfNumber(summary: CharSequence): CharSequence {
+        if (TextUtils.isEmpty(summary)) {
+            return ""
+        }
+
+        val matcher = numberPattern.matcher(summary);
+        if (matcher.find()) {
+            val spannableSummary = SpannableString(summary)
+            spannableSummary.setSpan(
+                    RelativeSizeSpan(2f),
+                    matcher.start(),
+                    matcher.end(),
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
+            return spannableSummary
+        }
+        return summary
+    }
 }
\ No newline at end of file
diff --git a/android/TerminalApp/res/layout/settings_disk_resize.xml b/android/TerminalApp/res/layout/settings_disk_resize.xml
index 3c09f52..f868b28 100644
--- a/android/TerminalApp/res/layout/settings_disk_resize.xml
+++ b/android/TerminalApp/res/layout/settings_disk_resize.xml
@@ -21,27 +21,19 @@
         android:layout_height="match_parent">
 
         <TextView
-            android:id="@+id/settings_disk_resize_disk_size"
+            android:id="@+id/settings_disk_resize_resize_gb_assigned"
             android:layout_height="wrap_content"
             android:layout_width="wrap_content"
-            android:textSize="36sp"
-            app:layout_constraintLeft_toLeftOf="parent"
+            android:textSize="14sp"
+            app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintBottom_toTopOf="@+id/settings_disk_resize_disk_size_slider"/>
 
         <TextView
+            android:id="@+id/settings_disk_resize_resize_gb_max"
             android:layout_height="wrap_content"
             android:layout_width="wrap_content"
-            android:text="@string/settings_disk_resize_resize_gb_assigned"
             android:textSize="14sp"
-            app:layout_constraintLeft_toRightOf="@+id/settings_disk_resize_disk_size"
-            app:layout_constraintBottom_toTopOf="@+id/settings_disk_resize_disk_size_slider"/>
-
-        <TextView
-            android:layout_height="wrap_content"
-            android:layout_width="wrap_content"
-            android:text="@string/settings_disk_resize_resize_gb_total"
-            android:textSize="14sp"
-            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintBottom_toTopOf="@+id/settings_disk_resize_disk_size_slider"/>
 
         <com.google.android.material.slider.Slider
@@ -51,7 +43,6 @@
             android:layout_marginBottom="36dp"
             app:tickVisible="false"
             android:valueFrom="0"
-            android:valueTo="256"
             android:stepSize="4"
             app:layout_constraintTop_toTopOf="parent"
             app:layout_constraintBottom_toBottomOf="parent" />
@@ -65,7 +56,7 @@
             android:layout_marginHorizontal="8dp"
             app:layout_constraintTop_toTopOf="@+id/settings_disk_resize_disk_size_slider"
             app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintRight_toLeftOf="@+id/settings_disk_resize_resize_button" />
+            app:layout_constraintEnd_toStartOf="@+id/settings_disk_resize_resize_button" />
 
         <com.google.android.material.button.MaterialButton
             android:id="@+id/settings_disk_resize_resize_button"
@@ -76,6 +67,6 @@
             android:layout_marginHorizontal="8dp"
             app:layout_constraintTop_toTopOf="@+id/settings_disk_resize_disk_size_slider"
             app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintRight_toRightOf="parent" />
+            app:layout_constraintEnd_toEndOf="parent" />
     </androidx.constraintlayout.widget.ConstraintLayout>
 </LinearLayout>
\ No newline at end of file
diff --git a/android/TerminalApp/res/values/strings.xml b/android/TerminalApp/res/values/strings.xml
index 6ae5b7b..d3670d2 100644
--- a/android/TerminalApp/res/values/strings.xml
+++ b/android/TerminalApp/res/values/strings.xml
@@ -33,10 +33,10 @@
     <string name="settings_disk_resize_sub_title">Resize / Rootfs</string>
     <!-- Toast message after new disk size is set. [CHAR LIMIT=none] -->
     <string name="settings_disk_resize_resize_message">Disk size set</string>
-    <!-- Settings menu option description for the current disk size, followed by a text box with the actual number [CHAR LIMIT=none] -->
-    <string name="settings_disk_resize_resize_gb_assigned">GB Assigned</string>
-    <!-- Settings menu option description for the maximum resizable disk size. [CHAR LIMIT=none] -->
-    <string name="settings_disk_resize_resize_gb_total">256 GB total</string>
+    <!-- Settings menu option description format of the current disk size. [CHAR LIMIT=none] -->
+    <string name="settings_disk_resize_resize_gb_assigned_format"><xliff:g id="assigned_size" example="10GB">%1$s</xliff:g> assigned</string>
+    <!-- Settings menu option description format of the maximum resizable disk size. [CHAR LIMIT=none] -->
+    <string name="settings_disk_resize_resize_gb_max_format"><xliff:g id="max_size" example="256GB">%1$s</xliff:g> max</string>
     <!-- Settings menu button to cancel disk resize. [CHAR LIMIT=32] -->
     <string name="settings_disk_resize_resize_cancel">Cancel</string>
     <!-- Settings menu button to apply change that requires to restart VM (abbrev of virtual machine). [CHAR LIMIT=64] -->
