Define GID range for external data and OBBs.
To quickly answer the question of "how much data is a UID using?" we need a GID range to label files on external storage, similar to the GID ranges already defined for cached and shared data. Also define a new GID that will be used to label the OBB files shared between all users under /data/media/obb. Test: builds, newly added tests pass Bug: 34263266 Change-Id: I16fb7d166c3dcdeafbf477162d191d3b73ae8ac2
This commit is contained in:
parent
230201dcbf
commit
7e5d0b1fae
|
@ -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() */
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
|
|
Loading…
Reference in New Issue