diff --git a/apps/darkroom-android/android/AndroidManifest.xml b/apps/darkroom-android/android/AndroidManifest.xml
index 6df6aba..45e42af 100644
--- a/apps/darkroom-android/android/AndroidManifest.xml
+++ b/apps/darkroom-android/android/AndroidManifest.xml
@@ -4,9 +4,10 @@
Deliberately minimal: this packages the viewer for on-device testing (spike
S2 needs Adreno and Mali hardware, which no emulator represents). Nothing
- here is a distribution manifest yet. Only network access is declared: file
- access needs no manifest permission because the library grid reads through
- SAF, which grants per-tree at runtime (ARCH §6.9).
+ here is a distribution manifest yet. The library grid needs no storage
+ permission, because it reads through SAF, which grants per-tree at runtime
+ (ARCH §6.9); the one storage permission declared is for importing from a
+ camera card, which is read by path.
Minimal is not the same as empty, and the entries below that are not the
activity are the difference. A manifest is the only place a component can be
@@ -21,13 +22,29 @@
WebDAV listing, thumbnail and image fetches. Without it Android refuses
socket creation outright, and the failure is invisible — no panic to
catch, no log line, just a worker thread that stops. Storage is the
- separate case that genuinely needs no permission here, because SAF
- grants per-tree at runtime (ARCH §6.9). -->
+ separate case: the library and album folders need no permission
+ here, because SAF grants per-tree at runtime (ARCH §6.9). -->
+
+
+
+
@@ -53,6 +70,7 @@
android:icon="@mipmap/ic_launcher"
android:hasCode="true"
android:allowBackup="false"
+ android:requestLegacyExternalStorage="true"
android:supportsRtl="true">