Zim 17be6f999b Fix multi-user and multi-storage with FUSE
Up until now, the FUSE mount logic has made two assumptions:
1. The primary external volume is an emulated volume on /data/media
2. Only the primary user is running, as user zero

With this change, we are able to handle the following cases:
1. Mount new external storage volumes as as portable storage
(PublicVolume) managed by FUSE. The PublicVolume originally mounted on
/mnt/media_rw/<uuid> is availabe on /storage/<uuid> as a FUSE mount

2. Mount new external storage volumes as adoptable storage
(PrivateVolume) with a stacked EmulatedVolume managed by FUSE. The
EmulatedVolume orignally mounted on /mnt/expand/<uuid>/media will be
available on /storage/emulated if set as the primary storage

3. Run the MediaProvider as a secondary user handling requests on
/mnt/user/<userid>/<volid>

Test: atest AdoptableHostTest
Bug: 135341433
Bug: 140120303

Change-Id: I5fb48616b4143277ea14c6846037e2fd176e16db
2019-11-12 16:40:39 +00:00
..
2019-11-06 14:29:56 -08:00