Short Bytes: Google is preparing to refashion the way Android handles the “sdcard” virtual partition. Earlier, it was maintained with FUSE. But various imperfections, including greater I/O overhead, double caching, and incorrect timestamp for files, compelled Google to switch to SDCardFS which is already used by its original creator Samsung.The netizens were delighted when Google uncovered new features with the announcement of the Android O developer preview a couple of weeks ago. But, there are some under-the-hood changes that the Mountain View isn’t flaunting much.
Spotted by XDA Developers, taking clues (see comments) from senior member cgutman (Cameron Gutman), is a kernel level change pointing towards the replacement of FUSE by SDCardFS (read more about FUSE and SDCardsFS below). Since Android 4.4, Google was using FUSE (Filesystem in Userspace) to emulate FAT32 on the “sdcard” virtual partition.
Here is the mount command output on a Google Pixel running Nougat 7.1.2 (rooted) and Android O Developer Preview 1:
“As you can see in the later output, /storage/emulated is now mounted as type “sdcardfs” which previously was not the case in Android Nougat,” Mishaal Rahman writes in his XDA post.
The main purpose of SDCardFS is the same, emulating FAT-on-sdcard style directory permissions on Android. This allows Android apps to access data on external storage — it refers to both physical SDCard and the internal virtual SDCard — without requiring any permissions.
Granting data read access permissions to all apps would put sensitive user data at risk. So, FUSE was introduced to grant data access to apps by making necessary arrangements. Now, this work would be done by SDCardFS.
However, SDCardFS addresses a bunch of FUSE’s shortcomings (read more here in detail), which contribute to performance degradation, by reducing I/O overhead, eliminating double caching, and taking care of incorrect timestamps (incorrect time information when we transfer files, for example, photos and videos, to Android).
SDCardFS handles the I/O access for /sdcard — Android’s external storage. As one might assume from its name, it is not a mainstream filesystem but a “stackable wrapper filesystem that passes commands to the lower, emulated file systems”, such as FAT32. Also, it isn’t something freshly baked.
The creator of SDCardFS, Samsung, implemented it years ago. Huawei and OnePlus are among the early adopters. The FUSE replacement solution has also been included by devs in various custom ROMs after it was introduced to AOSP last year. Google deploying SDCardFS would generalize it across the Android ecosystem.
The latest change won’t affect the daily lives of average Android users like us. And SDCardFS being an in-kernel solution makes it possible for Google to push it without upgrading the Android version. But as the speculations are made, the changes are likely to be seen with the release of Android O.
If you have something to add, drop your thoughts and feedback.