From e20cef59082b42702e6f26205a9dcbd43197a793 Mon Sep 17 00:00:00 2001 From: Nikita Ioffe Date: Fri, 14 Jan 2022 00:59:43 +0000 Subject: [PATCH] Don't create external storage dirs for apps with PROPERTY_NO_APP_DATA_STORAGE Bug: 228424287 Test: atest android.appsecurity.cts.StorageHostTest Change-Id: I5baa1faf0284016edb40529615bb3eb4f9bff3f4 --- .../java/com/android/server/StorageManagerService.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 991c7a9e0a4d3..8f37823e4f9a2 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -3742,6 +3742,16 @@ class StorageManagerService extends IStorageManager.Stub Context.APP_OPS_SERVICE); appOps.checkPackage(callingUid, callingPkg); + try { + final PackageManager.Property noAppStorageProp = mContext.getPackageManager() + .getProperty(PackageManager.PROPERTY_NO_APP_DATA_STORAGE, callingPkg); + if (noAppStorageProp != null && noAppStorageProp.getBoolean()) { + throw new SecurityException(callingPkg + " should not have " + appPath); + } + } catch (PackageManager.NameNotFoundException ignore) { + // Property not found + } + File appFile = null; try { appFile = new File(appPath).getCanonicalFile();