Skip to content

Commit 0b4d20d

Browse files
Enable searching for mounted public volumes under any user
Currently, InstalldNativeServices when collecting mounted storage to invalidate, only looks for mounts under /mnt/pass_through/0. This means that public volumes mounted under users that aren't user 0 are never collected. This change ensures that all of these public volumes are collected by checking for /mnt/pass_through/0/emulated and for /mnt/pass_through/x/UUID, where x is an integer greater than or equal to 0 and UUID is of the format HHHH-HHHH, H being any uppercase letter or a digit. In this change, the regex checks for /emulated only under user 0 because /mnt/pass_through/x/emulated/10 points to the same thing regardless of the value of x, so only checking under user 0, which is always mounted, prevents killing the same mount twice. Test: atest ExternalStorageHostTest Fixes: 299996244 Flag: EXEMPT refactor Change-Id: Icb4fca7213f9e656594625a83ba16a7ffc8251fe
1 parent c9e5f47 commit 0b4d20d

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

cmds/installd/InstalldNativeService.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ static constexpr const char* kFuseProp = "persist.sys.fuse";
119119
*/
120120
static constexpr const char* kAppDataIsolationEnabledProperty = "persist.zygote.app_data_isolation";
121121
static constexpr const char* kMntSdcardfs = "/mnt/runtime/default/";
122-
static constexpr const char* kMntFuse = "/mnt/pass_through/0/";
123122

124123
static std::atomic<bool> sAppDataIsolationEnabled(false);
125124

@@ -3697,7 +3696,9 @@ binder::Status InstalldNativeService::invalidateMounts() {
36973696
std::getline(in, ignored);
36983697

36993698
if (android::base::GetBoolProperty(kFuseProp, false)) {
3700-
if (target.find(kMntFuse) == 0) {
3699+
const std::regex kMntFuseRe =
3700+
std::regex(R"(^/mnt/pass_through/(0|[0-9]+/[A-Z0-9]{4}-[A-Z0-9]{4}).*)");
3701+
if (std::regex_match(target, kMntFuseRe)) {
37013702
LOG(DEBUG) << "Found storage mount " << source << " at " << target;
37023703
mStorageMounts[source] = target;
37033704
}

0 commit comments

Comments
 (0)