am ce3db01c: am 2036a94a: Merge "Fix cache deletion for secondary users" into jb-mr1-dev

* commit 'ce3db01cc8a27e6ee642e9e2c4548b5a03dfde2a':
  Fix cache deletion for secondary users
This commit is contained in:
Amith Yamasani
2012-10-01 13:10:04 -07:00
committed by Android Git Automerger
5 changed files with 10 additions and 9 deletions

View File

@@ -271,11 +271,11 @@ int clone_persona_data(uid_t src_persona, uid_t target_persona, int copy)
return 0;
}
int delete_cache(const char *pkgname)
int delete_cache(const char *pkgname, uid_t persona)
{
char cachedir[PKG_PATH_MAX];
if (create_pkg_path(cachedir, pkgname, CACHE_DIR_POSTFIX, 0))
if (create_pkg_path(cachedir, pkgname, CACHE_DIR_POSTFIX, persona))
return -1;
/* delete contents, not the directory, no exceptions */

View File

@@ -72,7 +72,7 @@ static int do_free_cache(char **arg, char reply[REPLY_MAX]) /* TODO int:free_siz
static int do_rm_cache(char **arg, char reply[REPLY_MAX])
{
return delete_cache(arg[0]); /* pkgname */
return delete_cache(arg[0], atoi(arg[1])); /* pkgname, userid */
}
static int do_get_size(char **arg, char reply[REPLY_MAX])
@@ -142,7 +142,7 @@ struct cmdinfo cmds[] = {
{ "rename", 2, do_rename },
{ "fixuid", 3, do_fixuid },
{ "freecache", 1, do_free_cache },
{ "rmcache", 1, do_rm_cache },
{ "rmcache", 2, do_rm_cache },
{ "getsize", 5, do_get_size },
{ "rmuserdata", 2, do_rm_user_data },
{ "movefiles", 0, do_movefiles },

View File

@@ -199,7 +199,7 @@ int delete_user_data(const char *pkgname, uid_t persona);
int make_user_data(const char *pkgname, uid_t uid, uid_t persona);
int delete_persona(uid_t persona);
int clone_persona_data(uid_t src_persona, uid_t target_persona, int copy);
int delete_cache(const char *pkgname);
int delete_cache(const char *pkgname, uid_t persona);
int move_dex(const char *src, const char *dst);
int rm_dex(const char *path);
int protect(char *pkgname, gid_t gid);

View File

@@ -254,10 +254,12 @@ public final class Installer {
return execute(builder.toString());
}
public int deleteCacheFiles(String name) {
public int deleteCacheFiles(String name, int userId) {
StringBuilder builder = new StringBuilder("rmcache");
builder.append(' ');
builder.append(name);
builder.append(' ');
builder.append(userId);
return execute(builder.toString());
}

View File

@@ -8540,11 +8540,10 @@ public class PackageManagerService extends IPackageManager.Stub {
Slog.w(TAG, "Package " + packageName + " has no applicationInfo.");
return false;
}
// TODO: Pass userId to deleteCacheFiles
int retCode = mInstaller.deleteCacheFiles(packageName);
int retCode = mInstaller.deleteCacheFiles(packageName, userId);
if (retCode < 0) {
Slog.w(TAG, "Couldn't remove cache files for package: "
+ packageName);
+ packageName + " u" + userId);
return false;
}
return true;