diff options
author | 2016-04-14 20:45:06 -0600 | |
---|---|---|
committer | 2016-04-15 13:35:52 -0600 | |
commit | 379a12b0072b322c7f86e690a8e8a220e500861c (patch) | |
tree | edfc822e311e563c48c49b6f76af66c2dffcbdc3 /cmds/installd/installd.cpp | |
parent | 8bf556ec85af8d4d47aad5a19a0633cf8b0fa17e (diff) |
Consistent creation/destruction of user data.
Preparing and destroying users currently needs to be split across
installd, system_server, and vold, since no single party has all the
required SELinux permissions.
Start passing down flags so we only prepare/destroy storage areas
that have keys currently installed.
Add delete_dir_contents_and_dir() argument to ignore ENOENT, since
all we care about is the directory being gone.
Bug: 27896918
Change-Id: Ia1cccc9b35e6ff09e3ca50effeab676157b856e8
Diffstat (limited to 'cmds/installd/installd.cpp')
-rw-r--r-- | cmds/installd/installd.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/cmds/installd/installd.cpp b/cmds/installd/installd.cpp index 5c29eb42b5..eb51e709de 100644 --- a/cmds/installd/installd.cpp +++ b/cmds/installd/installd.cpp @@ -336,14 +336,16 @@ static int do_move_complete_app(char **arg, char reply[REPLY_MAX] ATTRIBUTE_UNUS atoi(arg[4]), arg[5], atoi(arg[6])); } -static int do_mk_user_config(char **arg, char reply[REPLY_MAX] ATTRIBUTE_UNUSED) +static int do_create_user_data(char **arg, char reply[REPLY_MAX] ATTRIBUTE_UNUSED) { - return make_user_config(atoi(arg[0])); /* userid */ + /* const char *uuid, userid_t userid, int user_serial, int flags */ + return create_user_data(parse_null(arg[0]), atoi(arg[1]), atoi(arg[2]), atoi(arg[3])); } -static int do_rm_user(char **arg, char reply[REPLY_MAX] ATTRIBUTE_UNUSED) +static int do_destroy_user_data(char **arg, char reply[REPLY_MAX] ATTRIBUTE_UNUSED) { - return delete_user(parse_null(arg[0]), atoi(arg[1])); /* uuid, userid */ + /* const char *uuid, userid_t userid, int flags */ + return destroy_user_data(parse_null(arg[0]), atoi(arg[1]), atoi(arg[2])); } static int do_linklib(char **arg, char reply[REPLY_MAX] ATTRIBUTE_UNUSED) @@ -409,13 +411,14 @@ struct cmdinfo cmds[] = { { "get_app_size", 6, do_get_app_size }, { "get_app_data_inode", 4, do_get_app_data_inode }, + { "create_user_data", 4, do_create_user_data }, + { "destroy_user_data", 3, do_destroy_user_data }, + { "dexopt", 9, do_dexopt }, { "markbootcomplete", 1, do_mark_boot_complete }, { "rmdex", 2, do_rm_dex }, { "freecache", 2, do_free_cache }, { "linklib", 4, do_linklib }, - { "mkuserconfig", 1, do_mk_user_config }, - { "rmuser", 2, do_rm_user }, { "idmap", 3, do_idmap }, { "createoatdir", 2, do_create_oat_dir }, { "rmpackagedir", 1, do_rm_package_dir }, |