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

Commit caa6b809 authored by Calin Juravle's avatar Calin Juravle
Browse files

Delete the entire profile directory when the app is uninstalled

We were deleting just the files themselves. We need to delete the
directory as well.

Bug: 27696217
Change-Id: I202a52c711a2132ba10b926f4d0e9ec953f25b43
parent ae3cd068
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -222,6 +222,14 @@ int clear_app_data(const char *uuid, const char *pkgname, userid_t userid, int f
    return res;
}

static int destroy_app_profiles(const char *pkgname, userid_t userid) {
    // TODO: this doesn't destroy the marks for foreign dex use yet.
    int res = 0;
    res |= delete_dir_contents_and_dir(create_data_user_profile_package_path( userid, pkgname));
    res |= delete_dir_contents_and_dir(create_data_ref_profile_package_path(pkgname));
    return res;
}

int destroy_app_data(const char *uuid, const char *pkgname, userid_t userid, int flags) {
    int res = 0;
    if (flags & FLAG_STORAGE_CE) {
@@ -229,10 +237,9 @@ int destroy_app_data(const char *uuid, const char *pkgname, userid_t userid, int
                create_data_user_package_path(uuid, userid, pkgname));
    }
    if (flags & FLAG_STORAGE_DE) {
        // TODO: include result once 25796509 is fixed
        delete_dir_contents_and_dir(
        res |= delete_dir_contents_and_dir(
                create_data_user_de_package_path(uuid, userid, pkgname));
        unlink_all_profiles(pkgname);
        res |= destroy_app_profiles(pkgname, userid);
    }
    return res;
}