Recently with the deprecation of sdcardfs and the fact the maintaining the file-system is pretty time-consuming especially when it comes to maintaining it alongside the Google's common source (or Google LTS) , I am trying to find another way to fix the apps can't read data & obb problem. By looking at what ChromeOS and Project Celadon did, I realized that they are reusing an old file-system called "esdfs" which dated before sdcardfs and being used to mount on top of the data file-system, as an example from some devices dmesg
[ 32.441432,2] ESDFS-fs (esdfs): mounted on top of /data/media type f2fs
[ 32.441497,2] SELinux: initialized (dev esdfs, type esdfs), uses genfs_contexts
[ 32.441793,2] ESDFS-fs (esdfs): mounted on top of /data/media type f2fs
[ 32.441819,2] SELinux: initialized (dev esdfs, type esdfs), uses genfs_contexts
[ 32.442040,2] ESDFS-fs (esdfs): mounted on top of /data/media type f2fs
[ 32.442063,2] SELinux: initialized (dev esdfs, type esdfs), uses genfs_contexts
It turns out bring back esdfs is not a difficult problem, you just need to go to ChromiumOS's third-party kernel source to find, Google did everything so we just need to cherry-pick it
For example, here is the kernel 5.15 source
2 commits for the driver, and a commit for PKGLIST, esdfs require this driver
I compiled the modules with a kernel of mine that is based on Google's common kernel + some Android-x86 patches. It does compile and the file-system does showed up when I check /proc/filesystems (also logcat showed it got "registered"). But there is no sign of Android picking it up and use so far. I know that Chih-Wei back then have a commit on system/core that basically revert esdfs support and bring back FUSE, I revert it and it esdfs still not picking up.
Even when set ro.sys.sdcardfs to false like this commit told nothing happened. So I wonder if we can find a way to use it so that we can see if it can helped us with the apps permission issue. I am building r-x86, more specifically a Lineage-based ROM which I ported to x86