From 807f23aff210064274d332866b3d5f59d0fb743c Mon Sep 17 00:00:00 2001 From: Calin Juravle Date: Mon, 1 Feb 2016 19:27:01 +0000 Subject: [PATCH] Create profiles folders Current profiles (the ones which have not been used for compilation) are stored in /data/misc/profiles/cur/0/pkgname/. Reference profiles (the merged of all user profiles, used for compilation) are stored in /data/misc/profiles/ref/pkgname/. Add a method to get the shared app gid from an uid or appid. Bug: 26719109 Bug: 26563023 Change-Id: I89601d7dbeb3041df882c141a9127dac200a645e --- include/cutils/multiuser.h | 3 +++ libcutils/multiuser.c | 6 ++++++ rootdir/init.rc | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/include/cutils/multiuser.h b/include/cutils/multiuser.h index 635ddb135..7e7f8154a 100644 --- a/include/cutils/multiuser.h +++ b/include/cutils/multiuser.h @@ -26,6 +26,8 @@ extern "C" { // NOTE: keep in sync with android.os.UserId #define MULTIUSER_APP_PER_USER_RANGE 100000 +#define MULTIUSER_FIRST_SHARED_APPLICATION_GID 50000 +#define MULTIUSER_FIRST_APPLICATION_UID 10000 typedef uid_t userid_t; typedef uid_t appid_t; @@ -33,6 +35,7 @@ typedef uid_t appid_t; extern userid_t multiuser_get_user_id(uid_t uid); extern appid_t multiuser_get_app_id(uid_t uid); extern uid_t multiuser_get_uid(userid_t userId, appid_t appId); +extern appid_t multiuser_get_shared_app_gid(uid_t uid); #ifdef __cplusplus } diff --git a/libcutils/multiuser.c b/libcutils/multiuser.c index 7c74bb867..0f4427b35 100644 --- a/libcutils/multiuser.c +++ b/libcutils/multiuser.c @@ -27,3 +27,9 @@ appid_t multiuser_get_app_id(uid_t uid) { uid_t multiuser_get_uid(userid_t userId, appid_t appId) { return userId * MULTIUSER_APP_PER_USER_RANGE + (appId % MULTIUSER_APP_PER_USER_RANGE); } + +appid_t multiuser_get_shared_app_gid(uid_t id) { + return MULTIUSER_FIRST_SHARED_APPLICATION_GID + (id % MULTIUSER_APP_PER_USER_RANGE) + - MULTIUSER_FIRST_APPLICATION_UID; + +} diff --git a/rootdir/init.rc b/rootdir/init.rc index faae48efb..03a6919b9 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -363,6 +363,10 @@ on post-fs-data mkdir /data/misc/boottrace 0771 system shell mkdir /data/misc/update_engine 0700 root root mkdir /data/misc/trace 0700 root root + # profile file layout + mkdir /data/misc/profiles 0771 system system + mkdir /data/misc/profiles/cur 0771 system system + mkdir /data/misc/profiles/ref 0771 system system # For security reasons, /data/local/tmp should always be empty. # Do not place files or directories in /data/local/tmp