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

Commit a8c2112b authored by Jeff Brown's avatar Jeff Brown Committed by Android (Google) Code Review
Browse files

Merge "Migrate sdcard0 to shell-accessible location." into jb-mr1-dev

parents bb0d0721 5dd0f86f
Loading
Loading
Loading
Loading
+3 −21
Original line number Diff line number Diff line
@@ -990,26 +990,6 @@ static int should_drop_privileges() {
}
#endif /* !ADB_HOST */

#if !ADB_HOST
/* Give ourselves access to external storage, which is otherwise protected. */
static void mount_external_storage(void) {
    // Create private mount namespace for our process
    if (unshare(CLONE_NEWNS) == -1) {
        fatal_errno("Failed to unshare()");
    }

    // Mark rootfs as being a slave in our process so that changes
    // from parent namespace flow into our process.
    if (mount("rootfs", "/", NULL, (MS_SLAVE | MS_REC), NULL) == -1) {
        fatal_errno("Failed to mount() rootfs as MS_SLAVE");
    }

    if (mount(EXTERNAL_STORAGE_SYSTEM, EXTERNAL_STORAGE_APP, "none", MS_BIND, NULL) == -1) {
        fatal_errno("Failed to mount() from %s", EXTERNAL_STORAGE_SYSTEM);
    }
}
#endif /* !ADB_HOST */

int adb_main(int is_daemon, int server_port)
{
#if !ADB_HOST
@@ -1042,7 +1022,9 @@ int adb_main(int is_daemon, int server_port)
    }
#else

    mount_external_storage();
    // Our external storage path may be different than apps, since
    // we aren't able to bind mount after dropping root.
    setenv("EXTERNAL_STORAGE", getenv("ADB_EXTERNAL_STORAGE"), 1);

    /* don't listen on a port (default 5037) if running in secure mode */
    /* don't run as root if we are running in secure mode */
+1 −1
Original line number Diff line number Diff line
@@ -229,7 +229,7 @@ static struct fs_path_config android_files[] = {
    { 00644, AID_ROOT,      AID_ROOT,       0 },
};

#define EXTERNAL_STORAGE_SYSTEM "/mnt/secure/sdcard0"
#define EXTERNAL_STORAGE_SYSTEM "/mnt/shell/sdcard0"
#define EXTERNAL_STORAGE_APP "/storage/sdcard0"

static inline void fs_config(const char *path, int dir,
+3 −0
Original line number Diff line number Diff line
@@ -56,6 +56,9 @@ loglevel 3
    mkdir /cache 0770 system cache
    mkdir /config 0500 root root

    # Directory for shell-visible mount points, like external storage
    mkdir /mnt/shell 0700 shell shell

    # Directory for putting things only root should see.
    mkdir /mnt/secure 0700 root root