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
Loading
Please register or sign in to comment