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

Commit f0a34a2d authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android Git Automerger
Browse files

am 570052f7: Merge "Split app move into separate copy/delete steps." into mnc-dev

* commit '570052f7':
  Split app move into separate copy/delete steps.
parents ae6ae043 570052f7
Loading
Loading
Loading
Loading
+4 −14
Original line number Original line Diff line number Diff line
@@ -177,7 +177,7 @@ int make_user_data(const char *uuid, const char *pkgname, uid_t uid, userid_t us
    return 0;
    return 0;
}
}


int move_complete_app(const char *from_uuid, const char *to_uuid,
int copy_complete_app(const char *from_uuid, const char *to_uuid,
        const char *package_name, const char *data_app_name, appid_t appid,
        const char *package_name, const char *data_app_name, appid_t appid,
        const char* seinfo) {
        const char* seinfo) {
    std::vector<userid_t> users = get_known_users(from_uuid);
    std::vector<userid_t> users = get_known_users(from_uuid);
@@ -264,19 +264,9 @@ int move_complete_app(const char *from_uuid, const char *to_uuid,
        }
        }
    }
    }


    // Delete old app and data
    // We let the framework scan the new location and persist that before
    {
    // deleting the data in the old location; this ordering ensures that
        std::string from(create_data_app_package_path(from_uuid, data_app_name));
    // we can recover from things like battery pulls.
        if (delete_dir_contents(from.c_str(), 1, NULL) != 0) {
            LOG(WARNING) << "Failed to delete " << from;
        }
    }
    for (auto user : users) {
        std::string from(create_data_user_package_path(from_uuid, user, package_name));
        if (delete_dir_contents(from.c_str(), 1, NULL) != 0) {
            LOG(WARNING) << "Failed to delete " << from;
        }
    }
    return 0;
    return 0;


fail:
fail:
+3 −3
Original line number Original line Diff line number Diff line
@@ -124,10 +124,10 @@ static int do_rm_user_data(char **arg, char reply[REPLY_MAX] __unused)
    return delete_user_data(parse_null(arg[0]), arg[1], atoi(arg[2])); /* uuid, pkgname, userid */
    return delete_user_data(parse_null(arg[0]), arg[1], atoi(arg[2])); /* uuid, pkgname, userid */
}
}


static int do_mv_complete_app(char **arg, char reply[REPLY_MAX] __unused)
static int do_cp_complete_app(char **arg, char reply[REPLY_MAX] __unused)
{
{
    // from_uuid, to_uuid, package_name, data_app_name, appid, seinfo
    // from_uuid, to_uuid, package_name, data_app_name, appid, seinfo
    return move_complete_app(parse_null(arg[0]), parse_null(arg[1]), arg[2], arg[3], atoi(arg[4]), arg[5]);
    return copy_complete_app(parse_null(arg[0]), parse_null(arg[1]), arg[2], arg[3], atoi(arg[4]), arg[5]);
}
}


static int do_mk_user_data(char **arg, char reply[REPLY_MAX] __unused)
static int do_mk_user_data(char **arg, char reply[REPLY_MAX] __unused)
@@ -206,7 +206,7 @@ struct cmdinfo cmds[] = {
    { "rmcodecache",          3, do_rm_code_cache },
    { "rmcodecache",          3, do_rm_code_cache },
    { "getsize",              8, do_get_size },
    { "getsize",              8, do_get_size },
    { "rmuserdata",           3, do_rm_user_data },
    { "rmuserdata",           3, do_rm_user_data },
    { "mvcompleteapp",        6, do_mv_complete_app },
    { "cpcompleteapp",        6, do_cp_complete_app },
    { "movefiles",            0, do_movefiles },
    { "movefiles",            0, do_movefiles },
    { "linklib",              4, do_linklib },
    { "linklib",              4, do_linklib },
    { "mkuserdata",           5, do_mk_user_data },
    { "mkuserdata",           5, do_mk_user_data },
+1 −1
Original line number Original line Diff line number Diff line
@@ -225,7 +225,7 @@ int fix_uid(const char *uuid, const char *pkgname, uid_t uid, gid_t gid);
int delete_user_data(const char *uuid, const char *pkgname, userid_t userid);
int delete_user_data(const char *uuid, const char *pkgname, userid_t userid);
int make_user_data(const char *uuid, const char *pkgname, uid_t uid,
int make_user_data(const char *uuid, const char *pkgname, uid_t uid,
        userid_t userid, const char* seinfo);
        userid_t userid, const char* seinfo);
int move_complete_app(const char* from_uuid, const char *to_uuid,
int copy_complete_app(const char* from_uuid, const char *to_uuid,
        const char *package_name, const char *data_app_name, appid_t appid,
        const char *package_name, const char *data_app_name, appid_t appid,
        const char* seinfo);
        const char* seinfo);
int make_user_config(userid_t userid);
int make_user_config(userid_t userid);