Submission + - Why doesn't Android support Linux filesystems for removable storage? 1
Pale Dot writes: After weeks of struggle I finally figured out a way for the apps on my rooted Android tablet to recognize an SD card I had formatted as Ext4 but with the default journaling option turned off. The problem at first was getting the SD card to mount at all (technically this was the "external" SD card as the tablet also has a built-in "internal" SD card). Apparently, the Android automount facility, the evil-sounding vold daemon, does not support any filesystem besides Microsoft's VFAT. From various online sources, I learned that the CyanogenMod Linux 3.x kernel itself does support mounting Ext4, at least via the terminal "mount -t ext4" command.
A second problem soon cropped up. Apps, such as VLC and the AardDict offline dictionary, that rely on some sort of automagic scanning of the device storage space would not index the media and database files I copied to the SD card. It turns out that the simple solution, or the "hack" as it stands, is to mount the SD card under the directory created for the internal VFAT-formatted SD card, i.e. as "/storage/sdcard0/extsd" rather than the more direct "/storage/sdcard1". This works probably because subdirectories inherit the file permissions of the parent.
As part of my Google (re)search into the problem, I came upon this Google+ post by an Android developer curiously named Dianne Hackborn about the design decision not to support anything besides the Redmond-certified filesystem: "The external storage when on a SD card is FAT. Period. You are just going to cause yourself a mess if you try to do otherwise. The basic semantics of how external storage is used relies on it being fat — no permissions, case insensitive, etc."
So, is Google right about not supporting Ext2/3/4 for removable flash media, even if the base system itself often uses one of these Linux-native filesystems? Supposed issues about the frequent media access needed by a journalised filesystem don't apply to Ext2, which has no journal, or Ext4, which has an "-O ^has_journal" (no journal) formatting option. Perplexing still is that my tablet is advertised as having support for yet another Microsoft-patented invention, the ExFat filesystem. Unfortunately, there's still no way for a non-rooted Android tablet or smartphone to mount an SD card formatted as Ext2 or Ext4.
A second problem soon cropped up. Apps, such as VLC and the AardDict offline dictionary, that rely on some sort of automagic scanning of the device storage space would not index the media and database files I copied to the SD card. It turns out that the simple solution, or the "hack" as it stands, is to mount the SD card under the directory created for the internal VFAT-formatted SD card, i.e. as "/storage/sdcard0/extsd" rather than the more direct "/storage/sdcard1". This works probably because subdirectories inherit the file permissions of the parent.
As part of my Google (re)search into the problem, I came upon this Google+ post by an Android developer curiously named Dianne Hackborn about the design decision not to support anything besides the Redmond-certified filesystem: "The external storage when on a SD card is FAT. Period. You are just going to cause yourself a mess if you try to do otherwise. The basic semantics of how external storage is used relies on it being fat — no permissions, case insensitive, etc."
So, is Google right about not supporting Ext2/3/4 for removable flash media, even if the base system itself often uses one of these Linux-native filesystems? Supposed issues about the frequent media access needed by a journalised filesystem don't apply to Ext2, which has no journal, or Ext4, which has an "-O ^has_journal" (no journal) formatting option. Perplexing still is that my tablet is advertised as having support for yet another Microsoft-patented invention, the ExFat filesystem. Unfortunately, there's still no way for a non-rooted Android tablet or smartphone to mount an SD card formatted as Ext2 or Ext4.