I currently have an Android phone, but I pre-ordered a Librem phone. However, I ran into some issues with the SD card file system support on Android and would like Purism to think about SD card and supported file systems for the Librem Phone. Next I will provide a use case based on my experience with Android. The indent is, that Purism can do a better job implementing SD card file system support on the Librem Phone.
My objective was to have Wikipedia offline on my phone. The reason being I need Wikipedia quite a lot while travelling to lookup different things I encounter (airports, cities, trains, buses, museums, historical sites etc.). The issue is, that I often do not have a great internet connection or no internet connection at all, while travelling. Additionally, internet packages for the phone can be really expensive.
My idea was to simply download and install the entire Wikipedia (without videos) on my phone. Today, SD cards are cheap and offer a lot of storage. My plan was:
- buy a SD card with a lot of storage
- download Wikipedia
- install an application to read the Wikipedia
I came across the Kiwix project, which offers the entire Wikipedia and other projects as compressed ZIM files. In addition, a Kiwix reader for Android can be found on F-Droid.
I started to execute my plan:
- I downloaded the English Wikipedia (84 GB) via torrent.
- Bought a SD card with a total capacity of around 250 GB
- Formatted the SD card using the F2FS file system.
The last point was when the trouble started. Yes, my phone accepted the F2FS supported card, with an error I ignored at first. I use Linage OS 16, which supports F2FS in the kernel, no problem here.
Then I decided to first run a test with a music file and a PDF file, just to see if it works. I copied them over from my laptop on to my SD card (using SD card reader on my laptop). I was able to see the files, but when I tried to open them I got an error. The error was that the file path does not exist. I ran the same test with NTFS, ext4 and exFAT. No success, always the same behaviour. I even used smaller SD cards (32 GB and 64 GB), just to make sure there is no issue with my 250 GB SD card.
Frustrated with the negative results I decided to format the SD card via Android, instead of using GParted or GNOME Disks on my laptop. The result was that Android uses FAT32 by default. The issue with FAT32 is, the maximum file size is limited to 4 GB. Therefore, there is no chance for me to copy over a 84 GB file. Regardless, I tried it and got the expected result. The copy process simply stopped at 4 GB.
Keep in mind that FAT32 was used first introduced in Windows 95 (year: 1996). How can such an file system be used for SD cards in 2019. We have several better alternatives. In addition, my internal phone storage is formatted using ext4.
The only issue with file systems such as ext4 and F2FS is, they use a permission system. However, a solution would be to simply change the file permissions/owner to the phone user, every time the SD card is inserted in the phone. Maybe there is a better solution.
My request to Purism is, please allow to use external SD card formatted with a more modern file system. A file system which can handle files bigger than 4 GB and supports Unicode names. I really want to have the offline Wikipedia on my future Librem phone.