[vlc-devel] [PATCH] Android: fix external storage on Verizon Galaxy Note 3
Ronald Wright
logiconcepts819 at gmail.com
Sun Mar 23 16:00:42 CET 2014
Commit 50c3e09043c4dfc8683eb1131fba3598f3f118e2 introduced a change that broke
detection of external storage on the Verizon Galaxy Note 3. This is because
the new code expects to find a line in /proc/mounts that looks like the
following:
shell at hlte:/ $ mount | grep storage
/mnt/media_rw/extSdCard /storage/extSdCard sdcardfs rw,nosuid,nodev,relatime,uid=1023,gid=1023 0 0
However, on the Verizon Galaxy Note 3, the line looks like the following:
shell at hltevzw:/ $ mount | grep storage
/dev/block/vold/179:65 /storage/extSdCard vfat rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1023,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /storage/extSdCard/.android_secure tmpfs ro,seclabel,relatime,size=0k,mode=000 0 0
This patch fixes the issue.
---
vlc-android/src/org/videolan/vlc/Util.java | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/vlc-android/src/org/videolan/vlc/Util.java b/vlc-android/src/org/videolan/vlc/Util.java
index b679fd6..4cdc361 100644
--- a/vlc-android/src/org/videolan/vlc/Util.java
+++ b/vlc-android/src/org/videolan/vlc/Util.java
@@ -429,6 +429,7 @@ public class Util {
ArrayList<String> list = new ArrayList<String>();
list.add(Environment.getExternalStorageDirectory().getPath());
String line;
+ boolean addedExtSdCard = false;
while((line = bufReader.readLine()) != null) {
if(line.contains("vfat") || line.contains("exfat") ||
line.contains("sdcardfs") || line.contains("/mnt") ||
@@ -440,17 +441,23 @@ public class Util {
if (list.contains(s))
continue;
- if (line.contains("extSdCard") && line.contains("sdcardfs"))
+ if (line.contains("extSdCard") && line.contains("sdcardfs") && !addedExtSdCard) {
+ addedExtSdCard = true;
list.add(s);
- else if (line.contains("/dev/block/vold") && !line.contains("extSdCard")) {
- if (!line.startsWith("tmpfs") &&
- !line.startsWith("/dev/mapper") &&
- !s.startsWith("/mnt/secure") &&
- !s.startsWith("/mnt/shell") &&
- !s.startsWith("/mnt/asec") &&
- !s.startsWith("/mnt/obb")
- ) {
- list.add(s);
+ }
+ else if (line.contains("/dev/block/vold")) {
+ boolean isExtSdCardEntry = line.contains("extSdCard");
+ if (!isExtSdCardEntry || !addedExtSdCard) {
+ if (!line.startsWith("tmpfs") &&
+ !line.startsWith("/dev/mapper") &&
+ !s.startsWith("/mnt/secure") &&
+ !s.startsWith("/mnt/shell") &&
+ !s.startsWith("/mnt/asec") &&
+ !s.startsWith("/mnt/obb")
+ ) {
+ addedExtSdCard = addedExtSdCard || isExtSdCardEntry;
+ list.add(s);
+ }
}
}
}
--
1.8.3.2
More information about the vlc-devel
mailing list