Loading services/core/java/com/android/server/StorageManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -3150,10 +3150,10 @@ class StorageManagerService extends IStorageManager.Stub if (toSystem) { // Everything else goes into sandbox. return device + "Android/sandbox/" + sandboxId.replace(':', '/') + "/" + devicePath; return device + "Android/sandbox/" + sandboxId + "/" + devicePath; } else { // Does path belong to this sandbox? If so, leave sandbox. final String sandboxPrefix = "Android/sandbox/" + sandboxId.replace(':', '/') + "/"; final String sandboxPrefix = "Android/sandbox/" + sandboxId + "/"; if (devicePath.startsWith(sandboxPrefix)) { return device + devicePath.substring(sandboxPrefix.length()); } Loading services/tests/servicestests/src/com/android/server/StorageManagerServiceTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -124,7 +124,7 @@ public class StorageManagerServiceTest { "/storage/emulated/0/Android/sandbox/com.grey/foo.jpg", "/storage/emulated/0/foo.jpg", PKG_GREY); assertTranslation( "/storage/emulated/0/Android/sandbox/shared/colors/foo.jpg", "/storage/emulated/0/Android/sandbox/shared:colors/foo.jpg", "/storage/emulated/0/foo.jpg", PKG_RED); } Loading @@ -134,7 +134,7 @@ public class StorageManagerServiceTest { "/storage/0000-0000/Android/sandbox/com.grey/foo/bar.jpg", "/storage/0000-0000/foo/bar.jpg", PKG_GREY); assertTranslation( "/storage/0000-0000/Android/sandbox/shared/colors/foo/bar.jpg", "/storage/0000-0000/Android/sandbox/shared:colors/foo/bar.jpg", "/storage/0000-0000/foo/bar.jpg", PKG_RED); } Loading @@ -147,7 +147,7 @@ public class StorageManagerServiceTest { // Accessing other package paths goes into sandbox assertTranslation( "/storage/emulated/0/Android/sandbox/shared/colors/" "/storage/emulated/0/Android/sandbox/shared:colors/" + "Android/data/com.grey/foo.jpg", "/storage/emulated/0/Android/data/com.grey/foo.jpg", PKG_RED); } Loading Loading @@ -192,7 +192,7 @@ public class StorageManagerServiceTest { // Sandboxes can't see paths in other sandboxes try { mService.translateSystemToApp( "/storage/emulated/0/Android/sandbox/shared/colors/foo.jpg", "/storage/emulated/0/Android/sandbox/shared:colors/foo.jpg", PKG_GREY, UserHandle.USER_SYSTEM); fail(); } catch (SecurityException expected) { Loading Loading
services/core/java/com/android/server/StorageManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -3150,10 +3150,10 @@ class StorageManagerService extends IStorageManager.Stub if (toSystem) { // Everything else goes into sandbox. return device + "Android/sandbox/" + sandboxId.replace(':', '/') + "/" + devicePath; return device + "Android/sandbox/" + sandboxId + "/" + devicePath; } else { // Does path belong to this sandbox? If so, leave sandbox. final String sandboxPrefix = "Android/sandbox/" + sandboxId.replace(':', '/') + "/"; final String sandboxPrefix = "Android/sandbox/" + sandboxId + "/"; if (devicePath.startsWith(sandboxPrefix)) { return device + devicePath.substring(sandboxPrefix.length()); } Loading
services/tests/servicestests/src/com/android/server/StorageManagerServiceTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -124,7 +124,7 @@ public class StorageManagerServiceTest { "/storage/emulated/0/Android/sandbox/com.grey/foo.jpg", "/storage/emulated/0/foo.jpg", PKG_GREY); assertTranslation( "/storage/emulated/0/Android/sandbox/shared/colors/foo.jpg", "/storage/emulated/0/Android/sandbox/shared:colors/foo.jpg", "/storage/emulated/0/foo.jpg", PKG_RED); } Loading @@ -134,7 +134,7 @@ public class StorageManagerServiceTest { "/storage/0000-0000/Android/sandbox/com.grey/foo/bar.jpg", "/storage/0000-0000/foo/bar.jpg", PKG_GREY); assertTranslation( "/storage/0000-0000/Android/sandbox/shared/colors/foo/bar.jpg", "/storage/0000-0000/Android/sandbox/shared:colors/foo/bar.jpg", "/storage/0000-0000/foo/bar.jpg", PKG_RED); } Loading @@ -147,7 +147,7 @@ public class StorageManagerServiceTest { // Accessing other package paths goes into sandbox assertTranslation( "/storage/emulated/0/Android/sandbox/shared/colors/" "/storage/emulated/0/Android/sandbox/shared:colors/" + "Android/data/com.grey/foo.jpg", "/storage/emulated/0/Android/data/com.grey/foo.jpg", PKG_RED); } Loading Loading @@ -192,7 +192,7 @@ public class StorageManagerServiceTest { // Sandboxes can't see paths in other sandboxes try { mService.translateSystemToApp( "/storage/emulated/0/Android/sandbox/shared/colors/foo.jpg", "/storage/emulated/0/Android/sandbox/shared:colors/foo.jpg", PKG_GREY, UserHandle.USER_SYSTEM); fail(); } catch (SecurityException expected) { Loading