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"; } }