Skip to content

Commit 91bbb8a

Browse files
committed
Create media paths for existing users.
Bug: 6925012 Change-Id: I23bd9187217645cf538e074527c143a911a61299
1 parent cc48c14 commit 91bbb8a

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

cmds/installd/installd.c

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,35 @@ int initialize_directories() {
407407
goto fail;
408408
}
409409
}
410+
411+
// Ensure media directories for any existing users
412+
DIR *dir;
413+
struct dirent *dirent;
414+
char user_media_dir[PATH_MAX];
415+
416+
dir = opendir(user_data_dir);
417+
if (dir != NULL) {
418+
while ((dirent = readdir(dir))) {
419+
if (dirent->d_type == DT_DIR) {
420+
const char *name = dirent->d_name;
421+
422+
// skip "." and ".."
423+
if (name[0] == '.') {
424+
if (name[1] == 0) continue;
425+
if ((name[1] == '.') && (name[2] == 0)) continue;
426+
}
427+
428+
// /data/media/<user_id>
429+
snprintf(user_media_dir, PATH_MAX, "%s%s", android_media_dir.path, name);
430+
if (ensure_dir(user_media_dir, 0770, AID_MEDIA_RW, AID_MEDIA_RW) == -1) {
431+
ALOGE("Failed to ensure %s: %s", user_media_dir, strerror(errno));
432+
goto fail;
433+
}
434+
}
435+
}
436+
closedir(dir);
437+
}
438+
410439
version = 1;
411440
}
412441

0 commit comments

Comments
 (0)