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

Commit aa7ddfd8 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Follow constant refactoring in framework.

Bug: 25796509
Change-Id: Ib19aa570fb5fbf26752c5487f1221c9959b1143a
parent 3a5ecd84
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ int create_app_data(const char *uuid, const char *pkgname, userid_t userid, int
        appid_t appid, const char* seinfo, int target_sdk_version) {
    uid_t uid = multiuser_get_uid(userid, appid);
    int target_mode = target_sdk_version >= MIN_RESTRICTED_HOME_SDK_VERSION ? 0700 : 0751;
    if (flags & FLAG_CE_STORAGE) {
    if (flags & FLAG_STORAGE_CE) {
        auto path = create_data_user_package_path(uuid, userid, pkgname);
        if (fs_prepare_dir_strict(path.c_str(), target_mode, uid, uid) != 0) {
            PLOG(ERROR) << "Failed to prepare " << path;
@@ -68,7 +68,7 @@ int create_app_data(const char *uuid, const char *pkgname, userid_t userid, int
            return -1;
        }
    }
    if (flags & FLAG_DE_STORAGE) {
    if (flags & FLAG_STORAGE_DE) {
        auto path = create_data_user_de_package_path(uuid, userid, pkgname);
        if (fs_prepare_dir_strict(path.c_str(), target_mode, uid, uid) == -1) {
            PLOG(ERROR) << "Failed to prepare " << path;
@@ -93,13 +93,13 @@ int clear_app_data(const char *uuid, const char *pkgname, userid_t userid, int f
    }

    int res = 0;
    if (flags & FLAG_CE_STORAGE) {
    if (flags & FLAG_STORAGE_CE) {
        auto path = create_data_user_package_path(uuid, userid, pkgname) + suffix;
        if (access(path.c_str(), F_OK) == 0) {
            res |= delete_dir_contents(path);
        }
    }
    if (flags & FLAG_DE_STORAGE) {
    if (flags & FLAG_STORAGE_DE) {
        auto path = create_data_user_de_package_path(uuid, userid, pkgname) + suffix;
        if (access(path.c_str(), F_OK) == 0) {
            // TODO: include result once 25796509 is fixed
@@ -111,11 +111,11 @@ int clear_app_data(const char *uuid, const char *pkgname, userid_t userid, int f

int destroy_app_data(const char *uuid, const char *pkgname, userid_t userid, int flags) {
    int res = 0;
    if (flags & FLAG_CE_STORAGE) {
    if (flags & FLAG_STORAGE_CE) {
        res |= delete_dir_contents_and_dir(
                create_data_user_package_path(uuid, userid, pkgname));
    }
    if (flags & FLAG_DE_STORAGE) {
    if (flags & FLAG_STORAGE_DE) {
        // TODO: include result once 25796509 is fixed
        delete_dir_contents_and_dir(
                create_data_user_de_package_path(uuid, userid, pkgname));
@@ -178,7 +178,7 @@ int move_complete_app(const char *from_uuid, const char *to_uuid, const char *pa
            goto fail;
        }

        if (create_app_data(to_uuid, package_name, user, FLAG_CE_STORAGE | FLAG_DE_STORAGE,
        if (create_app_data(to_uuid, package_name, user, FLAG_STORAGE_CE | FLAG_STORAGE_DE,
                appid, seinfo, target_sdk_version) != 0) {
            LOG(ERROR) << "Failed to create package target " << to;
            goto fail;
@@ -204,7 +204,7 @@ int move_complete_app(const char *from_uuid, const char *to_uuid, const char *pa
            goto fail;
        }

        if (restorecon_app_data(to_uuid, package_name, user, FLAG_CE_STORAGE | FLAG_DE_STORAGE,
        if (restorecon_app_data(to_uuid, package_name, user, FLAG_STORAGE_CE | FLAG_STORAGE_DE,
                appid, seinfo) != 0) {
            LOG(ERROR) << "Failed to restorecon";
            goto fail;
@@ -453,7 +453,7 @@ int get_app_size(const char *uuid, const char *pkgname, int userid, int flags,

    for (auto user : users) {
        // TODO: handle user_de directories
        if (!(flags & FLAG_CE_STORAGE)) continue;
        if (!(flags & FLAG_STORAGE_CE)) continue;

        std::string _pkgdir(create_data_user_package_path(uuid, user, pkgname));
        const char* pkgdir = _pkgdir.c_str();
@@ -1482,14 +1482,14 @@ int restorecon_app_data(const char* uuid, const char* pkgName, userid_t userid,
    }

    uid_t uid = multiuser_get_uid(userid, appid);
    if (flags & FLAG_CE_STORAGE) {
    if (flags & FLAG_STORAGE_CE) {
        auto path = create_data_user_package_path(uuid, userid, pkgName);
        if (selinux_android_restorecon_pkgdir(path.c_str(), seinfo, uid, seflags) < 0) {
            PLOG(ERROR) << "restorecon failed for " << path;
            res = -1;
        }
    }
    if (flags & FLAG_DE_STORAGE) {
    if (flags & FLAG_STORAGE_DE) {
        auto path = create_data_user_de_package_path(uuid, userid, pkgName);
        if (selinux_android_restorecon_pkgdir(path.c_str(), seinfo, uid, seflags) < 0) {
            PLOG(ERROR) << "restorecon failed for " << path;
+7 −4
Original line number Diff line number Diff line
@@ -56,10 +56,13 @@ constexpr const char* IDMAP_SUFFIX = "@idmap";
constexpr size_t PKG_NAME_MAX = 128u;   /* largest allowed package name */
constexpr size_t PKG_PATH_MAX = 256u;   /* max size of any path we use */

constexpr int FLAG_DE_STORAGE = 1 << 0;
constexpr int FLAG_CE_STORAGE = 1 << 1;
constexpr int FLAG_CLEAR_CACHE_ONLY = 1 << 2;
constexpr int FLAG_CLEAR_CODE_CACHE_ONLY = 1 << 3;
// NOTE: keep in sync with StorageManager
constexpr int FLAG_STORAGE_DE = 1 << 0;
constexpr int FLAG_STORAGE_CE = 1 << 1;

// NOTE: keep in sync with Installer
constexpr int FLAG_CLEAR_CACHE_ONLY = 1 << 8;
constexpr int FLAG_CLEAR_CODE_CACHE_ONLY = 1 << 9;

/* dexopt needed flags matching those in dalvik.system.DexFile */
constexpr int DEXOPT_DEX2OAT_NEEDED       = 1;