diff options
11 files changed, 23 insertions, 15 deletions
diff --git a/api/test-current.txt b/api/test-current.txt index b871c78571ad..74b974e4ce8c 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -943,6 +943,10 @@ package android.os.health { package android.os.storage { + public class StorageManager { + method public static boolean hasIsolatedStorage(); + } + public final class StorageVolume implements android.os.Parcelable { method public java.lang.String getPath(); } diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java index 437039dcbccf..7d5202d0dbce 100644 --- a/core/java/android/content/ContentResolver.java +++ b/core/java/android/content/ContentResolver.java @@ -97,8 +97,7 @@ public abstract class ContentResolver { * * @hide */ - public static final boolean DEPRECATE_DATA_COLUMNS = SystemProperties - .getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false); + public static final boolean DEPRECATE_DATA_COLUMNS = StorageManager.hasIsolatedStorage(); /** * Special filesystem path prefix which indicates that a path should be diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 49189e53f385..ac18dca74950 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -2513,7 +2513,7 @@ public class PackageParser { // If the storage model feature flag is disabled, we need to fiddle // around with permission definitions to return us to pre-Q behavior. // STOPSHIP(b/112545973): remove once feature enabled by default - if (!SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) { + if (!StorageManager.hasIsolatedStorage()) { if ("android".equals(pkg.packageName)) { final ArraySet<String> newGroups = new ArraySet<>(); newGroups.add(android.Manifest.permission_group.MEDIA_AURAL); diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java index b42f1c4df4e3..8e11d858128a 100644 --- a/core/java/android/os/storage/StorageManager.java +++ b/core/java/android/os/storage/StorageManager.java @@ -25,6 +25,7 @@ import android.annotation.SdkConstant; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.SystemService; +import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.annotation.WorkerThread; import android.app.Activity; @@ -1533,6 +1534,12 @@ public class StorageManager { return SystemProperties.getBoolean(PROP_HAS_ADOPTABLE, false); } + /** {@hide} */ + @TestApi + public static boolean hasIsolatedStorage() { + return SystemProperties.getBoolean(PROP_ISOLATED_STORAGE, false); + } + /** * @deprecated disabled now that FUSE has been replaced by sdcardfs * @hide diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java index 849585004bc3..b97a9fa8d1cc 100644 --- a/core/java/com/android/server/SystemConfig.java +++ b/core/java/com/android/server/SystemConfig.java @@ -934,7 +934,7 @@ public class SystemConfig { // If the storage model feature flag is disabled, we need to fiddle // around with permission definitions to return us to pre-Q behavior. // STOPSHIP(b/112545973): remove once feature enabled by default - if (!SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) { + if (!StorageManager.hasIsolatedStorage()) { if (newPermissions.contains(android.Manifest.permission.READ_MEDIA_AUDIO) || newPermissions.contains(android.Manifest.permission.READ_MEDIA_VIDEO) || newPermissions.contains(android.Manifest.permission.READ_MEDIA_IMAGES)) { diff --git a/services/core/java/com/android/server/AppOpsService.java b/services/core/java/com/android/server/AppOpsService.java index 356a4daba66e..8d912fadf6d1 100644 --- a/services/core/java/com/android/server/AppOpsService.java +++ b/services/core/java/com/android/server/AppOpsService.java @@ -692,7 +692,7 @@ public class AppOpsService extends IAppOpsService.Stub { } }); - if (!SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) { + if (!StorageManager.hasIsolatedStorage()) { StorageManagerInternal storageManagerInternal = LocalServices.getService( StorageManagerInternal.class); storageManagerInternal.addExternalStoragePolicy( diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 0e6f8dda44f6..e933bd0bc7ff 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -183,8 +183,7 @@ class StorageManagerService extends IStorageManager.Stub private static final String ZRAM_ENABLED_PROPERTY = "persist.sys.zram_enabled"; - private static final boolean ENABLE_ISOLATED_STORAGE = SystemProperties - .getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false); + private static final boolean ENABLE_ISOLATED_STORAGE = StorageManager.hasIsolatedStorage(); public static class Lifecycle extends SystemService { private StorageManagerService mStorageManagerService; diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 80f47d5a000b..7f4675db0c59 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -19346,7 +19346,7 @@ public class ActivityManagerService extends IActivityManager.Stub @Override public boolean isAppStorageSandboxed(int pid, int uid) { - if (!SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) { + if (!StorageManager.hasIsolatedStorage()) { return false; } if (uid == SHELL_UID || uid == ROOT_UID) { diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java index 4b19398cc73d..7991783e08c8 100644 --- a/services/core/java/com/android/server/am/ProcessList.java +++ b/services/core/java/com/android/server/am/ProcessList.java @@ -27,7 +27,6 @@ import static android.os.Process.getFreeMemory; import static android.os.Process.getTotalMemory; import static android.os.Process.killProcessQuiet; import static android.os.Process.startWebView; -import static android.os.storage.StorageManager.PROP_ISOLATED_STORAGE; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_LRU; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_PROCESSES; @@ -73,6 +72,7 @@ import android.os.SystemClock; import android.os.SystemProperties; import android.os.Trace; import android.os.UserHandle; +import android.os.storage.StorageManager; import android.os.storage.StorageManagerInternal; import android.text.TextUtils; import android.util.EventLog; @@ -1281,8 +1281,7 @@ public final class ProcessList { final IPackageManager pm = AppGlobals.getPackageManager(); permGids = pm.getPackageGids(app.info.packageName, MATCH_DIRECT_BOOT_AUTO, app.userId); - if (SystemProperties.getBoolean(PROP_ISOLATED_STORAGE, false) - && mountExtStorageFull) { + if (StorageManager.hasIsolatedStorage() && mountExtStorageFull) { mountExternal = Zygote.MOUNT_EXTERNAL_FULL; } else { StorageManagerInternal storageManagerInternal = LocalServices.getService( diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index b76eaaffe078..8abb5000d544 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -20135,7 +20135,7 @@ public class PackageManagerService extends IPackageManager.Stub if (Process.isIsolated(uid)) { return Zygote.MOUNT_EXTERNAL_NONE; } - if (SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) { + if (StorageManager.hasIsolatedStorage()) { return checkUidPermission(WRITE_MEDIA_STORAGE, uid) == PERMISSION_GRANTED ? Zygote.MOUNT_EXTERNAL_FULL : Zygote.MOUNT_EXTERNAL_WRITE; diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java index e9b9930600a0..68fe1d8a05f8 100644 --- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java @@ -189,7 +189,7 @@ public final class DefaultPermissionGrantPolicy { private static final Set<String> STORAGE_PERMISSIONS = new ArraySet<>(); static { // STOPSHIP(b/112545973): remove once feature enabled by default - if (!SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) { + if (!StorageManager.hasIsolatedStorage()) { STORAGE_PERMISSIONS.add(Manifest.permission.READ_EXTERNAL_STORAGE); STORAGE_PERMISSIONS.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); } @@ -198,7 +198,7 @@ public final class DefaultPermissionGrantPolicy { private static final Set<String> MEDIA_AURAL_PERMISSIONS = new ArraySet<>(); static { // STOPSHIP(b/112545973): remove once feature enabled by default - if (SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) { + if (StorageManager.hasIsolatedStorage()) { MEDIA_AURAL_PERMISSIONS.add(Manifest.permission.READ_MEDIA_AUDIO); } } @@ -206,7 +206,7 @@ public final class DefaultPermissionGrantPolicy { private static final Set<String> MEDIA_VISUAL_PERMISSIONS = new ArraySet<>(); static { // STOPSHIP(b/112545973): remove once feature enabled by default - if (SystemProperties.getBoolean(StorageManager.PROP_ISOLATED_STORAGE, false)) { + if (StorageManager.hasIsolatedStorage()) { MEDIA_VISUAL_PERMISSIONS.add(Manifest.permission.READ_MEDIA_VIDEO); MEDIA_VISUAL_PERMISSIONS.add(Manifest.permission.READ_MEDIA_IMAGES); } |