diff --git a/FsCrypt.cpp b/FsCrypt.cpp index 1f7faac..4163f4f 100644 --- a/FsCrypt.cpp +++ b/FsCrypt.cpp @@ -62,8 +62,11 @@ using android::base::StringPrintf; using android::fs_mgr::GetEntryForMountPoint; using android::vold::BuildDataPath; +using android::vold::IsFilesystemSupported; using android::vold::kEmptyAuthentication; using android::vold::KeyBuffer; +using android::vold::SetQuotaInherit; +using android::vold::SetQuotaProjectId; using android::vold::writeStringToFile; using namespace android::fscrypt; @@ -783,6 +786,14 @@ bool fscrypt_prepare_user_storage(const std::string& volume_uuid, userid_t user_ if (!prepare_dir(vendor_ce_path, 0771, AID_ROOT, AID_ROOT)) return false; } if (!prepare_dir(media_ce_path, 0770, AID_MEDIA_RW, AID_MEDIA_RW)) return false; + // Setup quota project ID and inheritance policy + if (!IsFilesystemSupported("sdcardfs")) { + if (SetQuotaInherit(media_ce_path) != 0) return false; + if (SetQuotaProjectId(media_ce_path, multiuser_get_uid(user_id, AID_MEDIA_RW)) != 0) { + return false; + } + } + if (!prepare_dir(user_ce_path, 0771, AID_SYSTEM, AID_SYSTEM)) return false; if (fscrypt_is_native()) {