Skip to content
Commit 94346f2b authored by Robert Horvath's avatar Robert Horvath
Browse files

Skip storage sessions for users without ExternalStorageService

When a volume is mounted, StorageSessionController currently attempts to
bind to the ExternalStorageService to create a storage session.
If a user does not provide an ExternalStorageService (ie. does not have
com.android.providers.media.module installed), binding to the service
and creating the session for that user fails, an
ExternalStorageServiceException is thrown and StorageManagerService
resets.
After the reset, it retries mounting volumes for each user, so
ExternalStorageServiceException is thrown repeatedly,
and android.intent.action.MEDIA_MOUNTED is broadcast
for users where mounting succeeds repeatedly.

With this change, mounting emulated volumes is skipped if the target
user does not provide an ExternalStorageService, skipping creating the
FUSE volume and the attempt to bind to the ExternalStorageService to
create a storage session.

Bug: 188080785
Test: Create profile without com.android.providers.media.module,
      verify volume ignored for profile,
      no ExternalStorageServiceException thrown,
      android.intent.action.MEDIA_MOUNTED not repeatedly broadcast.
      Verify no change if package is installed in user.
Test: atest AdoptableHostTest
Change-Id: Iaedef3e49655bc5456e6149b634cddc875668fc8
parent acd597a5
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment