diff --git a/app/src/androidTest/java/dev/threadline/LauncherIconTest.kt b/app/src/androidTest/java/dev/threadline/LauncherIconTest.kt
new file mode 100644
index 0000000..60e9956
--- /dev/null
+++ b/app/src/androidTest/java/dev/threadline/LauncherIconTest.kt
@@ -0,0 +1,20 @@
+package dev.threadline
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertNotNull
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class LauncherIconTest {
+ @Test
+ fun manifestUsesTemporaryLauncherArtwork() {
+ val context = InstrumentationRegistry.getInstrumentation().targetContext
+ val applicationInfo = context.packageManager.getApplicationInfo(context.packageName, 0)
+
+ assertEquals(R.mipmap.ic_launcher, applicationInfo.icon)
+ assertNotNull(context.getDrawable(applicationInfo.icon))
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1fdc613..196a76a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,8 +11,9 @@
android:allowBackup="false"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
- android:icon="@drawable/ic_terminal"
+ android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
+ android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="@style/Theme.Threadline"
android:usesCleartextTraffic="false">
diff --git a/app/src/main/res/drawable-nodpi/ic_launcher_artwork.webp b/app/src/main/res/drawable-nodpi/ic_launcher_artwork.webp
new file mode 100644
index 0000000..9753888
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/ic_launcher_artwork.webp differ
diff --git a/app/src/main/res/drawable/ic_launcher_adaptive_background.xml b/app/src/main/res/drawable/ic_launcher_adaptive_background.xml
new file mode 100644
index 0000000..46c2a1a
--- /dev/null
+++ b/app/src/main/res/drawable/ic_launcher_adaptive_background.xml
@@ -0,0 +1,5 @@
+
+
diff --git a/app/src/main/res/drawable/ic_launcher_adaptive_foreground.xml b/app/src/main/res/drawable/ic_launcher_adaptive_foreground.xml
new file mode 100644
index 0000000..133140b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_launcher_adaptive_foreground.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..7132519
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..e11abc8
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..1bac509
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..32a0110
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..29d53c3
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..1d95463
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/docs/STATUS.md b/docs/STATUS.md
index b143bab..b5b99dd 100644
--- a/docs/STATUS.md
+++ b/docs/STATUS.md
@@ -216,6 +216,13 @@ pass with gesture and three-button navigation. The three-button inset keeps More
clear of the side navigation bar. This work does not require a dedicated signed
alpha; Galaxy owner-device acceptance remains for the next shared candidate.
+The issue #38 source replaces the blank-looking white launcher glyph with the
+owner-supplied dark-and-green temporary artwork. Density-specific legacy icons
+and an adaptive icon keep the launcher and app-switcher identity recognizable;
+final brand design remains out of scope. This also does not require a dedicated
+signed alpha. In-place update and owner-device launcher-mask acceptance remain
+for the next shared candidate.
+
## Remaining Phase 5 boundaries
- Technical-alpha use sufficient to evaluate the Phase 5 exit criterion.