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

Commit 779a38a5 authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android Git Automerger
Browse files

am b9f438ff: Protect runtime storage mount points.

* commit 'b9f438ff':
  Protect runtime storage mount points.
parents d3a5e857 b9f438ff
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -69,16 +69,17 @@ on init

    # Storage views to support runtime permissions
    mkdir /storage 0755 root root
    mkdir /mnt/runtime_default 0755 root root
    mkdir /mnt/runtime_default/self 0755 root root
    mkdir /mnt/runtime_read 0755 root root
    mkdir /mnt/runtime_read/self 0755 root root
    mkdir /mnt/runtime_write 0755 root root
    mkdir /mnt/runtime_write/self 0755 root root
    mkdir /mnt/runtime 0700 root root
    mkdir /mnt/runtime/default 0755 root root
    mkdir /mnt/runtime/default/self 0755 root root
    mkdir /mnt/runtime/read 0755 root root
    mkdir /mnt/runtime/read/self 0755 root root
    mkdir /mnt/runtime/write 0755 root root
    mkdir /mnt/runtime/write/self 0755 root root

    # Symlink to keep legacy apps working in multi-user world
    symlink /storage/self/primary /sdcard
    symlink /mnt/user/0/primary /mnt/runtime_default/self/primary
    symlink /mnt/user/0/primary /mnt/runtime/default/self/primary

    # memory control cgroup
    mkdir /dev/memcg 0700 root system
@@ -230,7 +231,7 @@ on post-fs
    # Mount shared so changes propagate into child namespaces
    mount rootfs rootfs / shared rec
    # Mount default storage into root namespace
    mount none /mnt/runtime_default /storage slave bind rec
    mount none /mnt/runtime/default /storage slave bind rec

    # We chown/chmod /cache again so because mount is run as root + defaults
    chown system cache /cache
+4 −4
Original line number Diff line number Diff line
@@ -1735,7 +1735,7 @@ static int usage() {
            "    -g: specify GID to run as\n"
            "    -U: specify user ID that owns device\n"
            "    -m: source_path is multi-user\n"
            "    -w: runtime_write mount has full write access\n"
            "    -w: runtime write mount has full write access\n"
            "\n");
    return 1;
}
@@ -1822,9 +1822,9 @@ static void run(const char* source_path, const char* label, uid_t uid,
    global.fuse_read = &fuse_read;
    global.fuse_write = &fuse_write;

    snprintf(fuse_default.dest_path, PATH_MAX, "/mnt/runtime_default/%s", label);
    snprintf(fuse_read.dest_path, PATH_MAX, "/mnt/runtime_read/%s", label);
    snprintf(fuse_write.dest_path, PATH_MAX, "/mnt/runtime_write/%s", label);
    snprintf(fuse_default.dest_path, PATH_MAX, "/mnt/runtime/default/%s", label);
    snprintf(fuse_read.dest_path, PATH_MAX, "/mnt/runtime/read/%s", label);
    snprintf(fuse_write.dest_path, PATH_MAX, "/mnt/runtime/write/%s", label);

    handler_default.fuse = &fuse_default;
    handler_read.fuse = &fuse_read;