Print out shared app gids correctly
For applications that share resources across users such as forward-locked applications, print out their group name correctly. Change-Id: I06ee0b67e4325cfa415ffd7a03e301700399a66d
This commit is contained in:
parent
2a54e5ecd0
commit
8a05a01de7
2 changed files with 18 additions and 9 deletions
|
@ -266,18 +266,19 @@ static unsigned app_id_from_name(const char* name) {
|
|||
|
||||
static void print_app_name_from_appid_userid(const uid_t appid,
|
||||
const uid_t userid, char* buffer, const int bufferlen) {
|
||||
if (appid < AID_ISOLATED_START) {
|
||||
if (appid < AID_APP) {
|
||||
for (size_t n = 0; n < android_id_count; n++) {
|
||||
if (android_ids[n].aid == appid) {
|
||||
snprintf(buffer, bufferlen, "u%u_%s", userid, android_ids[n].name);
|
||||
return;
|
||||
}
|
||||
if (appid >= AID_ISOLATED_START) {
|
||||
snprintf(buffer, bufferlen, "u%u_i%u", userid, appid - AID_ISOLATED_START);
|
||||
} else if (userid == 0 && appid >= AID_SHARED_GID_START) {
|
||||
snprintf(buffer, bufferlen, "all_a%u", appid - AID_SHARED_GID_START);
|
||||
} else if (appid < AID_APP) {
|
||||
for (size_t n = 0; n < android_id_count; n++) {
|
||||
if (android_ids[n].aid == appid) {
|
||||
snprintf(buffer, bufferlen, "u%u_%s", userid, android_ids[n].name);
|
||||
return;
|
||||
}
|
||||
}
|
||||
snprintf(buffer, bufferlen, "u%u_a%u", userid, appid - AID_APP);
|
||||
} else {
|
||||
snprintf(buffer, bufferlen, "u%u_i%u", userid, appid - AID_ISOLATED_START);
|
||||
snprintf(buffer, bufferlen, "u%u_a%u", userid, appid - AID_APP);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -68,6 +68,14 @@ TEST(getpwnam, app_id_nobody) {
|
|||
CHECK_GETPWNAM_FOR("nobody", 9999, TYPE_SYSTEM);
|
||||
}
|
||||
|
||||
TEST(getpwnam, app_id_all_a0) {
|
||||
CHECK_GETPWNAM_FOR("all_a0", 50000, TYPE_APP);
|
||||
}
|
||||
|
||||
TEST(getpwnam, app_id_u1_a40000) {
|
||||
CHECK_GETPWNAM_FOR("u1_a40000", 150000, TYPE_APP);
|
||||
}
|
||||
|
||||
TEST(getpwnam, app_id_u0_a0) {
|
||||
CHECK_GETPWNAM_FOR("u0_a0", 10000, TYPE_APP);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue