Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2036a94a authored by Amith Yamasani's avatar Amith Yamasani Committed by Android (Google) Code Review
Browse files

Merge "Fix cache deletion for secondary users" into jb-mr1-dev

parents 383b0f8f 54289b8b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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 */
+2 −2
Original line number Diff line number Diff line
@@ -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 },
+1 −1
Original line number Diff line number Diff line
@@ -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);
+3 −1
Original line number Diff line number Diff line
@@ -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());
    }

+2 −3
Original line number Diff line number Diff line
@@ -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;