Avoid creating /mnt/user/<userId>/package/<packageName> for all pkgs.

Bug: 124466384
Test: manual
Test: atest cts/hostsidetests/appsecurity/src/android/appsecurity/cts/ExternalStorageHostTest.java
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Change-Id: I025c2ce647cd3263da45800c5cb728d2f0f08c96
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index cd9d84c..a5eab85 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -2811,6 +2811,7 @@
 
     @Override
     public void unlockUserKey(int userId, int serialNumber, byte[] token, byte[] secret) {
+        Slog.d(TAG, "unlockUserKey: " + userId);
         enforcePermission(android.Manifest.permission.STORAGE_INTERNAL);
 
         if (StorageManager.isFileEncryptedNativeOrEmulated()) {
@@ -4056,6 +4057,11 @@
 
         @Override
         public String[] getVisibleVolumesForUser(int userId) {
+            synchronized (mLock) {
+                if (!ArrayUtils.contains(mSystemUnlockedUsers, userId)) {
+                    return EmptyArray.STRING;
+                }
+            }
             final ArrayList<String> visibleVolsForUser = new ArrayList<>();
             for (int i = mVisibleVols.size() - 1; i >= 0; --i) {
                 final VolumeInfo vol = mVisibleVols.get(i);