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

Commit 8928bbd5 authored by Shikha Malhotra's avatar Shikha Malhotra Committed by Automerger Merge Worker
Browse files

Merge "Check for ProjectID enablement made more performant" am: 706e0ec7 am:...

Merge "Check for ProjectID enablement made more performant" am: 706e0ec7 am: d603b74d am: e6074b32 am: c7da704e

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2038669

Change-Id: Ib920890a741499076485649427ea8694c7c4fc37
parents 6ed41726 c7da704e
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -118,6 +118,12 @@ static constexpr const char* kMntFuse = "/mnt/pass_through/0/";

static std::atomic<bool> sAppDataIsolationEnabled(false);

/**
 * Flag to control if project ids are supported for internal storage
 */
static std::atomic<bool> sUsingProjectIdsFlag(false);
static std::once_flag flag;

namespace {

constexpr const char* kDump = "android.permission.DUMP";
@@ -460,11 +466,14 @@ done:
}
static bool internal_storage_has_project_id() {
    // The following path is populated in setFirstBoot, so if this file is present
    // then project ids can be used.

    // then project ids can be used. Using call once to cache the result of this check
    // to avoid having to check the file presence again and again.
    std::call_once(flag, []() {
        auto using_project_ids =
                StringPrintf("%smisc/installd/using_project_ids", android_data_dir.c_str());
    return access(using_project_ids.c_str(), F_OK) == 0;
        sUsingProjectIdsFlag = access(using_project_ids.c_str(), F_OK) == 0;
    });
    return sUsingProjectIdsFlag;
}

static int prepare_app_dir(const std::string& path, mode_t target_mode, uid_t uid, gid_t gid,