Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 023e1e45 authored by Martijn Coenen's avatar Martijn Coenen Committed by Android (Google) Code Review
Browse files

Merge "Determine pass_through mount mode based on UID."

parents 65d3c6d9 44db1aca
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -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;
            }