linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [LSF/MM TOPIC] Getting rid of Android's FUSE/wrapfs hackery
@ 2017-01-16  4:09 Theodore Ts'o
  0 siblings, 0 replies; only message in thread
From: Theodore Ts'o @ 2017-01-16  4:09 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: lsf-pc

For historical reasons, which may sound awful, but which stem from the
Android's team strong belief that they should never break userspace
(as seen from Android Applications' POV), even as the system evolves,
things like /sdcard access are emulated using a FUSE interface, and
then when that ran into performance limitations, some of the Android
handset vendors have been trying to use a wrapfs based "solution"
instead.  The wrapfs solution is ugly, fragile, and will probably
never make it upstream.

The original problem comes from the fact /sdcard was a FAT file
system, which meant that it had case insensitive lookups and it didn't
have Unix permission semantics.  The actual storage of the /sdcard now
lives on a f2fs or ext4 partition, and and the original "FAT-ness" of
/sdcard is simulated via a FUSE or a wrapfs layer.  Worse, in newer
versions of Android, the FUSE layer was used to implement Android
application permission (which are essentially dynamic capalities which
are granted when the user is asked whether or not to allow the
application to have access to the user's photos, external storage,
etc.), at least as they relate to storage.

I'd like to talk about how we might be able to provide something
maintainable from an upstream perspective that can provide the
functionality which the Android system needs to offer to its
applications.  We've talked about trying to solve case insensitive
lookups in the kernel before; that's fairly straightforward,
especially since the FUSE implementations and wrapfs implementations
I've seen only do ASCII case folding and completely punt on the
Unicode aspect of I18N.

But I think it should be possible to provide the other requirements of
the Android storage semantics with minimal changes to the VFS layer,
as well as using more standard tools in the upstream kernel
developers' toolbox, such as a stackable LSM for the application-level
permissions handling.

						- Ted

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2017-01-16  4:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-16  4:09 [LSF/MM TOPIC] Getting rid of Android's FUSE/wrapfs hackery Theodore Ts'o

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).