Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31ad0a18 authored by Sudheer Shanka's avatar Sudheer Shanka
Browse files

Update shared sandbox directory structure.

Sandboxes for apps with sharedUserIds will live
at Android/shared:sharedUserId/ instead of
Android/shared/sharedUserId/.

Bug: 117573457
Test: atest services/tests/servicestests/src/com/android/server/StorageManagerServiceTest.java

Change-Id: I1f9aadaaa7e7ea29c3ee03112db2c60c04ed0312
parent 5b3a6a81
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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());
                }
+4 −4
Original line number Diff line number Diff line
@@ -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);
    }

@@ -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);
    }

@@ -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);
    }
@@ -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) {