From 33fbdb643dbc7ff4e05fc05a8d690355c3d2840c Mon Sep 17 00:00:00 2001 From: Alexis THOMAS Date: Thu, 24 Aug 2023 23:15:41 +0200 Subject: [PATCH 1/2] feat(android): read-write is allowed for app dirs on external sd cards --- src/android/FileUtils.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/android/FileUtils.java b/src/android/FileUtils.java index de973da8..c0614dc9 100644 --- a/src/android/FileUtils.java +++ b/src/android/FileUtils.java @@ -625,6 +625,9 @@ private boolean needPermission(String nativeURL, int permissionType) throws JSON if(j.has("externalApplicationStorageDirectory")) { allowedStorageDirectories.add(j.getString("externalApplicationStorageDirectory")); } + ArrayList allowedExtraPatternStorageDirectories = new ArrayList(); + // basic pattern for usual application storage directory, to extend the allowed list to external SD cards for example + allowedExtraPatternStorageDirectories.add("/Android/data/" + cordova.getActivity().getPackageName() + "/"); if(permissionType == READ && hasReadPermission()) { return false; @@ -639,6 +642,11 @@ else if(permissionType == WRITE && hasWritePermission()) { return false; } } + for (String extraPatternDirectory : allowedExtraPatternStorageDirectories) { + if (nativeURL.contains(extraPatternDirectory)) { + return false; + } + } return true; } From c4c380b465ace4177a02a2d174bb436398838bb0 Mon Sep 17 00:00:00 2001 From: Alexis THOMAS Date: Thu, 24 Aug 2023 23:16:15 +0200 Subject: [PATCH 2/2] docs(android): update Device Path for applicationStorageDirectory --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 76a40234..cb0aedf9 100644 --- a/README.md +++ b/README.md @@ -156,7 +156,7 @@ the `cordova.file.*` properties map to physical paths on a real device. | Device Path | `cordova.file.*` | `AndroidExtraFileSystems` | r/w? | persistent? | OS clears | private | |:------------------------------------------------|:----------------------------|:--------------------------|:----:|:-----------:|:---------:|:-------:| | `file:///android_asset/` | applicationDirectory | assets | r | N/A | N/A | Yes | -| `/data/data//` | applicationStorageDirectory | - | r/w | N/A | N/A | Yes | +| `/Android/data//` | applicationStorageDirectory | - | r/w | N/A | N/A | Yes | |    `cache` | cacheDirectory | cache | r/w | Yes | Yes\* | Yes | |    `files` | dataDirectory | files | r/w | Yes | No | Yes | |       `Documents` | | documents | r/w | Yes | No | Yes |