From 81c687dff8bf737999d01b43b740e93bf274f192 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Wed, 16 Jan 2019 23:25:28 -0800 Subject: [PATCH] Reland "Create new mount directory /mnt/runtime/full." This will be used for system internals to access secondary volumes without having to bypass sdcardfs. This reverts commit 54b8844b1307ce64069861f8213c8bfed34b69d7 Bug: 121277410 Test: manual Change-Id: Id5b995dc5899b5999f1dea662ba1c3ee475a0e46 --- rootdir/init.rc | 2 ++ sdcard/sdcard.cpp | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/rootdir/init.rc b/rootdir/init.rc index b34399d47..ee70846d4 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -117,6 +117,8 @@ on init 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/full 0755 root root + mkdir /mnt/runtime/full/self 0755 root root # Symlink to keep legacy apps working in multi-user world symlink /storage/self/primary /sdcard diff --git a/sdcard/sdcard.cpp b/sdcard/sdcard.cpp index dc36596b1..e1de130c2 100644 --- a/sdcard/sdcard.cpp +++ b/sdcard/sdcard.cpp @@ -160,6 +160,7 @@ static void run_sdcardfs(const std::string& source_path, const std::string& labe std::string dest_path_default = "/mnt/runtime/default/" + label; std::string dest_path_read = "/mnt/runtime/read/" + label; std::string dest_path_write = "/mnt/runtime/write/" + label; + std::string dest_path_full = "/mnt/runtime/full/" + label; umask(0); if (multi_user) { @@ -172,7 +173,10 @@ static void run_sdcardfs(const std::string& source_path, const std::string& labe default_normal, use_esdfs) || !sdcardfs_setup_secondary(dest_path_default, source_path, dest_path_write, uid, gid, multi_user, userid, AID_EVERYBODY, full_write ? 0007 : 0027, - derive_gid, default_normal, use_esdfs)) { + derive_gid, default_normal, use_esdfs) || + !sdcardfs_setup_secondary(dest_path_default, source_path, dest_path_full, uid, gid, + multi_user, userid, AID_EVERYBODY, 0007, derive_gid, + default_normal, use_esdfs)) { LOG(FATAL) << "failed to sdcardfs_setup"; } } else { @@ -186,7 +190,10 @@ static void run_sdcardfs(const std::string& source_path, const std::string& labe derive_gid, default_normal, use_esdfs) || !sdcardfs_setup_secondary(dest_path_default, source_path, dest_path_write, uid, gid, multi_user, userid, AID_EVERYBODY, full_write ? 0007 : 0022, - derive_gid, default_normal, use_esdfs)) { + derive_gid, default_normal, use_esdfs) || + !sdcardfs_setup_secondary(dest_path_default, source_path, dest_path_full, uid, gid, + multi_user, userid, AID_EVERYBODY, 0007, derive_gid, + default_normal, use_esdfs)) { LOG(FATAL) << "failed to sdcardfs_setup"; } }