am 2e7d80d1: Per-app media directories on external storage.

* commit '2e7d80d10acf95076dfb1f2727455432091de65f':
  Per-app media directories on external storage.
This commit is contained in:
Jeff Sharkey 2014-05-30 23:48:00 +00:00 committed by Android Git Automerger
commit 40f321ab49

View file

@ -139,6 +139,8 @@ typedef enum {
PERM_ANDROID_DATA,
/* This node is "/Android/obb" */
PERM_ANDROID_OBB,
/* This node is "/Android/media" */
PERM_ANDROID_MEDIA,
/* This node is "/Android/user" */
PERM_ANDROID_USER,
} perm_t;
@ -475,6 +477,10 @@ static void derive_permissions_locked(struct fuse* fuse, struct node *parent,
/* Single OBB directory is always shared */
node->graft_path = fuse->obbpath;
node->graft_pathlen = strlen(fuse->obbpath);
} else if (!strcasecmp(node->name, "media")) {
/* App-specific directories inside; let anyone traverse */
node->perm = PERM_ANDROID_MEDIA;
node->mode = 0771;
} else if (!strcasecmp(node->name, "user")) {
/* User directories must only be accessible to system, protected
* by sdcard_all. Zygote will bind mount the appropriate user-
@ -486,6 +492,7 @@ static void derive_permissions_locked(struct fuse* fuse, struct node *parent,
break;
case PERM_ANDROID_DATA:
case PERM_ANDROID_OBB:
case PERM_ANDROID_MEDIA:
appid = (appid_t) (uintptr_t) hashmapGet(fuse->package_to_appid, node->name);
if (appid != 0) {
node->uid = multiuser_get_uid(parent->userid, appid);