Replace EnsureDirExists with a call to setupAppDir

Test: Manually verified ownership of /storage/emulated/0/Android/data on cf_x86_phone-userdebug after enabling feature
Bug: 151455752

Change-Id: I75a1e3b769476e56094e41d82e7f8e1a72827ded
This commit is contained in:
Linus Tufvesson 2020-03-23 11:59:43 +00:00
parent 6ce90ced12
commit 75973cb0dd
2 changed files with 6 additions and 2 deletions

View file

@ -776,7 +776,8 @@ static std::string getStorageDirTarget(userid_t userId, std::string dirName,
} }
// Fork the process and remount storage // Fork the process and remount storage
static bool forkAndRemountStorage(int uid, int pid, const std::vector<std::string>& packageNames) { bool VolumeManager::forkAndRemountStorage(int uid, int pid,
const std::vector<std::string>& packageNames) {
userid_t userId = multiuser_get_user_id(uid); userid_t userId = multiuser_get_user_id(uid);
std::string mnt_path = StringPrintf("/proc/%d/ns/mnt", pid); std::string mnt_path = StringPrintf("/proc/%d/ns/mnt", pid);
android::base::unique_fd nsFd( android::base::unique_fd nsFd(
@ -814,7 +815,8 @@ static bool forkAndRemountStorage(int uid, int pid, const std::vector<std::strin
PLOG(ERROR) << "Failed to create dir: " << sources_cstr[i]; PLOG(ERROR) << "Failed to create dir: " << sources_cstr[i];
return false; return false;
} }
status = EnsureDirExists(targets_cstr[i], 0771, AID_MEDIA_RW, AID_MEDIA_RW); // Make sure /storage/emulated/... paths are setup correctly
status = setupAppDir(targets_cstr[i], uid, false /* fixupExistingOnly */);
if (status != OK) { if (status != OK) {
PLOG(ERROR) << "Failed to create dir: " << targets_cstr[i]; PLOG(ERROR) << "Failed to create dir: " << targets_cstr[i];
return false; return false;

View file

@ -130,6 +130,8 @@ class VolumeManager {
int updateVirtualDisk(); int updateVirtualDisk();
int setDebug(bool enable); int setDebug(bool enable);
bool forkAndRemountStorage(int uid, int pid, const std::vector<std::string>& packageNames);
static VolumeManager* Instance(); static VolumeManager* Instance();
/* /*