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

Commit 1c1bdd91 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Use genfs labels version library" into main

parents b6d84eba e2efde37
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -176,6 +176,7 @@ libinit_cc_defaults {
        "libxml2",
        "lib_apex_manifest_proto_lite",
        "update_metadata-protos",
        "libgenfslabelsversion.ffi",
    ],
    shared_libs: [
        "libbase",
+5 −17
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@
#include <android/avf_cc_flags.h>
#include <fs_avb/fs_avb.h>
#include <fs_mgr.h>
#include <genfslabelsversion.h>
#include <libgsi/libgsi.h>
#include <libsnapshot/snapshot.h>
#include <selinux/android.h>
@@ -190,22 +191,6 @@ bool GetVendorMappingVersion(std::string* plat_vers) {
    return true;
}

int GetVendorGenfsVersion() {
    std::string line;
    if (!ReadFirstLine("/vendor/etc/selinux/genfs_labels_version.txt", &line)) {
        PLOG(ERROR) << "Failed to read /vendor/etc/selinux/genfs_labels_version.txt; assuming it's "
                       "202404";
        return 202404;
    }
    int version;
    if (!ParseInt(line, &version)) {
        PLOG(ERROR) << "Failed to parse the genfs labels version " << line
                    << "; assuming it's 202404";
        return 202404;
    }
    return version;
}

constexpr const char plat_policy_cil_file[] = "/system/etc/selinux/plat_sepolicy.cil";

bool IsSplitPolicyDevice() {
@@ -342,11 +327,14 @@ bool OpenSplitPolicy(PolicyFile* policy_file) {

    std::vector<std::string> genfs_cil_files;

    int vendor_genfs_version = GetVendorGenfsVersion();
    int vendor_genfs_version = get_genfs_labels_version();
    std::string genfs_cil_file =
            std::format("/system/etc/selinux/plat_sepolicy_genfs_{}.cil", vendor_genfs_version);
    if (access(genfs_cil_file.c_str(), F_OK) != 0) {
        LOG(INFO) << "Missing " << genfs_cil_file << "; skipping";
        genfs_cil_file.clear();
    } else {
        LOG(INFO) << "Using " << genfs_cil_file << " for genfs labels";
    }

    // clang-format off