Offer to delete code cache directories.
Bug: 16187224 Change-Id: Ia860b051a34ffdfb4f6e0ea19f90cb73509c4eee
This commit is contained in:
parent
7869e224aa
commit
c796b681e5
@ -310,10 +310,21 @@ int delete_cache(const char *pkgname, userid_t userid)
|
|||||||
if (create_pkg_path(cachedir, pkgname, CACHE_DIR_POSTFIX, userid))
|
if (create_pkg_path(cachedir, pkgname, CACHE_DIR_POSTFIX, userid))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/* delete contents, not the directory, no exceptions */
|
/* delete contents, not the directory, no exceptions */
|
||||||
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
|
||||||
|
@ -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;
|
||||||
@ -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 },
|
||||||
|
@ -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
|
||||||
|
|
||||||
@ -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…
Reference in New Issue
Block a user