diff options
author | Martijn Coenen <maco@google.com> | 2019-12-04 04:10:00 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-12-04 04:10:00 +0000 |
commit | 023e1e453bb97c683be69d25f97510f8ddb96b48 (patch) | |
tree | f830c1b3aaeef7b47339efe0a5fe4c22e1f5fd7b | |
parent | 65d3c6d9177fec9880ba666e79206b30b10834d6 (diff) | |
parent | 44db1aca43ebb02b04b46cca2e5c09e0ff025c7f (diff) |
Merge "Determine pass_through mount mode based on UID."
-rw-r--r-- | services/core/java/com/android/server/StorageManagerService.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 9d1eb6cb5326..d4889ea9f880 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -355,8 +355,7 @@ class StorageManagerService extends IStorageManager.Stub @GuardedBy("mLock") private String mMoveTargetUuid; - @Nullable - private volatile String mMediaStoreAuthorityPackageName = null; + private volatile int mMediaStoreAuthorityAppId = -1; private volatile int mCurrentUserId = UserHandle.USER_SYSTEM; @@ -1725,7 +1724,7 @@ class StorageManagerService extends IStorageManager.Stub | PackageManager.MATCH_DIRECT_BOOT_UNAWARE, UserHandle.getUserId(UserHandle.USER_SYSTEM)); if (provider != null) { - mMediaStoreAuthorityPackageName = provider.packageName; + mMediaStoreAuthorityAppId = UserHandle.getAppId(provider.applicationInfo.uid); } try { @@ -3752,8 +3751,10 @@ class StorageManagerService extends IStorageManager.Stub return Zygote.MOUNT_EXTERNAL_NONE; } - if (mIsFuseEnabled && packageName.equals(mMediaStoreAuthorityPackageName)) { - // Determine if caller requires pass_through mount + if (mIsFuseEnabled && mMediaStoreAuthorityAppId == UserHandle.getAppId(uid)) { + // Determine if caller requires pass_through mount; note that we do this for + // all processes that share a UID with MediaProvider; but this is fine, since + // those processes anyway share the same rights as MediaProvider. return Zygote.MOUNT_EXTERNAL_PASS_THROUGH; } |