Merge "Determine pass_through mount mode based on UID."
This commit is contained in:
committed by
Android (Google) Code Review
commit
023e1e453b
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user