diff --git a/apps/files_sharing/lib/Controller/ShareInfoController.php b/apps/files_sharing/lib/Controller/ShareInfoController.php
index 5ecf00321fcfd1d25092ea779b3963e8532dcffa..5aea32fe0640a9f6a8e49566575655b229fc8c28 100644
--- a/apps/files_sharing/lib/Controller/ShareInfoController.php
+++ b/apps/files_sharing/lib/Controller/ShareInfoController.php
@@ -81,11 +81,7 @@ class ShareInfoController extends ApiController {
 			return new JSONResponse([], Http::STATUS_FORBIDDEN);
 		}
 
-		$isWritable = $share->getPermissions() & (\OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_CREATE);
-		if (!$isWritable) {
-			$this->addROWrapper();
-		}
-
+		$permissionMask = $share->getPermissions();
 		$node = $share->getNode();
 
 		if ($dir !== null && $node instanceof Folder) {
@@ -96,34 +92,34 @@ class ShareInfoController extends ApiController {
 			}
 		}
 
-		return new JSONResponse($this->parseNode($node));
+		return new JSONResponse($this->parseNode($node, $permissionMask));
 	}
 
-	private function parseNode(Node $node) {
+	private function parseNode(Node $node, int $permissionMask) {
 		if ($node instanceof File) {
-			return $this->parseFile($node);
+			return $this->parseFile($node, $permissionMask);
 		}
-		return $this->parseFolder($node);
+		return $this->parseFolder($node, $permissionMask);
 	}
 
-	private function parseFile(File $file) {
-		return $this->format($file);
+	private function parseFile(File $file, int $permissionMask) {
+		return $this->format($file, $permissionMask);
 	}
 
-	private function parseFolder(Folder $folder) {
-		$data = $this->format($folder);
+	private function parseFolder(Folder $folder, int $permissionMask) {
+		$data = $this->format($folder, $permissionMask);
 
 		$data['children'] = [];
 
 		$nodes = $folder->getDirectoryListing();
 		foreach ($nodes as $node) {
-			$data['children'][] = $this->parseNode($node);
+			$data['children'][] = $this->parseNode($node, $permissionMask);
 		}
 
 		return $data;
 	}
 
-	private function format(Node $node) {
+	private function format(Node $node, int $permissionMask) {
 		$entry = [];
 
 		$entry['id'] = $node->getId();
@@ -131,7 +127,7 @@ class ShareInfoController extends ApiController {
 		$entry['mtime'] = $node->getMTime();
 
 		$entry['name'] = $node->getName();
-		$entry['permissions'] = $node->getPermissions();
+		$entry['permissions'] = $node->getPermissions() & $permissionMask;
 		$entry['mimetype'] = $node->getMimetype();
 		$entry['size'] = $node->getSize();
 		$entry['type'] = $node->getType();
@@ -139,13 +135,4 @@ class ShareInfoController extends ApiController {
 
 		return $entry;
 	}
-
-	protected function addROWrapper() {
-		// FIXME: should not add storage wrappers outside of preSetup, need to find a better way
-		$previousLog = \OC\Files\Filesystem::logWarningWhenAddingStorageWrapper(false);
-		\OC\Files\Filesystem::addStorageWrapper('readonly', function ($mountPoint, $storage) {
-			return new \OC\Files\Storage\Wrapper\PermissionsMask(array('storage' => $storage, 'mask' => \OCP\Constants::PERMISSION_READ + \OCP\Constants::PERMISSION_SHARE));
-		});
-		\OC\Files\Filesystem::logWarningWhenAddingStorageWrapper($previousLog);
-	}
 }
diff --git a/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php b/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php
index cd548ecfa21580e6f8838bc75abf0a54c2c9009c..627990a2f905ddb996d88304ae8fc586750582c6 100644
--- a/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php
@@ -173,9 +173,6 @@ class ShareInfoControllerTest extends TestCase {
 			->with($share, 'pass')
 			->willReturn(true);
 
-		$this->controller->expects($this->once())
-			->method('addROWrapper');
-
 		$expected = new JSONResponse([
 			'id' => 42,
 			'parentId' => 41,
@@ -285,7 +282,7 @@ class ShareInfoControllerTest extends TestCase {
 							'parentId' => 43,
 							'mtime' => 1339,
 							'name' => 'file',
-							'permissions' => 9,
+							'permissions' => 1,
 							'mimetype' => 'mime/type',
 							'size' => 3,
 							'type' => 'file',