Loading cmds/installd/commands.c +12 −1 Original line number Original line Diff line number Diff line Loading @@ -314,6 +314,17 @@ int delete_cache(const char *pkgname, userid_t userid) return delete_dir_contents(cachedir, 0, NULL); return delete_dir_contents(cachedir, 0, NULL); } } int delete_code_cache(const char *pkgname, userid_t userid) { char codecachedir[PKG_PATH_MAX]; if (create_pkg_path(codecachedir, pkgname, CODE_CACHE_DIR_POSTFIX, userid)) return -1; /* delete contents, not the directory, no exceptions */ return delete_dir_contents(codecachedir, 0, NULL); } /* Try to ensure free_size bytes of storage are available. /* Try to ensure free_size bytes of storage are available. * Returns 0 on success. * Returns 0 on success. * This is rather simple-minded because doing a full LRU would * This is rather simple-minded because doing a full LRU would Loading cmds/installd/installd.c +6 −0 Original line number Original line Diff line number Diff line Loading @@ -77,6 +77,11 @@ static int do_rm_cache(char **arg, char reply[REPLY_MAX]) return delete_cache(arg[0], atoi(arg[1])); /* pkgname, userid */ return delete_cache(arg[0], atoi(arg[1])); /* pkgname, userid */ } } static int do_rm_code_cache(char **arg, char reply[REPLY_MAX]) { return delete_code_cache(arg[0], atoi(arg[1])); /* pkgname, userid */ } static int do_get_size(char **arg, char reply[REPLY_MAX]) static int do_get_size(char **arg, char reply[REPLY_MAX]) { { int64_t codesize = 0; int64_t codesize = 0; Loading Loading @@ -163,6 +168,7 @@ struct cmdinfo cmds[] = { { "fixuid", 3, do_fixuid }, { "fixuid", 3, do_fixuid }, { "freecache", 1, do_free_cache }, { "freecache", 1, do_free_cache }, { "rmcache", 2, do_rm_cache }, { "rmcache", 2, do_rm_cache }, { "rmcodecache", 2, do_rm_code_cache }, { "getsize", 7, do_get_size }, { "getsize", 7, do_get_size }, { "rmuserdata", 2, do_rm_user_data }, { "rmuserdata", 2, do_rm_user_data }, { "movefiles", 0, do_movefiles }, { "movefiles", 0, do_movefiles }, Loading cmds/installd/installd.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -59,6 +59,7 @@ #define PKG_LIB_POSTFIX "/lib" #define PKG_LIB_POSTFIX "/lib" #define CACHE_DIR_POSTFIX "/cache" #define CACHE_DIR_POSTFIX "/cache" #define CODE_CACHE_DIR_POSTFIX "/code_cache" #define APP_SUBDIR "app/" // sub-directory under ANDROID_DATA #define APP_SUBDIR "app/" // sub-directory under ANDROID_DATA Loading Loading @@ -207,6 +208,7 @@ int make_user_data(const char *pkgname, uid_t uid, userid_t userid, const char* int make_user_config(userid_t userid); int make_user_config(userid_t userid); int delete_user(userid_t userid); int delete_user(userid_t userid); int delete_cache(const char *pkgname, userid_t userid); int delete_cache(const char *pkgname, userid_t userid); int delete_code_cache(const char *pkgname, userid_t userid); int move_dex(const char *src, const char *dst, const char *instruction_set); int move_dex(const char *src, const char *dst, const char *instruction_set); int rm_dex(const char *path, const char *instruction_set); int rm_dex(const char *path, const char *instruction_set); int protect(char *pkgname, gid_t gid); int protect(char *pkgname, gid_t gid); Loading Loading
cmds/installd/commands.c +12 −1 Original line number Original line Diff line number Diff line Loading @@ -314,6 +314,17 @@ int delete_cache(const char *pkgname, userid_t userid) return delete_dir_contents(cachedir, 0, NULL); return delete_dir_contents(cachedir, 0, NULL); } } int delete_code_cache(const char *pkgname, userid_t userid) { char codecachedir[PKG_PATH_MAX]; if (create_pkg_path(codecachedir, pkgname, CODE_CACHE_DIR_POSTFIX, userid)) return -1; /* delete contents, not the directory, no exceptions */ return delete_dir_contents(codecachedir, 0, NULL); } /* Try to ensure free_size bytes of storage are available. /* Try to ensure free_size bytes of storage are available. * Returns 0 on success. * Returns 0 on success. * This is rather simple-minded because doing a full LRU would * This is rather simple-minded because doing a full LRU would Loading
cmds/installd/installd.c +6 −0 Original line number Original line Diff line number Diff line Loading @@ -77,6 +77,11 @@ static int do_rm_cache(char **arg, char reply[REPLY_MAX]) return delete_cache(arg[0], atoi(arg[1])); /* pkgname, userid */ return delete_cache(arg[0], atoi(arg[1])); /* pkgname, userid */ } } static int do_rm_code_cache(char **arg, char reply[REPLY_MAX]) { return delete_code_cache(arg[0], atoi(arg[1])); /* pkgname, userid */ } static int do_get_size(char **arg, char reply[REPLY_MAX]) static int do_get_size(char **arg, char reply[REPLY_MAX]) { { int64_t codesize = 0; int64_t codesize = 0; Loading Loading @@ -163,6 +168,7 @@ struct cmdinfo cmds[] = { { "fixuid", 3, do_fixuid }, { "fixuid", 3, do_fixuid }, { "freecache", 1, do_free_cache }, { "freecache", 1, do_free_cache }, { "rmcache", 2, do_rm_cache }, { "rmcache", 2, do_rm_cache }, { "rmcodecache", 2, do_rm_code_cache }, { "getsize", 7, do_get_size }, { "getsize", 7, do_get_size }, { "rmuserdata", 2, do_rm_user_data }, { "rmuserdata", 2, do_rm_user_data }, { "movefiles", 0, do_movefiles }, { "movefiles", 0, do_movefiles }, Loading
cmds/installd/installd.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -59,6 +59,7 @@ #define PKG_LIB_POSTFIX "/lib" #define PKG_LIB_POSTFIX "/lib" #define CACHE_DIR_POSTFIX "/cache" #define CACHE_DIR_POSTFIX "/cache" #define CODE_CACHE_DIR_POSTFIX "/code_cache" #define APP_SUBDIR "app/" // sub-directory under ANDROID_DATA #define APP_SUBDIR "app/" // sub-directory under ANDROID_DATA Loading Loading @@ -207,6 +208,7 @@ int make_user_data(const char *pkgname, uid_t uid, userid_t userid, const char* int make_user_config(userid_t userid); int make_user_config(userid_t userid); int delete_user(userid_t userid); int delete_user(userid_t userid); int delete_cache(const char *pkgname, userid_t userid); int delete_cache(const char *pkgname, userid_t userid); int delete_code_cache(const char *pkgname, userid_t userid); int move_dex(const char *src, const char *dst, const char *instruction_set); int move_dex(const char *src, const char *dst, const char *instruction_set); int rm_dex(const char *path, const char *instruction_set); int rm_dex(const char *path, const char *instruction_set); int protect(char *pkgname, gid_t gid); int protect(char *pkgname, gid_t gid); Loading