Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1500123 authored by Jeff Sharkey's avatar Jeff Sharkey Committed by android-build-merger
Browse files

Merge "Define GID range for external data and OBBs."

am: 1e7cdf3c

Change-Id: I14bab914f585c5d7ad95d63ceb3096981ee4f3a5
parents 519bf2c6 1e7cdf3c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ extern appid_t multiuser_get_app_id(uid_t uid);
extern uid_t multiuser_get_uid(userid_t user_id, appid_t app_id);

extern gid_t multiuser_get_cache_gid(userid_t user_id, appid_t app_id);
extern gid_t multiuser_get_ext_gid(userid_t user_id, appid_t app_id);
extern gid_t multiuser_get_shared_gid(userid_t user_id, appid_t app_id);

/* TODO: switch callers over to multiuser_get_shared_gid() */
+4 −0
Original line number Diff line number Diff line
@@ -127,6 +127,7 @@
#define AID_MEDIA_VIDEO   1056 /* GID for video files on internal media storage */
#define AID_MEDIA_IMAGE   1057 /* GID for image files on internal media storage */
#define AID_TOMBSTONED    1058  /* tombstoned user */
#define AID_MEDIA_OBB     1059 /* GID for OBB files on internal media storage */
/* Changes to this file must be made in AOSP, *not* in internal branches. */

#define AID_SHELL         2000  /* adb and debug shell user */
@@ -165,6 +166,9 @@
#define AID_CACHE_GID_START  20000 /* start of gids for apps to mark cached data */
#define AID_CACHE_GID_END    29999 /* end of gids for apps to mark cached data */

#define AID_EXT_GID_START    30000 /* start of gids for apps to mark external data */
#define AID_EXT_GID_END      39999 /* end of gids for apps to mark external data */

#define AID_SHARED_GID_START 50000 /* start of gids for apps in each user to share */
#define AID_SHARED_GID_END   59999 /* end of gids for apps in each user to share */

+8 −0
Original line number Diff line number Diff line
@@ -37,6 +37,14 @@ gid_t multiuser_get_cache_gid(userid_t user_id, appid_t app_id) {
    }
}

gid_t multiuser_get_ext_gid(userid_t user_id, appid_t app_id) {
    if (app_id >= AID_APP_START && app_id <= AID_APP_END) {
        return multiuser_get_uid(user_id, (app_id - AID_APP_START) + AID_EXT_GID_START);
    } else {
        return -1;
    }
}

gid_t multiuser_get_shared_gid(userid_t user_id, appid_t app_id) {
    if (app_id >= AID_APP_START && app_id <= AID_APP_END) {
        return multiuser_get_uid(user_id, (app_id - AID_APP_START) + AID_SHARED_GID_START);
+8 −0
Original line number Diff line number Diff line
@@ -58,6 +58,14 @@ TEST(MultiuserTest, TestCache) {
    EXPECT_EQ(1020000, multiuser_get_cache_gid(10, 10000));
}

TEST(MultiuserTest, TestExt) {
    EXPECT_EQ(-1, multiuser_get_ext_gid(0, 0));
    EXPECT_EQ(-1, multiuser_get_ext_gid(0, 1000));
    EXPECT_EQ(30000, multiuser_get_ext_gid(0, 10000));
    EXPECT_EQ(-1, multiuser_get_ext_gid(0, 50000));
    EXPECT_EQ(1030000, multiuser_get_ext_gid(10, 10000));
}

TEST(MultiuserTest, TestShared) {
    EXPECT_EQ(-1, multiuser_get_shared_gid(0, 0));
    EXPECT_EQ(-1, multiuser_get_shared_gid(0, 1000));